class RSpec::Mocks::AnyInstance::Chain

Public Class Methods

new(recorder, *args, &block) click to toggle source
# File lib/rspec/mocks/any_instance/chain.rb, line 5
def initialize(recorder, *args, &block)
  @recorder          = recorder
  @expectation_args  = args
  @expectation_block = block
end

Public Instance Methods

constrained_to_any_of?(*constraints) click to toggle source

@private

# File lib/rspec/mocks/any_instance/chain.rb, line 54
def constrained_to_any_of?(*constraints)
  constraints.any? do |constraint|
    messages.any? do |message|
      message.first.first == constraint
    end
  end
end
expectation_fulfilled!() click to toggle source

@private

# File lib/rspec/mocks/any_instance/chain.rb, line 63
def expectation_fulfilled!
  @expectation_fulfilled = true
end
never() click to toggle source
Calls superclass method
# File lib/rspec/mocks/any_instance/chain.rb, line 67
def never
  ErrorGenerator.raise_double_negation_error("expect_any_instance_of(MyClass)") if negated?
  super
end
playback!(instance) click to toggle source

@private

# File lib/rspec/mocks/any_instance/chain.rb, line 46
def playback!(instance)
  message_expectation = create_message_expectation_on(instance)
  messages.inject(message_expectation) do |object, message|
    object.__send__(*message.first, &message.last)
  end
end

Private Instance Methods

last_message() click to toggle source
# File lib/rspec/mocks/any_instance/chain.rb, line 82
def last_message
  messages.last.first.first unless messages.empty?
end
messages() click to toggle source
# File lib/rspec/mocks/any_instance/chain.rb, line 78
def messages
  @messages ||= []
end
negated?() click to toggle source
# File lib/rspec/mocks/any_instance/chain.rb, line 74
def negated?
  messages.any? { |(message, *_), _| message.to_sym == :never }
end
record(rspec_method_name, *args, &block) click to toggle source
# File lib/rspec/mocks/any_instance/chain.rb, line 86
def record(rspec_method_name, *args, &block)
  verify_invocation_order(rspec_method_name, *args, &block)
  messages << [args.unshift(rspec_method_name), block]
  self
end