diff options
author | Sean Griffin <sean@thoughtbot.com> | 2014-08-15 13:37:53 -0600 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2014-08-15 13:37:53 -0600 |
commit | bc153cff9156e7e19b3587f0bb8062d238644b1d (patch) | |
tree | 3aa2987f67d98d86b05346c090cd180821346cd9 /activerecord/lib/active_record | |
parent | a59b9e2284353dcf8cf6d77b97aaa4255563c807 (diff) | |
download | rails-bc153cff9156e7e19b3587f0bb8062d238644b1d.tar.gz rails-bc153cff9156e7e19b3587f0bb8062d238644b1d.tar.bz2 rails-bc153cff9156e7e19b3587f0bb8062d238644b1d.zip |
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.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/attribute.rb | 7 | ||||
-rw-r--r-- | activerecord/lib/active_record/type/value.rb | 7 |
2 files changed, 14 insertions, 0 deletions
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) |