class RSpec::Mocks::AnyInstance::MessageChains

@private

Public Class Methods

# File rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb, line 6
def initialize
  @chains_by_method_name = Hash.new { |h, k| h[k] = [] }
end

Public Instance Methods

@private

# File rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb, line 11
def [](method_name)
  @chains_by_method_name[method_name]
end

@private

# File rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb, line 16
def add(method_name, chain)
  @chains_by_method_name[method_name] << chain
  chain
end

@private

# File rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb, line 43
def all_expectations_fulfilled?
  @chains_by_method_name.all? do |_method_name, chains|
    chains.all? { |chain| chain.expectation_fulfilled? }
  end
end

@private

# File rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb, line 36
def each_unfulfilled_expectation_matching(method_name, *args)
  @chains_by_method_name[method_name].each do |chain|
    yield chain if !chain.expectation_fulfilled? && chain.matches_args?(*args)
  end
end

@private

# File rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb, line 29
def has_expectation?(method_name)
  @chains_by_method_name[method_name].find do |chain|
    ExpectationChain === chain
  end
end

@private

# File rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb, line 64
def playback!(instance, method_name)
  raise_if_second_instance_to_receive_message(instance)
  @chains_by_method_name[method_name].each do |chain|
    chain.playback!(instance)
  end
end

@private

# File rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb, line 57
def received_expected_message!(method_name)
  @chains_by_method_name[method_name].each do |chain|
    chain.expectation_fulfilled!
  end
end

@private

# File rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb, line 22
def remove_stub_chains_for!(method_name)
  @chains_by_method_name[method_name].reject! do |chain|
    StubChain === chain
  end
end

@private

# File rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb, line 50
def unfulfilled_expectations
  @chains_by_method_name.map do |method_name, chains|
    method_name.to_s if ExpectationChain === chains.last && !chains.last.expectation_fulfilled?
  end.compact
end