module MyData::TypeCaster
Constants
- ALLOWED_TYPES
Public Instance Methods
cast(value:, type:, resource: nil)
click to toggle source
# File lib/my_data/type_caster.rb, line 21 def cast(value:, type:, resource: nil) return type_cast_resource(value, resource) if type == :resource send("type_cast_#{type}", value) end
valid_type?(type)
click to toggle source
# File lib/my_data/type_caster.rb, line 17 def valid_type?(type) ALLOWED_TYPES.include?(type) end
Private Instance Methods
type_cast_boolean(value)
click to toggle source
# File lib/my_data/type_caster.rb, line 49 def type_cast_boolean(value) return value if value.nil? value.is_a?(String) ? value.downcase == "true" : value == true end
type_cast_date(value)
click to toggle source
# File lib/my_data/type_caster.rb, line 41 def type_cast_date(value) value.present? ? value.to_date : nil end
type_cast_float(value)
click to toggle source
# File lib/my_data/type_caster.rb, line 37 def type_cast_float(value) value.present? ? value.to_f : nil end
type_cast_integer(value)
click to toggle source
# File lib/my_data/type_caster.rb, line 33 def type_cast_integer(value) value.present? ? value.to_i : nil end
type_cast_resource(value, resource)
click to toggle source
# File lib/my_data/type_caster.rb, line 55 def type_cast_resource(value, resource) value.present? ? resource.new(value) : nil end
type_cast_string(value)
click to toggle source
# File lib/my_data/type_caster.rb, line 29 def type_cast_string(value) value ? value.to_s.strip : nil end
type_cast_time(value)
click to toggle source
# File lib/my_data/type_caster.rb, line 45 def type_cast_time(value) value.present? ? value.to_time : nil end