class Stockboy::Translations::Date

Convert ISO-8601 and other recognized date-like strings to Date

Job template DSL

Registered as :date. Use with:

attributes do
  check_in as: :date
end

@example

date = Stockboy::Translator::Date.new

record.check_in = "2012-01-01"
date.translate(record, :check_in) # => #<Date 2012-01-01>

record.check_in = "Jan 1, 2012"
date.translate(record, :check_in) # => #<Date 2012-01-01>

Public Instance Methods

translate(context) click to toggle source

@return [Date]

# File lib/stockboy/translations/date.rb, line 28
def translate(context)
  value = field_value(context, field_key)
  return nil if value.blank?

  case value
  when ::String then parse_date(value.strip)
  when ::Time, ::DateTime then ::Date.new(value.year, value.month, value.day)
  when ::Date then value
  else nil
  end
end

Private Instance Methods

parse_date(value) click to toggle source

Generic parse action, overridden by subclasses @return [Date]

# File lib/stockboy/translations/date.rb, line 45
def parse_date(value)
  ::Date.parse(value)
end