class RSpec::Mocks::AnyInstance::Chain

@private

Public Class Methods

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

Public Instance Methods

constrained_to_any_of?(*constraints) click to toggle source

@private

# File lib/rspec/mocks/any_instance/chain.rb, line 60
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 74
def expectation_fulfilled!
  @expectation_fulfilled = true
end
matches_args?(*args) click to toggle source

@private

# File lib/rspec/mocks/any_instance/chain.rb, line 69
def matches_args?(*args)
  @argument_list_matcher.args_match?(*args)
end
never() click to toggle source
Calls superclass method
# File lib/rspec/mocks/any_instance/chain.rb, line 78
def never
  AnyInstance.error_generator.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 52
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
with(*args, &block) click to toggle source
Calls superclass method
# File lib/rspec/mocks/any_instance/chain.rb, line 83
def with(*args, &block)
  @argument_list_matcher = ArgumentListMatcher.new(*args)
  super
end

Private Instance Methods

last_message() click to toggle source
# File lib/rspec/mocks/any_instance/chain.rb, line 98
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 94
def messages
  @messages ||= []
end
negated?() click to toggle source
# File lib/rspec/mocks/any_instance/chain.rb, line 90
def negated?
  messages.any? { |(message, *_), _| message == :never }
end
record(rspec_method_name, *args, &block) click to toggle source
# File lib/rspec/mocks/any_instance/chain.rb, line 102
def record(rspec_method_name, *args, &block)
  verify_invocation_order(rspec_method_name, *args, &block)
  messages << [args.unshift(rspec_method_name), block]
  self
end