Parent

Class/Module Index [+]

Quicksearch

RSpec::Mocks::StubChain

@private

Attributes

block[R]
chain[R]
object[R]

Public Class Methods

new(object, *chain, &blk) click to toggle source
# File lib/rspec/mocks/stub_chain.rb, line 11
def initialize(object, *chain, &blk)
  @object = object
  @chain, @block = format_chain(*chain, &blk)
end
stub_chain_on(object, *chain, &blk) click to toggle source
# File lib/rspec/mocks/stub_chain.rb, line 5
def self.stub_chain_on(object, *chain, &blk)
  new(object, *chain, &blk).stub_chain
end

Public Instance Methods

stub_chain() click to toggle source
# File lib/rspec/mocks/stub_chain.rb, line 16
def stub_chain
  if chain.length > 1
    if matching_stub = find_matching_stub
      chain.shift
      matching_stub.invoke(nil).stub_chain(*chain, &block)
    else
      next_in_chain = Mock.new
      object.stub(chain.shift) { next_in_chain }
      StubChain.stub_chain_on(next_in_chain, *chain, &block)
    end
  else
    object.stub(chain.shift, &block)
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.