Class: Tod::TimeOfDay::Type

Inherits:
ActiveModel::Type::Value
  • Object
show all
Defined in:
lib/aenea/time_of_day.rb

Instance Method Summary collapse

Instance Method Details

#cast(value) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/aenea/time_of_day.rb', line 18

def cast(value)
  if value.blank?
    nil
  elsif value.is_a?(Tod::TimeOfDay)
    value
  elsif value.is_a?(String)
    begin
      Tod::TimeOfDay.parse(value)
    rescue StandardError => e
      ApplicationRecord.logger.warn "error casting #{value.inspect}: #{e.message}"
    ensure
      nil
    end
  else
    raise "invalid value type #{value.class.name}: #{value.inspect}"
  end
end

#serialize(value) ⇒ Object



36
37
38
# File 'lib/aenea/time_of_day.rb', line 36

def serialize(value)
  value.blank? ? nil : value.to_s
end