aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-06-06 17:33:08 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-06-06 17:33:08 -0300
commit43697f4fe5ce60d5483afbb2ccb123c4ed467022 (patch)
tree34681bebfa21afe12e43407800b24e7e693e60ec /activerecord/lib
parent092f74080c85ae343fcd97ad5f88fb019ab421c0 (diff)
parent332d6c9b6ffdc6e4ca7886593256b5f994679316 (diff)
downloadrails-43697f4fe5ce60d5483afbb2ccb123c4ed467022.tar.gz
rails-43697f4fe5ce60d5483afbb2ccb123c4ed467022.tar.bz2
rails-43697f4fe5ce60d5483afbb2ccb123c4ed467022.zip
Merge pull request #15551 from sgrif/sg-numeric-types
Don't mess with `_before_type_cast` for numeric types
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql/oid/float.rb3
-rw-r--r--activerecord/lib/active_record/type/numeric.rb15
2 files changed, 9 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/oid/float.rb b/activerecord/lib/active_record/connection_adapters/postgresql/oid/float.rb
index 9753d71461..77dd97e140 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql/oid/float.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql/oid/float.rb
@@ -5,9 +5,8 @@ module ActiveRecord
class Float < Type::Float
include Infinity
- def type_cast(value)
+ def cast_value(value)
case value
- when nil then nil
when 'Infinity' then ::Float::INFINITY
when '-Infinity' then -::Float::INFINITY
when 'NaN' then ::Float::NAN
diff --git a/activerecord/lib/active_record/type/numeric.rb b/activerecord/lib/active_record/type/numeric.rb
index 9cc6411e77..d5cb13233c 100644
--- a/activerecord/lib/active_record/type/numeric.rb
+++ b/activerecord/lib/active_record/type/numeric.rb
@@ -5,13 +5,14 @@ module ActiveRecord
true
end
- def type_cast_for_write(value)
- case value
- when true then 1
- when false then 0
- when ::String then value.presence
- else super
- end
+ def type_cast(value)
+ value = case value
+ when true then 1
+ when false then 0
+ when ::String then value.presence
+ else value
+ end
+ super(value)
end
def changed?(old_value, new_value) # :nodoc: