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 61
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 75
def expectation_fulfilled!
  @expectation_fulfilled = true
end
matches_args?(*args) click to toggle source

@private

# File lib/rspec/mocks/any_instance/chain.rb, line 70
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 79
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 53
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 84
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 99
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 95
def messages
  @messages ||= []
end
negated?() click to toggle source
# File lib/rspec/mocks/any_instance/chain.rb, line 91
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 103
def record(rspec_method_name, *args, &block)
  verify_invocation_order(rspec_method_name, *args, &block)
  messages << [args.unshift(rspec_method_name), block]
  self
end