class ProtoCat::Protocol

Constants

Enforcer

Public Class Methods

new(mod, criteria) click to toggle source
# File lib/proto_cat/protocol.rb, line 6
def initialize(mod, criteria)
  @module = mod
  @criteria = criteria
end

Public Instance Methods

===(object)
Alias for: satisfied_by?
failed_criteria(object) click to toggle source
# File lib/proto_cat/protocol.rb, line 19
def failed_criteria(object)
  @criteria.reject {|crit| crit.satisfied_by?(object) }
end
failure_strings(object) click to toggle source
# File lib/proto_cat/protocol.rb, line 23
def failure_strings(object)
  failed_criteria(object).map(&:failure_string)
end
must() click to toggle source
# File lib/proto_cat/with_sugar.rb, line 15
def must
  Enforcer.new(self)
end
satisfied_by!(object) click to toggle source
# File lib/proto_cat/protocol.rb, line 11
def satisfied_by!(object)
  satisfied_by?(object) or raise NotImplementedError.new(self, object)
end
satisfied_by?(object) click to toggle source
# File lib/proto_cat/protocol.rb, line 15
def satisfied_by?(object)
  @criteria.all? {|crit| crit.satisfied_by?(object) }
end
Also aliased as: ===
to_s() click to toggle source
# File lib/proto_cat/protocol.rb, line 27
def to_s
  @module.to_s
end