Sha256: b6de166deb1d1e9f92c07a832f6d5eb0c3e99b158f5b790f365393dfbef3ae9b
Contents?: true
Size: 458 Bytes
Versions: 3
Compression:
Stored size: 458 Bytes
Contents
class Module # Note: This may be better off as a paramerterized module. def key_attributes(*fields) code = "" code << "def ==(o) " << fields.map {|f| "self.#{f} == o.#{f}" }.join(" && ") << " end\n" code << "def eql?(o) " << fields.map {|f| "self.#{f}.eql?(o.#{f})" }.join(" && ") << " end\n" code << "def hash() " << fields.map {|f| "self.#{f}.hash" }.join(" ^ ") << " end\n" # puts code class_eval code fields end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
facets-0.7.0 | lib/facet/module/key_attributes.rb |
facets-0.7.1 | lib/facet/module/key_attributes.rb |
facets-0.7.2 | lib/facet/module/key_attributes.rb |