rubyist-jacker 1.1 → 1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/jacker +3 -8
- data/lib/jacker.rb +16 -4
- metadata +1 -1
data/bin/jacker
CHANGED
@@ -1,11 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# -*- ruby -*-
|
3
|
-
|
4
|
-
require 'jacker'
|
5
|
-
rescue LoadError
|
6
|
-
require 'rubygems'
|
7
|
-
require 'jacker'
|
8
|
-
end
|
3
|
+
require File.dirname(__FILE__) + "/../lib/jacker"
|
9
4
|
|
10
5
|
case command = ARGV.shift
|
11
6
|
when 'start'
|
@@ -13,12 +8,12 @@ when 'start'
|
|
13
8
|
when 'stop'
|
14
9
|
Jacker.stop
|
15
10
|
when 'current'
|
16
|
-
puts Jacker.current || ''
|
11
|
+
puts Jacker.current(:elapsed => true) || ''
|
17
12
|
when 'status'
|
18
13
|
puts Jacker.status
|
19
14
|
when 'report'
|
20
15
|
Jacker.report do |entry, start, stop|
|
21
|
-
puts "#{start.strftime('%D %H:%M')} #{stop.strftime('%H:%M')} #{entry}"
|
16
|
+
puts "#{start.strftime('%D %H:%M')} - #{stop.strftime('%H:%M')} (#{Jacker.elapsed(start, stop)}) #{entry}"
|
22
17
|
end
|
23
18
|
when 'reset'
|
24
19
|
print "This will kill all entries - are you sure? [yes/N] "
|
data/lib/jacker.rb
CHANGED
@@ -33,11 +33,23 @@ module Jacker
|
|
33
33
|
results.size > 0 && results[0][0].to_i > 0
|
34
34
|
end
|
35
35
|
|
36
|
-
def self.current
|
36
|
+
def self.current(options={})
|
37
37
|
results = self.with_db do |db|
|
38
|
-
db.execute("SELECT what FROM entries WHERE stop IS NULL")
|
38
|
+
db.execute("SELECT what, start FROM entries WHERE stop IS NULL")
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
|
+
return nil if results.empty?
|
42
|
+
|
43
|
+
what, start = results[0][0], Time.parse(results[0][1])
|
44
|
+
options[:elapsed] ? "#{what} (#{elapsed(start, Time.now)})" : what
|
45
|
+
end
|
46
|
+
|
47
|
+
# rounds up to nearest 15 minute increment
|
48
|
+
def self.elapsed(start, stop)
|
49
|
+
seconds = ((stop - start) / 60).to_i
|
50
|
+
hours = seconds / 60
|
51
|
+
minutes = (seconds % 60 + 14) / 15 * 15
|
52
|
+
sprintf("%d:%02d", hours, minutes)
|
41
53
|
end
|
42
54
|
|
43
55
|
def self.report
|
@@ -52,7 +64,7 @@ module Jacker
|
|
52
64
|
|
53
65
|
def self.status
|
54
66
|
if running?
|
55
|
-
"jacking: #{current}"
|
67
|
+
"jacking: #{current(:elapsed => true)}"
|
56
68
|
else
|
57
69
|
"not jacking"
|
58
70
|
end
|