From bc153cff9156e7e19b3587f0bb8062d238644b1d Mon Sep 17 00:00:00 2001 From: Sean Griffin Date: Fri, 15 Aug 2014 13:37:53 -0600 Subject: Implement `==` on `Type::Value` and `Attribute` This was a small self contained piece of the refactoring that I am working on, which required these objects to be comparable. --- activerecord/lib/active_record/attribute.rb | 7 +++++++ activerecord/lib/active_record/type/value.rb | 7 +++++++ 2 files changed, 14 insertions(+) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/attribute.rb b/activerecord/lib/active_record/attribute.rb index 6d38224830..15cbbcff68 100644 --- a/activerecord/lib/active_record/attribute.rb +++ b/activerecord/lib/active_record/attribute.rb @@ -62,6 +62,13 @@ module ActiveRecord true end + def ==(other) + self.class == other.class && + name == other.name && + value_before_type_cast == other.value_before_type_cast && + type == other.type + end + protected def initialize_dup(other) diff --git a/activerecord/lib/active_record/type/value.rb b/activerecord/lib/active_record/type/value.rb index 475e130013..9456a4a56c 100644 --- a/activerecord/lib/active_record/type/value.rb +++ b/activerecord/lib/active_record/type/value.rb @@ -76,6 +76,13 @@ module ActiveRecord false end + def ==(other) + self.class == other.class && + precision == other.precision && + scale == other.scale && + limit == other.limit + end + private def type_cast(value) -- cgit v1.2.3