module Contractinator::Contract

Public Instance Methods

created_set() click to toggle source
# File lib/contractinator/contract.rb, line 22
def created_set
  Set.new(@created.keys)
end
fulfill(argument) click to toggle source
# File lib/contractinator/contract.rb, line 16
def fulfill(argument)
  @fulfilled[argument] = caller.find do |str|
    str =~ /_spec\.rb/
  end
end
fulfilled_set() click to toggle source
# File lib/contractinator/contract.rb, line 26
def fulfilled_set
  Set.new(@fulfilled.keys)
end
messages() click to toggle source
# File lib/contractinator/contract.rb, line 46
def messages
  messages = []
  unmatched_created.map do |item|
    messages << "unfulfilled contract '#{item}'"
    messages << "   at #{@created[item]}"
  end

  unmatched_fulfilled.map do |item|
    messages << "excess fulfillment '#{item}'"
    messages << "   at #{@fulfilled[item]}"
  end
  messages
end
require(argument) click to toggle source
# File lib/contractinator/contract.rb, line 10
def require(argument)
  @created[argument] = caller.find do |str|
    str =~ /_spec\.rb/
  end
end
unmatched_created() click to toggle source
# File lib/contractinator/contract.rb, line 30
def unmatched_created
  unmatched_keys.intersection(created_set)
end
unmatched_fulfilled() click to toggle source
# File lib/contractinator/contract.rb, line 34
def unmatched_fulfilled
  unmatched_keys.intersection(fulfilled_set)
end
unmatched_keys() click to toggle source
# File lib/contractinator/contract.rb, line 38
def unmatched_keys
  created_set ^ fulfilled_set
end
validate() click to toggle source
# File lib/contractinator/contract.rb, line 42
def validate
  unmatched_keys.empty?
end