diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-02-21 13:10:14 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2019-02-21 13:11:42 +0900 |
commit | 9c9c950d02af83742a5f76302d0faa99508f242c (patch) | |
tree | e2023e0f989f380aa293bb23dff5c6efdff866a3 /activemodel | |
parent | 8e66548b08e6b9ce9ba98a7a93c86f2cdd693019 (diff) | |
download | rails-9c9c950d02af83742a5f76302d0faa99508f242c.tar.gz rails-9c9c950d02af83742a5f76302d0faa99508f242c.tar.bz2 rails-9c9c950d02af83742a5f76302d0faa99508f242c.zip |
Revert "Speed up integer casting from DB"
This reverts commit 52fddcc653458456f98b3683dffd781cf00b35fe.
52fddcc was to short-circuit `ensure_in_range` in `cast_value`. But that
caused a regression for empty string deserialization.
Since 7c6f393, `ensure_in_range` is moved into `serialize`. As 52fddcc
said, the absolute gain is quite small. So I've reverted that commit to
fix the regression.
Diffstat (limited to 'activemodel')
-rw-r--r-- | activemodel/lib/active_model/type/integer.rb | 5 | ||||
-rw-r--r-- | activemodel/test/cases/type/integer_test.rb | 2 |
2 files changed, 1 insertions, 6 deletions
diff --git a/activemodel/lib/active_model/type/integer.rb b/activemodel/lib/active_model/type/integer.rb index 5878b94171..1ff232a977 100644 --- a/activemodel/lib/active_model/type/integer.rb +++ b/activemodel/lib/active_model/type/integer.rb @@ -18,11 +18,6 @@ module ActiveModel :integer end - def deserialize(value) - return if value.nil? - value.to_i - end - def serialize(value) result = super if result diff --git a/activemodel/test/cases/type/integer_test.rb b/activemodel/test/cases/type/integer_test.rb index 9bd0110099..dec188b4cc 100644 --- a/activemodel/test/cases/type/integer_test.rb +++ b/activemodel/test/cases/type/integer_test.rb @@ -54,7 +54,7 @@ module ActiveModel type = Type::Integer.new assert_nil type.cast("") assert_nil type.serialize("") - assert_equal 0, type.deserialize("") + assert_nil type.deserialize("") end test "changed?" do |