class DuckPond::Inspection
Attributes
subject[R]
the wrapped object
Public Class Methods
new(subject)
click to toggle source
initialize
Construct with any ruby object.
# File lib/duckpond/inspection.rb, line 18 def initialize(subject) @subject = subject @satisfied = true @messages = [] end
Public Instance Methods
fulfilled_by?(contract)
click to toggle source
fulfilled_by?
receives exactly one contract, and returns true/false if the inspected object responds to the same methods indicated by the contract’s clauses.
# File lib/duckpond/inspection.rb, line 35 def fulfilled_by?(contract) contract.each_clause do |clause| clause.legal_assesment(@subject).tap do |lawyer| unless lawyer.satisfied? @satisfied = false @messages << lawyer.messages end end end @satisfied end
messages()
click to toggle source
# File lib/duckpond/inspection.rb, line 24 def messages @messages.flatten.uniq end
satisfied?()
click to toggle source
# File lib/duckpond/inspection.rb, line 47 def satisfied? @satisfied end