todd 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/History.md ADDED
@@ -0,0 +1,137 @@
1
+ commit 83697d83ada204efa36f1671365ff57148f69634
2
+ Author: Carl Sverre <carl@icehouse.(none)>
3
+ Date: Mon Feb 22 17:42:25 2010 -0800
4
+
5
+ More commander implementation, lots of bug fixes and api changes
6
+
7
+ commit f9832591a16c7ac4e261b907e39f213ac9c30b9a
8
+ Author: Carl Sverre <carl@iced.(none)>
9
+ Date: Mon Feb 22 00:12:33 2010 -0800
10
+
11
+ BROKEN COMMIT :: Moving to Gem module dir format
12
+
13
+ New dir layout
14
+ In process of migrating todd to use Vision Media's commander gem
15
+ In process of making this gem friendly
16
+
17
+ commit aa377f13fd01481b0ebaf1c6a374f3f95addd1a4
18
+ Author: Carl Sverre <carl@iced.(none)>
19
+ Date: Sun Feb 21 23:45:08 2010 -0800
20
+
21
+ Migrated to using punches for each task session
22
+
23
+ commit 52197836deda170dc6876b9dd9795a81e688a086
24
+ Author: Carl Sverre <carl@iced.(none)>
25
+ Date: Sun Feb 21 21:12:17 2010 -0800
26
+
27
+ New 'minimal' output style added along with a new time_span formatter and some bug fixes
28
+
29
+ commit c7808169e5944c94482abe0ffabdc29be99745ed
30
+ Author: Carl Sverre <carl@iced.(none)>
31
+ Date: Sun Feb 21 18:06:55 2010 -0800
32
+
33
+ Fixed activerecord migration and some rakefile bugs
34
+
35
+ commit a767e9552eb7e1ebce9e24f7b13e56502eed8ddb
36
+ Author: Carl Sverre <carl@rain.(none)>
37
+ Date: Sat Feb 20 20:00:35 2010 -0800
38
+
39
+ Lots of changes to do with formatting
40
+
41
+ * Refactored the outputter into todd_util
42
+ * Added visionmedia's terminal-table for nice outputting
43
+
44
+ commit 75a9bd1dd143240c794700368940a442c21ec0bf
45
+ Author: Carl Sverre <carl@rain.(none)>
46
+ Date: Mon Feb 15 01:18:32 2010 -0800
47
+
48
+ YAML is included by default
49
+
50
+ commit de6c379a222dbe4737e114bffb088125e5a674b2
51
+ Author: Carl Sverre <carl@rain.(none)>
52
+ Date: Mon Feb 15 01:17:18 2010 -0800
53
+
54
+ Moving from ruby config to YAML config
55
+
56
+ commit 170d7a4a4121389e4b690431eef453b747bc734c
57
+ Author: Carl Sverre <carl@rain.(none)>
58
+ Date: Sun Feb 14 20:24:48 2010 -0800
59
+
60
+ Migrated schema to using migrations
61
+
62
+ * Moved the database initialization out of todd_model.rb
63
+ * Added rudimentary Rakefile with support for migrations.
64
+
65
+ commit 6c8de958d1a8a4e1e749c5909645bcedb9f11714
66
+ Author: Carl Sverre <carl@rain.(none)>
67
+ Date: Sun Feb 14 00:56:53 2010 -0800
68
+
69
+ Success! Working time tracking system. Very simple, so much development is still needed. Stay tuned for more
70
+
71
+ commit a5a1c54549f83fffedd1b3fcaa2bd33d24c66bf3
72
+ Author: Carl Sverre <carl@rain.(none)>
73
+ Date: Sat Feb 13 20:49:11 2010 -0800
74
+
75
+ Working system
76
+
77
+ commit 5552ebd064bb9da442262153903bc5903c2e9e3f
78
+ Author: Carl Sverre <carl@rain.(none)>
79
+ Date: Sun Feb 7 15:22:01 2010 -0800
80
+
81
+ Still working on the conversion
82
+
83
+ commit d39799823d3bcd32e8fb6591a89b95027251a58e
84
+ Author: Carl Sverre <carl@rain.(none)>
85
+ Date: Sat Feb 6 15:01:40 2010 -0800
86
+
87
+ Half migrated to activerecord
88
+
89
+ commit fe67c559726d60c98025be38e8dcd354ea8f0317
90
+ Author: Carl Sverre <carl@rain.(none)>
91
+ Date: Sat Feb 6 12:51:43 2010 -0800
92
+
93
+ Last commit before moving to activerecord
94
+
95
+ commit bf1e4e77ff5e174d2c4032603ed4e514fffc1d7a
96
+ Author: Carl Sverre <carl@rain.(none)>
97
+ Date: Fri Feb 5 01:55:17 2010 -0800
98
+
99
+ Lots of changes, mostly trying to get a feel...
100
+
101
+ ...for ruby and this program.
102
+
103
+ commit f3314dabcdd0c5d6a6857fee3f09a7a1a24f6898
104
+ Author: Carl Sverre <carl@icehouse.(none)>
105
+ Date: Thu Feb 4 17:06:50 2010 -0800
106
+
107
+ Added basic framework
108
+
109
+ commit 0c80cdd49347c1a508784722b52e40dfdb3abfcd
110
+ Author: Carl Sverre <carl@iced.(none)>
111
+ Date: Wed Feb 3 23:26:58 2010 -0800
112
+
113
+ adding horizontal rules
114
+
115
+ commit 7bb70d7f31182024424bfc11811a79e58867c6fa
116
+ Author: Carl Sverre <carl@iced.(none)>
117
+ Date: Wed Feb 3 23:24:16 2010 -0800
118
+
119
+ Fixing readme
120
+
121
+ commit 94748ade8222c168a0d1d2cd91aa277ad0d5fde3
122
+ Author: Carl Sverre <carl@iced.(none)>
123
+ Date: Wed Feb 3 23:23:19 2010 -0800
124
+
125
+ Readme added
126
+
127
+ commit 645d076e03e77d7a13e00b800e0566a95426670d
128
+ Author: Carl Sverre <carl@iced.(none)>
129
+ Date: Wed Feb 3 23:22:56 2010 -0800
130
+
131
+ Readme added
132
+
133
+ commit 3b7ebb8daaaad24ff6312de584331f152196895c
134
+ Author: Stephen Sugden <grncdr@uvic.ca>
135
+ Date: Wed Jan 27 11:54:15 2010 -0800
136
+
137
+ added empty files
data/Manifest ADDED
@@ -0,0 +1,24 @@
1
+ History.md
2
+ Manifest
3
+ Rakefile
4
+ Readme.md
5
+ TODO
6
+ bin/todd
7
+ bin/todd.rb
8
+ bin/todd_old.rb
9
+ db/database.yml
10
+ db/migrations/0214102019_initialize_database.rb
11
+ db/migrations/0221102255_add_punch_table.rb
12
+ db/migrations/0222102121_remove_archived_tasks.rb
13
+ db/migrations/0222102124_add_archived_column_to_tasks.rb
14
+ db/todd.db
15
+ lib/todd.rb
16
+ lib/todd/config.rb
17
+ lib/todd/model.rb
18
+ lib/todd/util.rb
19
+ lib/todd/version.rb
20
+ tasks/enviroment.rake
21
+ tasks/migrate.rake
22
+ tasks/migration.rake
23
+ tasks/revert.rake
24
+ tasks/revert_db.rake
data/Rakefile ADDED
@@ -0,0 +1,20 @@
1
+ $:.unshift 'lib'
2
+
3
+ require 'todd'
4
+ require 'rubygems'
5
+ require 'rake'
6
+ require 'highline/import'
7
+ require 'echoe'
8
+
9
+ Echoe.new 'todd', Todd::VERSION do |p|
10
+ p.author = "Carl Sverre"
11
+ p.email = "carl@carlsverre.com"
12
+ p.summary = "A simple time-tracking todo-list for the command line."
13
+ p.url = "http://github.com/uvic-sdo/todd"
14
+ p.runtime_dependencies << 'commander >=4.0.2'
15
+ p.runtime_dependencies << 'active_record >=2.3.5'
16
+ p.runtime_dependencies << 'terminal_table >=1.4.2'
17
+ p.runtime_dependencies << 'json >=1.2.0'
18
+ end
19
+
20
+ Dir['tasks/**/*.rake'].sort.each { |f| load f }
data/Readme.md ADDED
@@ -0,0 +1,84 @@
1
+ Todd
2
+ ====
3
+
4
+ Powerful todo-list action at your fingertips.
5
+
6
+ Contribution
7
+ ============
8
+
9
+ Right now Todd is still in its growth stages, so if you are interested
10
+ in contributing be aware that any part of the Todd api could change at any
11
+ moment.
12
+
13
+ Commands
14
+ --------
15
+
16
+ $ todd init
17
+
18
+ Initialize a todd todo list in the local directory.
19
+
20
+ -------------------------------------------------------
21
+
22
+ $ todd add-remote <not implemented>
23
+
24
+ Add a connection to a remote todo list.
25
+
26
+ -------------------------------------------------------
27
+
28
+ $ todd sync <not implemented>
29
+
30
+ Sync to a remote todo list.
31
+
32
+ -------------------------------------------------------
33
+
34
+ $ todd add <string>
35
+
36
+ Add an item to the local todo list. <string> in format:
37
+
38
+ > "Task description #category-optional"
39
+
40
+ -------------------------------------------------------
41
+
42
+ $ todd rm <id>
43
+
44
+ Remove an item from the local todo list. <id> in format:
45
+
46
+ EITHER #relative-id OR <hash>. The relative id is a short id
47
+ which comes up when you use `todd list`, and the <hash> is
48
+ enough of the task's hash to make it unique.
49
+
50
+ -------------------------------------------------------
51
+
52
+ $ todd list
53
+
54
+ List all items (or items from a particular category). Format
55
+ something like:
56
+
57
+ $ todd list
58
+ #1 task text task text task text <9e107d9d372bb6826bd81d3542a419d6>
59
+ #2 lorem ipsum lorem ipsum <dbb804f87fdc6914a7978aae54f5958b>
60
+
61
+ Category:
62
+ #3 a quick brown fox did something <174a904669b71d64ef22c8b22aa80c61>
63
+ $
64
+
65
+ -------------------------------------------------------
66
+
67
+ $ todd find <query>
68
+
69
+ Search all tasks with a certain query. Query format is yet to be decided.
70
+ Output format similar to list.
71
+
72
+ -------------------------------------------------------
73
+
74
+ $ todd start <id>
75
+
76
+ Start the timer on task with id == <id>. <id> in same format as `todd rm`
77
+
78
+ -------------------------------------------------------
79
+
80
+ $ todd stop <id>
81
+
82
+ Stop the timer on task with id == <id>. <id> in same format as `todd rm`
83
+ Outputs session time (time since it started) and total time.
84
+
data/TODO ADDED
@@ -0,0 +1,12 @@
1
+ Todo List:
2
+
3
+ * Todd-Repl to do batch task-management
4
+ * ~/.todd config file for global options, ./.todd for local todo-lists
5
+ * add super simple markdown output formatting for git commit msgs
6
+ * move formatters into their own namespaces and seperate classes
7
+ * todd start --monitor <max_time>
8
+ * add graphs!!!!
9
+ * add test framework
10
+ * add rdoc
11
+ * rewrite readme
12
+ * todd remoting stuff? webserver
data/bin/todd ADDED
@@ -0,0 +1,145 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.dirname(__FILE__) + '/../lib'
4
+ require 'rubygems'
5
+ require 'commander/import'
6
+ require 'todd'
7
+
8
+ program :version, Todd::VERSION
9
+ program :description, "Todd: Time Tracking
10
+ Todd is a simple todo list manager which has been
11
+ developed with developers in mind. It allows you
12
+ to track how much time you spend on different tasks
13
+ as well as just acting as a dumb task list.
14
+
15
+ Query System:
16
+ Todd provides a simple query system which you can
17
+ use with most of its commands. The system reads
18
+ the following queries for selecting tasks:
19
+
20
+ n : select a single task with id = n
21
+ n..m : select all tasks with id > n AND id < m
22
+ all : select all tasks
23
+ last : select the last task
24
+ active : select all active tasks
25
+ inactive : select all inactive tasks
26
+
27
+ The system currently only supports a single query
28
+ (instead of ANDing multiple queries)
29
+ "
30
+
31
+ default_command :list
32
+
33
+ list = nil # todd initialized after commands
34
+
35
+ global_option('-f', '--format FORMAT', 'Set output formatting for this run') { |format|
36
+ Todd::Base.set_formatting format
37
+ }
38
+
39
+ command :init do |c|
40
+ c.syntax = 'todd init'
41
+ c.summary = 'Initialize Todd'
42
+ c.description = 'Initialize Todd in the current directory'
43
+ c.action do |args, options|
44
+ Todd::Base.init_local_dir
45
+ end
46
+ end
47
+
48
+ command :list do |c|
49
+ c.syntax = 'todd list'
50
+ c.summary = 'List all tasks'
51
+ c.description = 'List all the tasks in the current Todd List'
52
+ c.action do |args, options|
53
+ puts Todd::Util.format_bundle list.bundle
54
+ end
55
+ end
56
+ alias_command :ls, :list
57
+
58
+ command :find do |c|
59
+ c.syntax = 'todd find [query]'
60
+ c.summary = 'Find tasks matching query'
61
+ c.description = 'Find all tasks which match the query in the current Todd List'
62
+ c.action do |args, options|
63
+ puts Todd::Util.format_bundle list.bundle(args.shift)
64
+ end
65
+ end
66
+ alias_command :f, :find
67
+
68
+ command :add do |c|
69
+ c.syntax = 'todd add [task]'
70
+ c.summary = 'Add a task'
71
+ c.description = 'Add a task to the current Todd List
72
+ [task] can contain a hash-tagged category anywhere if you want
73
+ to place the task in a different category than default'
74
+ c.example 'Add a simple task', 'todd add "Fix Todd version"'
75
+ c.example 'Add a task in category personal', 'todd add "Playing Videogames #personal"'
76
+ c.example 'Add a task in category clients', 'todd add "Working on google.com #clients"'
77
+ c.action do |args, options|
78
+ list.add args.shift
79
+ end
80
+ end
81
+ alias_command :a, :add
82
+
83
+ command :remove do |c|
84
+ c.syntax = 'todd remove [query]'
85
+ c.summary = 'Remove tasks'
86
+ c.description = 'Remove all tasks which match the query.'
87
+ c.action do |args, options|
88
+ list.rm args.shift
89
+ end
90
+ end
91
+ alias_command :rm, :remove
92
+
93
+ command :start do |c|
94
+ c.syntax = 'todd start [query]'
95
+ c.summary = 'Start tasks'
96
+ c.description = 'Start all tasks which match the query'
97
+ c.action do |args, options|
98
+ list.start args.shift
99
+ end
100
+ end
101
+ alias_command :s, :start
102
+
103
+ command :stop do |c|
104
+ c.syntax = 'todd stop [query]'
105
+ c.summary = 'stop tasks'
106
+ c.description = 'stop all tasks which match the query'
107
+ c.action do |args, options|
108
+ list.stop args.shift
109
+ end
110
+ end
111
+ alias_command :st, :stop
112
+
113
+ command :archive do |c|
114
+ c.syntax = 'todd archive [query]'
115
+ c.summary = 'Archive tasks'
116
+ c.description = 'Archive all tasks which match the query'
117
+ c.action do |args, options|
118
+ list.archive args.shift
119
+ end
120
+ end
121
+ alias_command :ar, :archive
122
+
123
+ command :restore do |c|
124
+ c.syntax = 'todd restore [query]'
125
+ c.summary = 'Restore tasks'
126
+ c.description = 'Restore all archived tasks matched by query'
127
+ c.action do |args, options|
128
+ list.restore args.shift
129
+ end
130
+ end
131
+ alias_command :r, :restore
132
+
133
+ command :archived do |c|
134
+ c.syntax = 'todd archived [query]'
135
+ c.summary = 'List archived tasks'
136
+ c.description = 'List all archived tasks which match the query [optional]'
137
+ c.action do |args, options|
138
+ puts Todd::Util.format_bundle list.bundle(args.shift, true)
139
+ end
140
+ end
141
+ alias_command :arch, :archived
142
+
143
+ Todd::Base.setup
144
+ Todd::DB.initialize_db
145
+ list = Todd::DB.get_current_list
data/bin/todd.rb ADDED
@@ -0,0 +1,145 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.dirname(__FILE__) + '/../lib'
4
+ require 'rubygems'
5
+ require 'commander/import'
6
+ require 'todd'
7
+
8
+ program :version, Todd::VERSION
9
+ program :description, "Todd: Time Tracking
10
+ Todd is a simple todo list manager which has been
11
+ developed with developers in mind. It allows you
12
+ to track how much time you spend on different tasks
13
+ as well as just acting as a dumb task list.
14
+
15
+ Query System:
16
+ Todd provides a simple query system which you can
17
+ use with most of its commands. The system reads
18
+ the following queries for selecting tasks:
19
+
20
+ n : select a single task with id = n
21
+ n..m : select all tasks with id > n AND id < m
22
+ all : select all tasks
23
+ last : select the last task
24
+ active : select all active tasks
25
+ inactive : select all inactive tasks
26
+
27
+ The system currently only supports a single query
28
+ (instead of ANDing multiple queries)
29
+ "
30
+
31
+ default_command :list
32
+
33
+ list = nil # todd initialized after commands
34
+
35
+ global_option('-f', '--format FORMAT', 'Set output formatting for this run') { |format|
36
+ Todd::Base.set_formatting format
37
+ }
38
+
39
+ command :init do |c|
40
+ c.syntax = 'todd init'
41
+ c.summary = 'Initialize Todd'
42
+ c.description = 'Initialize Todd in the current directory'
43
+ c.action do |args, options|
44
+ Todd::Base.init_local_dir
45
+ end
46
+ end
47
+
48
+ command :list do |c|
49
+ c.syntax = 'todd list'
50
+ c.summary = 'List all tasks'
51
+ c.description = 'List all the tasks in the current Todd List'
52
+ c.action do |args, options|
53
+ puts Todd::Util.format_bundle list.bundle
54
+ end
55
+ end
56
+ alias_command :ls, :list
57
+
58
+ command :find do |c|
59
+ c.syntax = 'todd find [query]'
60
+ c.summary = 'Find tasks matching query'
61
+ c.description = 'Find all tasks which match the query in the current Todd List'
62
+ c.action do |args, options|
63
+ puts Todd::Util.format_bundle list.bundle(args.shift)
64
+ end
65
+ end
66
+ alias_command :f, :find
67
+
68
+ command :add do |c|
69
+ c.syntax = 'todd add [task]'
70
+ c.summary = 'Add a task'
71
+ c.description = 'Add a task to the current Todd List
72
+ [task] can contain a hash-tagged category anywhere if you want
73
+ to place the task in a different category than default'
74
+ c.example 'Add a simple task', 'todd add "Fix Todd version"'
75
+ c.example 'Add a task in category personal', 'todd add "Playing Videogames #personal"'
76
+ c.example 'Add a task in category clients', 'todd add "Working on google.com #clients"'
77
+ c.action do |args, options|
78
+ list.add args.shift
79
+ end
80
+ end
81
+ alias_command :a, :add
82
+
83
+ command :remove do |c|
84
+ c.syntax = 'todd remove [query]'
85
+ c.summary = 'Remove tasks'
86
+ c.description = 'Remove all tasks which match the query.'
87
+ c.action do |args, options|
88
+ list.rm args.shift
89
+ end
90
+ end
91
+ alias_command :rm, :remove
92
+
93
+ command :start do |c|
94
+ c.syntax = 'todd start [query]'
95
+ c.summary = 'Start tasks'
96
+ c.description = 'Start all tasks which match the query'
97
+ c.action do |args, options|
98
+ list.start args.shift
99
+ end
100
+ end
101
+ alias_command :s, :start
102
+
103
+ command :stop do |c|
104
+ c.syntax = 'todd stop [query]'
105
+ c.summary = 'stop tasks'
106
+ c.description = 'stop all tasks which match the query'
107
+ c.action do |args, options|
108
+ list.stop args.shift
109
+ end
110
+ end
111
+ alias_command :st, :stop
112
+
113
+ command :archive do |c|
114
+ c.syntax = 'todd archive [query]'
115
+ c.summary = 'Archive tasks'
116
+ c.description = 'Archive all tasks which match the query'
117
+ c.action do |args, options|
118
+ list.archive args.shift
119
+ end
120
+ end
121
+ alias_command :ar, :archive
122
+
123
+ command :restore do |c|
124
+ c.syntax = 'todd restore [query]'
125
+ c.summary = 'Restore tasks'
126
+ c.description = 'Restore all archived tasks matched by query'
127
+ c.action do |args, options|
128
+ list.restore args.shift
129
+ end
130
+ end
131
+ alias_command :r, :restore
132
+
133
+ command :archived do |c|
134
+ c.syntax = 'todd archived [query]'
135
+ c.summary = 'List archived tasks'
136
+ c.description = 'List all archived tasks which match the query [optional]'
137
+ c.action do |args, options|
138
+ puts Todd::Util.format_bundle list.bundle(args.shift, true)
139
+ end
140
+ end
141
+ alias_command :arch, :archived
142
+
143
+ Todd::Base.setup
144
+ Todd::DB.initialize_db
145
+ list = Todd::DB.get_current_list