Module: AfterShip::DateUtils
- Defined in:
- lib/after_ship/core/date_utils.rb
Overview
Simple utility class for parsing dates and datetimes.
Constant Summary collapse
- DATE_PLAIN_REGEX =
Date:
YYYYMMDD / \A \d{4}\d{2}\d{2} \z /x- DATE_REGEX =
Date:
YYYY-MM-DD / \A \d{4}-\d{2}-\d{2} \z /x- DATETIME_REGEX =
Datetime without zone:
YYYY-MM-DDTHH:MM:SS / \A \d{4}-\d{2}-\d{2} T \d{2}:\d{2}:\d{2} \z /x- DATETIME_WITH_ZONE_REGEX =
Datetime with zone:
YYYY-MM-DDTHH:MM:SSZYYYY-MM-DDTHH:MM:SSHH:MM+YYYY-MM-DDTHH:MM:SS-HH:MM / \A \d{4}-\d{2}-\d{2} T \d{2}:\d{2}:\d{2} (Z|[+-]\d{2}:\d{2}) \z /x
Class Method Summary collapse
-
.parse(value) ⇒ Object
Try to parse a date or datetime from a string.
Instance Method Summary collapse
-
#parse(value) ⇒ Object
private
Try to parse a date or datetime from a string.
Class Method Details
.parse(value) ⇒ Object
Try to parse a date or datetime from a string.
59 60 61 62 63 64 65 66 67 68 69 70 |
# 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 |
Instance Method Details
#parse(value) ⇒ Object (private)
Try to parse a date or datetime from a string.
59 60 61 62 63 64 65 66 67 68 69 70 |
# 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 |