class Reactor::Attributes::DateSerializer

Public Class Methods

new(attr, value) click to toggle source
# File lib/reactor/attributes/date_serializer.rb, line 4
def initialize(attr, value)
  @attr, @value = attr, value
end

Public Instance Methods

serialize() click to toggle source
# File lib/reactor/attributes/date_serializer.rb, line 8
def serialize
  @serialized ||= serialize_date
end

Private Instance Methods

iso_format?(val) click to toggle source
# File lib/reactor/attributes/date_serializer.rb, line 30
def iso_format?(val)
  val =~ /^[0-9]{14}$/
end
serialize_date() click to toggle source
# File lib/reactor/attributes/date_serializer.rb, line 13
def serialize_date
  if @value.is_a?(Time)
    @value.dup.utc.to_iso
  elsif @value.is_a?(String)
    if iso_format?(@value)
      @value
    elsif !@value.empty?
      Time.zone.parse(@value).utc.to_iso
    else
      # empty string <=> clear date
      nil
    end
  else
    @value
  end
end