class Aws::Record::Marshalers::DateMarshaler

Public Class Methods

new(opts = {}) click to toggle source
# File lib/aws-record/record/marshalers/date_marshaler.rb, line 21
def initialize(opts = {})
  @formatter = opts[:formatter] || Iso8601Formatter
end

Public Instance Methods

serialize(raw_value) click to toggle source
# File lib/aws-record/record/marshalers/date_marshaler.rb, line 40
def serialize(raw_value)
  date = type_cast(raw_value)
  if date.nil?
    nil
  elsif date.is_a?(Date)
    @formatter.format(date)
  else
    raise ArgumentError, "expected a Date value or nil, got #{date.class}"
  end
end
type_cast(raw_value) click to toggle source
# File lib/aws-record/record/marshalers/date_marshaler.rb, line 25
def type_cast(raw_value)
  case raw_value
  when nil
    nil
  when ''
    nil
  when Date
    raw_value
  when Integer
    Date.parse(Time.at(raw_value).to_s) # assumed timestamp
  else
    Date.parse(raw_value.to_s) # Time, DateTime or String
  end
end