class RSpec::Contracts::InterfaceFulfillment

Attributes

interface[R]

Public Class Methods

new(interface, implementors) click to toggle source
# File lib/rspec/contracts/interface_fulfillment.rb, line 6
def initialize(interface, implementors)
  @interface = interface
  @implementors = implementors
end

Public Instance Methods

complete?() click to toggle source
# File lib/rspec/contracts/interface_fulfillment.rb, line 11
def complete?
  unfulfilled_messages.empty?
end
messages_count() click to toggle source
# File lib/rspec/contracts/interface_fulfillment.rb, line 19
def messages_count
  interface.unique_messages.count
end
unfulfilled_messages() click to toggle source
# File lib/rspec/contracts/interface_fulfillment.rb, line 15
def unfulfilled_messages
  interface.unique_messages.reject{ |r| fulfilled? r }
end

Private Instance Methods

fulfilled?(message) click to toggle source
# File lib/rspec/contracts/interface_fulfillment.rb, line 25
def fulfilled?(message)
  fulfilled_by_any?(message) && fulfilled_by_all?(message.without_response)
end
fulfilled_by?(message, implementor) click to toggle source
# File lib/rspec/contracts/interface_fulfillment.rb, line 37
def fulfilled_by?(message, implementor)
  implementor.messages.any? { |m| message.described_by? m }
end
fulfilled_by_all?(message) click to toggle source
# File lib/rspec/contracts/interface_fulfillment.rb, line 29
def fulfilled_by_all?(message)
  @implementors.all?{ |i| fulfilled_by? message, i }
end
fulfilled_by_any?(message) click to toggle source
# File lib/rspec/contracts/interface_fulfillment.rb, line 33
def fulfilled_by_any?(message)
  @implementors.any?{ |i| fulfilled_by? message, i }
end