This mixin provides methods of equality based on a single # method which must return a list of accessors used as the identity keys.
It also provides a “shortcut” for creating the # method based on given accessors and returns the Equitable module for inclusion.
include Equitable(:a, :b)
is equivalent to including a module containing:
def ==(other)
self.a == other.a && self.b == other.b
end
def eql?(other)
self.a.eql?(other.a) && self.b.eql?(other.b)
end
def hash()
self.a.hash ^ self.b.hash
end
# File lib/more/facets/equitable.rb, line 78
78: def ==(o)
79: identity.all?{ |a| send(a) == o.send(a) }
80: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.