Module: Timetrap
- Extended by:
- Timetrap
- Included in:
- Timetrap
- Defined in:
- lib/timetrap.rb,
lib/timetrap/cli.rb,
lib/timetrap/config.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, Config, Formatters, Helpers
Classes: AlreadyRunning, Entry, Meta
Instance Method Summary
collapse
Instance Method Details
#current_sheet ⇒ Object
27
28
29
30
31
32
|
# File 'lib/timetrap.rb', line 27
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
21
22
23
24
25
|
# File 'lib/timetrap.rb', line 21
def current_sheet= sheet
m = Meta.find_or_create(:key => 'current_sheet')
m.value = sheet
m.save
end
|
#entries(sheet = nil) ⇒ Object
34
35
36
|
# File 'lib/timetrap.rb', line 34
def entries sheet = nil
Entry.filter(:sheet => sheet).order_by(:start)
end
|
70
71
72
|
# File 'lib/timetrap.rb', line 70
def format format_klass, entries
format_klass.new(entries).output
end
|
#kill_sheet(sheet) ⇒ Object
66
67
68
|
# File 'lib/timetrap.rb', line 66
def kill_sheet sheet
Entry.filter(:sheet => sheet).destroy
end
|
#running? ⇒ Boolean
38
39
40
|
# File 'lib/timetrap.rb', line 38
def running?
!!active_entry
end
|
#start(note, time = nil) ⇒ Object
54
55
56
57
58
59
60
|
# File 'lib/timetrap.rb', line 54
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
46
47
48
49
50
51
52
|
# File 'lib/timetrap.rb', line 46
def stop time = nil
while a = active_entry
time ||= Time.now
a.end = time
a.save
end
end
|
#switch(sheet) ⇒ Object
62
63
64
|
# File 'lib/timetrap.rb', line 62
def switch sheet
self.current_sheet = sheet
end
|