Class: Aenea::TimeWindow::Type

Inherits:
ActiveModel::Type::ImmutableString
  • Object
show all
Defined in:
lib/aenea/time_window.rb

Instance Method Summary collapse

Instance Method Details

#cast(value) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/aenea/time_window.rb', line 63

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

#serialize(value) ⇒ Object



81
82
83
# File 'lib/aenea/time_window.rb', line 81

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