class RSpec::Mocks::OrderGroup

@private

Public Class Methods

# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 5
def initialize
  @expectations = []
  @invocation_order = []
  @index = 0
end

Public Instance Methods

# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 48
def clear
  @index = 0
  @invocation_order.clear
  @expectations.clear
end

@private

# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 26
def consume
  remaining_expectations.each_with_index do |expectation, index|
    next unless expectation.ordered?

    @index += index + 1
    return expectation
  end
  nil
end
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 54
def empty?
  @expectations.empty?
end

@private

# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 37
def handle_order_constraint(expectation)
  return unless expectation.ordered? && remaining_expectations.include?(expectation)
  return consume if ready_for?(expectation)
  expectation.raise_out_of_order_error
end
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 16
def invoked(message)
  @invocation_order << message
end

@private

# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 21
def ready_for?(expectation)
  remaining_expectations.find(&:ordered?) == expectation
end

@private

# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 12
def register(expectation)
  @expectations << expectation
end
# File rspec-mocks/lib/rspec/mocks/order_group.rb, line 43
def verify_invocation_order(expectation)
  expectation.raise_out_of_order_error unless expectations_invoked_in_order?
  true
end