Module: Puree::Util::Date
- Defined in:
- lib/puree/util/date.rb
Overview
Date transformations.
Class Method Summary collapse
-
.hash_to_time(data) ⇒ Time
Converts a date with variable components present (year, month, day) to Time format.
-
.iso(data) ⇒ String
Converts a date with three components (year, month, day) to ISO 8601 date format.
-
.normalise(data) ⇒ Hash
Forces a date to have three components (year, month, day).
Class Method Details
.hash_to_time(data) ⇒ Time
Converts a date with variable components present (year, month, day) to Time format.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/puree/util/date.rb', line 12 def self.hash_to_time(data) h = normalise data if !h['year'].empty? && !h['month'].empty? && !h['day'].empty? return Time.new h['year'].to_i, h['month'].to_i, h['day'].to_i end if !h['year'].empty? && !h['month'].empty? return Time.new h['year'].to_i, h['month'].to_i end if !h['year'].empty? return Time.new h['year'].to_i end nil end |
.iso(data) ⇒ String
Converts a date with three components (year, month, day) to ISO 8601 date format.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/puree/util/date.rb', line 33 def self.iso(data) iso_date = '' year = data['year'] month = data['month'] day = data['day'] if !year.empty? iso_date << year else iso_date end if !month.empty? # Add leading zero to convert to ISO 8601 date component if month.length < 2 month.insert(0, '0') end iso_date << '-' + month else iso_date end if !day.empty? # Add leading zero to convert to ISO 8601 date component if day.length < 2 day.insert(0, '0') end iso_date << '-' + day end iso_date end |
.normalise(data) ⇒ Hash
Forces a date to have three components (year, month, day).
66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/puree/util/date.rb', line 66 def self.normalise(data) if !data.nil? && !data.empty? date = {} year = data['year'] month = data['month'] day = data['day'] date['year'] = year ? year : '' date['month'] = month ? month : '' date['day'] = day ? day : '' date else {} end end |