Module: DateUtcParser

Defined in:
lib/date_utc_parser.rb,
lib/date_utc_parser/version.rb

Constant Summary collapse

VERSION =
"1.1.2"

Class Method Summary collapse

Class Method Details

.iso8601_humanized_patternObject



25
26
27
# File 'lib/date_utc_parser.rb', line 25

def self.iso8601_humanized_pattern
  "YYYY-MM-DDTmm:dd:ssZ"
end

.iso8601_patternObject



21
22
23
# File 'lib/date_utc_parser.rb', line 21

def self.iso8601_pattern
  /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z\Z/
end

.parse(date) ⇒ Object



5
6
7
# File 'lib/date_utc_parser.rb', line 5

def self.parse(date)
  date.is_a?(Time) ? parse_from_time(date) : parse_from_string(date)
end

.parse_from_string(time) ⇒ Object



9
10
11
12
13
14
# File 'lib/date_utc_parser.rb', line 9

def self.parse_from_string(time)
  parsed_time = Time.parse(time) if time
  parsed_time if parsed_time && (time =~ iso8601_pattern || parsed_time.utc?)
rescue ArgumentError
  # date could not be parsed
end

.parse_from_time(date) ⇒ Object



29
30
31
# File 'lib/date_utc_parser.rb', line 29

def self.parse_from_time(date)
  date.utc
end