Method: Timetrap::Timer#process_time

Defined in:
lib/timetrap/timer.rb

#process_time(time, now = Time.now) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/timetrap/timer.rb', line 11

def process_time(time, now = Time.now)
  case time
  when Time
    time
  when String
    chronic = begin
      time_closest_to_now_with_chronic(time, now)
    rescue => e
      warn "#{e.class} in Chronic gem parsing time.  Falling back to Time.parse"
    end

    if parsed = chronic
      parsed
    elsif safe_for_time_parse?(time) and parsed = Time.parse(time)
      parsed
    else
      raise ArgumentError, "Could not parse #{time.inspect}, entry not updated"
    end
  end
end