Module: Timetrap
- Extended by:
- Timetrap
- Included in:
- Timetrap
- Defined in:
- lib/timetrap.rb,
lib/timetrap/cli.rb,
lib/timetrap/models.rb,
lib/timetrap/helpers.rb,
lib/timetrap/formatters/csv.rb,
lib/timetrap/formatters/ical.rb,
lib/timetrap/formatters/text.rb
Defined Under Namespace
Modules: CLI, Formatters, Helpers
Classes: AlreadyRunning, Entry, Meta
Instance Method Summary
collapse
Instance Method Details
#current_sheet ⇒ Object
24
25
26
27
28
29
|
# File 'lib/timetrap.rb', line 24
def current_sheet
unless Meta.find(:key => 'current_sheet')
Meta.create(:key => 'current_sheet', :value => 'default')
end
Meta.find(:key => 'current_sheet').value
end
|
#current_sheet=(sheet) ⇒ Object
18
19
20
21
22
|
# File 'lib/timetrap.rb', line 18
def current_sheet= sheet
m = Meta.find_or_create(:key => 'current_sheet')
m.value = sheet
m.save
end
|
#entries(sheet = nil) ⇒ Object
31
32
33
|
# File 'lib/timetrap.rb', line 31
def entries sheet = nil
Entry.filter(:sheet => sheet).order_by(:start)
end
|
67
68
69
|
# File 'lib/timetrap.rb', line 67
def format format_klass, entries
format_klass.new(entries).output
end
|
#kill_sheet(sheet) ⇒ Object
63
64
65
|
# File 'lib/timetrap.rb', line 63
def kill_sheet sheet
Entry.filter(:sheet => sheet).destroy
end
|
#running? ⇒ Boolean
35
36
37
|
# File 'lib/timetrap.rb', line 35
def running?
!!active_entry
end
|
#start(note, time = nil) ⇒ Object
51
52
53
54
55
56
57
|
# File 'lib/timetrap.rb', line 51
def start note, time = nil
raise AlreadyRunning if running?
time ||= Time.now
Entry.create(:sheet => Timetrap.current_sheet, :note => note, :start => time).save
rescue => e
CLI.say e.message
end
|
#stop(time = nil) ⇒ Object
43
44
45
46
47
48
49
|
# File 'lib/timetrap.rb', line 43
def stop time = nil
while a = active_entry
time ||= Time.now
a.end = time
a.save
end
end
|
#switch(sheet) ⇒ Object
59
60
61
|
# File 'lib/timetrap.rb', line 59
def switch sheet
self.current_sheet = sheet
end
|