app/models/concerns/spotlight/ar_light.rb in blacklight-spotlight-0.0.2 vs app/models/concerns/spotlight/ar_light.rb in blacklight-spotlight-0.0.3

- old
+ new

@@ -13,9 +13,25 @@ end def initialize (source_doc={}, solr_response=nil) @association_cache = {} super end + + # Returns true if +comparison_object+ is the same exact object, or +comparison_object+ + # is of the same type and +self+ has an ID and it is equal to +comparison_object.id+. + # + # Note that new records are different from any other record by definition, unless the + # other record is the receiver itself. Besides, if you fetch existing records with + # +select+ and leave the ID out, you're on your own, this predicate will return false. + # + # Note also that destroying a record preserves its ID in the model instance, so deleted + # models are still comparable. + def ==(comparison_object) + super || + comparison_object.instance_of?(self.class) && + id && + comparison_object.id == id + end module ClassMethods def generated_feature_methods @generated_feature_methods ||= begin mod = const_set(:GeneratedFeatureMethods, Module.new)