aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib/active_model/type/helpers
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-02-17 21:00:39 +0900
committerRyuta Kamizono <kamipo@gmail.com>2019-02-18 13:16:33 +0900
commit1dfd01475d93b8801df0a2933094b437a607e3e2 (patch)
treeda5f7773f1e4077a65180cfbc0bc475a6d55f882 /activemodel/lib/active_model/type/helpers
parent9379d553d8669a99b55368715ccc48645f0441d2 (diff)
downloadrails-1dfd01475d93b8801df0a2933094b437a607e3e2.tar.gz
rails-1dfd01475d93b8801df0a2933094b437a607e3e2.tar.bz2
rails-1dfd01475d93b8801df0a2933094b437a607e3e2.zip
Extract duplicated `serialize` methods into helpers
Since `serialize` is passed user input args (from `where`, schema default, etc), a helper should provide `serialize` if the helper also provide `cast`. Related #32624, 34cc301, a741208.
Diffstat (limited to 'activemodel/lib/active_model/type/helpers')
-rw-r--r--activemodel/lib/active_model/type/helpers/accepts_multiparameter_time.rb4
-rw-r--r--activemodel/lib/active_model/type/helpers/numeric.rb4
2 files changed, 8 insertions, 0 deletions
diff --git a/activemodel/lib/active_model/type/helpers/accepts_multiparameter_time.rb b/activemodel/lib/active_model/type/helpers/accepts_multiparameter_time.rb
index ad891f841e..e15d7b013f 100644
--- a/activemodel/lib/active_model/type/helpers/accepts_multiparameter_time.rb
+++ b/activemodel/lib/active_model/type/helpers/accepts_multiparameter_time.rb
@@ -5,6 +5,10 @@ module ActiveModel
module Helpers # :nodoc: all
class AcceptsMultiparameterTime < Module
def initialize(defaults: {})
+ define_method(:serialize) do |value|
+ super(cast(value))
+ end
+
define_method(:cast) do |value|
if value.is_a?(Hash)
value_from_multiparameter_assignment(value)
diff --git a/activemodel/lib/active_model/type/helpers/numeric.rb b/activemodel/lib/active_model/type/helpers/numeric.rb
index 473cdb0c67..444847a210 100644
--- a/activemodel/lib/active_model/type/helpers/numeric.rb
+++ b/activemodel/lib/active_model/type/helpers/numeric.rb
@@ -4,6 +4,10 @@ module ActiveModel
module Type
module Helpers # :nodoc: all
module Numeric
+ def serialize(value)
+ cast(value)
+ end
+
def cast(value)
value = \
case value