15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/zodra/params_coercer.rb', line 15
def self.call(value, type, of: nil)
case type
when :string then value.to_s
when :integer then coerce_integer(value)
when :decimal then coerce_decimal(value)
when :number then coerce_number(value)
when :boolean then coerce_boolean(value)
when :datetime then coerce_datetime(value)
when :date then coerce_date(value)
when :uuid then coerce_uuid(value)
when :binary then value.to_s
when :array then coerce_array(value, of)
else
scalar = ScalarRegistry.global.find(type)
scalar ? scalar.coercer.call(value) : value
end
end
|