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)