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