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.
Files changed (3) hide show
  1. data/bin/jacker +3 -8
  2. data/lib/jacker.rb +16 -4
  3. metadata +1 -1
data/bin/jacker CHANGED
@@ -1,11 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # -*- ruby -*-
3
- begin
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] "
@@ -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
- results.size > 0 ? results[0][0] : nil
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyist-jacker
3
3
  version: !ruby/object:Gem::Version
4
- version: "1.1"
4
+ version: "1.2"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Barron