2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/ext/json_api_client/schema/property.rb', line 2
def cast(value)
return nil if value.nil?
return value if type.nil?
case type.to_sym
when :int, :integer
value.to_i
when :string
value.to_s
when :float
value.to_f
when :datetime
value.is_a?(DateTime) || nil ? value : DateTime.parse(value)
when :time
value.is_a?(Time) || nil ? value : Time.parse(value)
when :decimal
value.nil? ? nil : BigDecimal.new(value)
when :boolean
case value
when "false", "0", 0, false
false
when "true", "1", 1, true
true
else
default
end
else
value
end
end
|