module AfterShip::DateUtils

Simple utility class for parsing dates and datetimes.

Constants

DATETIME_REGEX

Datetime without zone:

YYYY-MM-DDTHH:MM:SS

DATETIME_WITH_ZONE_REGEX

Datetime with zone:

YYYY-MM-DDTHH:MM:SSZ +YYYY-MM-DDTHH:MM:SS+HH:MM+ YYYY-MM-DDTHH:MM:SS-HH:MM

DATE_PLAIN_REGEX

Date:

YYYYMMDD

DATE_REGEX

Date:

YYYY-MM-DD

Public Instance Methods

parse(value) click to toggle source

Try to parse a date or datetime from a string.

@param value [String]

Empty String,
YYYY-MM-DD,
YYYY-MM-DDTHH:MM:SS,
YYYY-MM-DDTHH:MM:SSZ,
YYYY-MM-DDTHH:MM:SS+HH:MM or
YYYY-MM-DDTHH:MM:SS-HH:MM.
# File lib/after_ship/core/date_utils.rb, line 59
def parse(value)
  case value
  when '', nil
    nil
  when DATE_PLAIN_REGEX, DATE_REGEX
    Date.parse(value)
  when DATETIME_REGEX, DATETIME_WITH_ZONE_REGEX
    DateTime.parse(value)
  else
    fail ArgumentError, "Invalid expected_delivery date #{value.inspect}"
  end
end