module PropertySets::Casting
Constants
- FALSE_VALUES
Public Class Methods
deserialize(value)
click to toggle source
# File lib/property_sets/casting.rb, line 48 def deserialize(value) return nil if value.nil? || value == "null" JSON.parse(value) end
read(type, value)
click to toggle source
# File lib/property_sets/casting.rb, line 8 def read(type, value) return nil if value.nil? case type when :string value when :datetime Time.parse(value).in_time_zone when :float value.to_f when :integer value.to_i when :boolean !false?(value) when :serialized # deserialization happens in the model value end end
write(type, value)
click to toggle source
# File lib/property_sets/casting.rb, line 28 def write(type, value) return nil if value.nil? case type when :datetime if value.is_a?(String) value else value.in_time_zone("UTC").to_s end when :serialized # write the object directly. value when :boolean false?(value) ? "0" : "1" else value.to_s end end
Private Class Methods
false?(value)
click to toggle source
# File lib/property_sets/casting.rb, line 55 def false?(value) FALSE_VALUES.include?(value.to_s.downcase) end