module Dyph::Equatable::ClassMethods
Public Instance Methods
equate_with(*fields)
click to toggle source
# File lib/dyph/equatable.rb, line 8 def equate_with(*fields) self.class_eval <<-CODE, __FILE__, __LINE__ + 1 def hash self.class.hash ^ #{fields.map { |field| "#{field}.hash"}.join(" ^ ")} end CODE self.class_eval <<-CODE, __FILE__, __LINE__ + 1 def ==(other) self.class == other.class && #{fields.map { |field| "#{field} == other.#{field}"}.join(" && ")} end alias_method :eql?, :== CODE end