class RSpec::Mocks::Matchers::ReceiveMessageChain

@private

Public Class Methods

new(chain, &block) click to toggle source
# File lib/rspec/mocks/matchers/receive_message_chain.rb, line 8
def initialize(chain, &block)
  @chain = chain
  @block = block
  @recorded_customizations  = []
end

Public Instance Methods

description() click to toggle source
# File lib/rspec/mocks/matchers/receive_message_chain.rb, line 25
def description
  "receive message chain #{formatted_chain}"
end
does_not_match?(*_args)
matches?(subject, &block)
Alias for: setup_expectation
name() click to toggle source
# File lib/rspec/mocks/matchers/receive_message_chain.rb, line 21
def name
  "receive_message_chain"
end
setup_allowance(subject, &block) click to toggle source
# File lib/rspec/mocks/matchers/receive_message_chain.rb, line 29
def setup_allowance(subject, &block)
  chain = StubChain.stub_chain_on(subject, *@chain, &(@block || block))
  replay_customizations(chain)
end
setup_any_instance_allowance(subject, &block) click to toggle source
# File lib/rspec/mocks/matchers/receive_message_chain.rb, line 34
def setup_any_instance_allowance(subject, &block)
  proxy = ::RSpec::Mocks.space.any_instance_proxy_for(subject)
  chain = proxy.stub_chain(*@chain, &(@block || block))
  replay_customizations(chain)
end
setup_any_instance_expectation(subject, &block) click to toggle source
# File lib/rspec/mocks/matchers/receive_message_chain.rb, line 40
def setup_any_instance_expectation(subject, &block)
  proxy = ::RSpec::Mocks.space.any_instance_proxy_for(subject)
  chain = proxy.expect_chain(*@chain, &(@block || block))
  replay_customizations(chain)
end
setup_expectation(subject, &block) click to toggle source
# File lib/rspec/mocks/matchers/receive_message_chain.rb, line 46
def setup_expectation(subject, &block)
  chain = ExpectChain.expect_chain_on(subject, *@chain, &(@block || block))
  replay_customizations(chain)
end
Also aliased as: matches?
setup_negative_expectation(*_args) click to toggle source
# File lib/rspec/mocks/matchers/receive_message_chain.rb, line 51
def setup_negative_expectation(*_args)
  raise NegationUnsupportedError,
        "`expect(...).not_to receive_message_chain` is not supported "                  "since it doesn't really make sense. What would it even mean?"
end
Also aliased as: does_not_match?

Private Instance Methods

formatted_chain() click to toggle source
# File lib/rspec/mocks/matchers/receive_message_chain.rb, line 68
def formatted_chain
  @formatted_chain ||= @chain.map do |part|
    if Hash === part
      part.keys.first.to_s
    else
      part.to_s
    end
  end.join(".")
end
replay_customizations(chain) click to toggle source
# File lib/rspec/mocks/matchers/receive_message_chain.rb, line 62
def replay_customizations(chain)
  @recorded_customizations.each do |customization|
    customization.playback_onto(chain)
  end
end