Module: Timetrap::Helpers

Included in:
CLI, Formatters::Text
Defined in:
lib/timetrap/helpers.rb

Instance Method Summary collapse

Instance Method Details

#format_date(time) ⇒ Object



8
9
10
11
# File 'lib/timetrap/helpers.rb', line 8

def format_date time
  return '' unless time.respond_to?(:strftime)
  time.strftime('%a %b %d, %Y')
end

#format_date_if_new(time, last_time) ⇒ Object



13
14
15
16
# File 'lib/timetrap/helpers.rb', line 13

def format_date_if_new time, last_time
  return '' unless time.respond_to?(:strftime)
  same_day?(time, last_time) ? '' : format_date(time)
end

#format_duration(stime, etime) ⇒ Object



22
23
24
25
26
# File 'lib/timetrap/helpers.rb', line 22

def format_duration stime, etime
  return '' unless stime and etime
  secs = etime.to_i - stime.to_i
  format_seconds secs
end

#format_seconds(secs) ⇒ Object



28
29
30
# File 'lib/timetrap/helpers.rb', line 28

def format_seconds secs
  "%2s:%02d:%02d" % [secs/3600, (secs%3600)/60, secs%60]
end

#format_time(time) ⇒ Object



3
4
5
6
# File 'lib/timetrap/helpers.rb', line 3

def format_time time
  return '' unless time.respond_to?(:strftime)
  time.strftime('%H:%M:%S')
end

#format_total(entries) ⇒ Object



32
33
34
35
# File 'lib/timetrap/helpers.rb', line 32

def format_total entries
  secs = entries.inject(0){|m, e|e_end = e.end || Time.now; m += e_end.to_i - e.start.to_i if e_end && e.start;m}
  "%2s:%02d:%02d" % [secs/3600, (secs%3600)/60, secs%60]
end

#same_day?(time, other_time) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/timetrap/helpers.rb', line 18

def same_day? time, other_time
  format_date(time) == format_date(other_time)
end

#sheet_name_from_string(string) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/timetrap/helpers.rb', line 37

def sheet_name_from_string string
  return "all" if string =~ /^\W*all\W*$/
  return "" unless string =~ /.+/
  DB[:entries].filter(:sheet.like("#{string}%")).first[:sheet]
rescue
  ""
end