timetrackr 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.mkd CHANGED
@@ -4,23 +4,24 @@ A simple CLI time tracking utility.
4
4
 
5
5
  ## Example
6
6
 
7
- $ tt start work
7
+ (with a Bash alias of 'tt')
8
8
 
9
- $ tt switch play
9
+ $ tt start something
10
10
 
11
11
  $ tt
12
- work 0h 0m 3s
13
- play * 0h 0m 1s
12
+ something * 0h 0m 4s
14
13
 
15
- $ tt clear work
16
-
17
- $ tt time
18
- play * 0h 0m 5s
14
+ $ tt start another-thing
19
15
 
20
16
  $ tt log
21
- 2011-05-17 work 08:05 08:20 0h 15m 41s
22
- something * 09:05 0h 0m 4s
17
+ 2011-05-18 something * 22:11 0h 0m 26s
18
+ another-thing * 22:11 0h 0m 6s
19
+
20
+ $ tt stop something
23
21
 
22
+ $ tt
23
+ something 0h 0m 37s
24
+ another-thing * 0h 0m 20s
24
25
 
25
26
 
26
27
  ## Contributing to timetrackr
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
data/bin/timetrackr CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
3
+ lib_dir = File.dirname(__FILE__) + '/../lib'
4
+ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
4
5
 
5
6
  require 'timetrackr'
6
- require 'timetrackr/period'
7
7
 
8
8
  DEFAULTS = {
9
9
  'backend' => 'yaml',
@@ -138,7 +138,8 @@ when 'log'
138
138
  start = period.start.strftime(config['absolute_time'])
139
139
  stop = period.current? ? ' ' : period.stop.strftime(config['absolute_time'])
140
140
  length = format_time(period.length, config['relative_format'])
141
- "#{day.ljust(12)} #{name.ljust(15)} #{start.ljust(7)} #{stop.ljust(7)} #{length}"
141
+ notes = period.notes
142
+ "#{day.ljust(12)} #{name.ljust(15)} #{start} - #{stop.ljust(5)} #{length} #{notes}"
142
143
  }
143
144
  puts table
144
145
 
@@ -151,6 +152,12 @@ when 'clear','delete','del'
151
152
  puts "Task '#{task}' cleared" if $verbose
152
153
  end
153
154
 
155
+ when 'rename','mv'
156
+ from = ARGV.shift
157
+ to = ARGV.shift
158
+ trackr.rename(from,to)
159
+ puts "Renamed '#{from}' to '#{to}'" if $verbose
160
+
154
161
  else
155
162
  puts "'#{cmd}' is not a valid command"
156
163
  show_help
@@ -57,6 +57,11 @@ class SqliteTimeTrackr < TimeTrackr
57
57
  }
58
58
  end
59
59
 
60
+ def rename(from, to)
61
+ sql = "UPDATE events SET task = :to WHERE task = :from;"
62
+ @db.execute(sql, 'to' => to, 'from' => from)
63
+ end
64
+
60
65
  def clear(task)
61
66
  sql = "DELETE FROM events WHERE task = :task;"
62
67
  @db.execute(sql, 'task' => task)
@@ -51,6 +51,13 @@ class YamlTimeTrackr < TimeTrackr
51
51
  } unless !@db[:tasks].include? task
52
52
  end
53
53
 
54
+ def rename(from, to)
55
+ @db[:tasks][to] = @db[:tasks].delete(from)
56
+ if @db[:current].delete(from)
57
+ @db[:current].unshift(to)
58
+ end
59
+ end
60
+
54
61
  def close
55
62
  write_file
56
63
  end
data/lib/timetrackr.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  autoload 'YamlTimeTrackr', 'timetrackr/yaml'
2
2
  autoload 'SqliteTimeTrackr', 'timetrackr/sqlite'
3
+ autoload 'Period', 'timetrackr/period'
3
4
 
4
5
  class TimeTrackr
5
6
  def self.create(type, options={})
@@ -67,6 +68,13 @@ class TimeTrackr
67
68
  raise 'Not Implemented'
68
69
  end
69
70
 
71
+ #
72
+ # rename a task
73
+ #
74
+ def rename(from, to)
75
+ raise 'Not implemented'
76
+ end
77
+
70
78
  #
71
79
  # clear an task
72
80
  #
data/timetrackr.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{timetrackr}
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Felix Hanley"]
12
- s.date = %q{2011-05-17}
12
+ s.date = %q{2011-05-19}
13
13
  s.default_executable = %q{timetrackr}
14
14
  s.description = %q{A simple time tracking utility}
15
15
  s.email = %q{felix@seconddrawer.com.au}
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: timetrackr
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.3
5
+ version: 0.1.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Felix Hanley
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-17 00:00:00 +07:00
13
+ date: 2011-05-19 00:00:00 +07:00
14
14
  default_executable: timetrackr
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -106,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - ">="
108
108
  - !ruby/object:Gem::Version
109
- hash: -4194975739738215101
109
+ hash: 317875573549099611
110
110
  segments:
111
111
  - 0
112
112
  version: "0"