dooby 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format doc
2
+ --color
@@ -0,0 +1,38 @@
1
+ CHANGELOG
2
+ =========
3
+
4
+ Version 0.3.0 (November 06, 2010)
5
+ --------------------------------
6
+
7
+ * use as git commit message the item marked as :doing wth **$ dooby commit**
8
+ * fix autocompletion of strings starting with an at sign (@)
9
+ * due dates handled through curly braces containing a date in this format: {mmm/dd/yyyy}, ie. {May/02/2011}
10
+ * **#tomorrow** tag is replaced by tomorrow's date, ie. {Nov/04/2010} and then replaced by #today at the next day.
11
+ * show items containing the tomorrow's date if user issues **$ dooby list #tomorrow** or **tomorrow**
12
+ * fix error when autocompletion isn't set
13
+ * add autocompletion to **ilist** (interactive)
14
+ * colorize strings starting with a colon (statuses)
15
+
16
+ ---
17
+
18
+ Version 0.2.0 (October 28, 2010)
19
+ ----------------------------
20
+
21
+ * add sections for items marked as **#today** and **#urgent**
22
+ * add messages when user executes dooby without arguments and list is empty
23
+ * add **bulk delete** (interactive and completion)
24
+ $ dooby bulkdelete
25
+ * add **shortcuts** to list tags
26
+ $ dooby l@
27
+ $ dooby l#
28
+ $ dooby l%
29
+
30
+ ---
31
+
32
+ Version 0.1.0 (October 27, 2010)
33
+ --------------------------------
34
+
35
+ * add, edit, list, interactive list, delete, trash and flush
36
+ * colorize strings starting with @, # and %
37
+
38
+ * Initial release
data/Gemfile CHANGED
@@ -1,5 +1,15 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "main", "4.2.0"
4
- gem "colored", "1.2"
5
- gem "highline", "1.6.1"
3
+ group :development do
4
+ gem "rspec", "~> 2.0.0"
5
+ gem "bundler", "~> 1.0.0"
6
+ gem "jeweler", "~> 1.5.0.pre5"
7
+ gem "rcov", ">= 0"
8
+ end
9
+
10
+ group :production do
11
+ gem "main", "4.2.0"
12
+ gem "colored", "1.2"
13
+ gem "highline", "1.6.1"
14
+ gem "chronic", "0.3.0"
15
+ end
@@ -2,17 +2,41 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  arrayfields (4.7.4)
5
+ chronic (0.3.0)
5
6
  colored (1.2)
7
+ diff-lcs (1.1.2)
6
8
  fattr (2.1.0)
9
+ git (1.2.5)
7
10
  highline (1.6.1)
11
+ jeweler (1.5.0.pre5)
12
+ bundler (~> 1.0.0)
13
+ git (>= 1.2.5)
14
+ rake
8
15
  main (4.2.0)
9
16
  arrayfields (>= 4.7.4)
10
17
  fattr (>= 2.1.0)
18
+ rake (0.8.7)
19
+ rcov (0.9.9)
20
+ rspec (2.0.1)
21
+ rspec-core (~> 2.0.1)
22
+ rspec-expectations (~> 2.0.1)
23
+ rspec-mocks (~> 2.0.1)
24
+ rspec-core (2.0.1)
25
+ rspec-expectations (2.0.1)
26
+ diff-lcs (>= 1.1.2)
27
+ rspec-mocks (2.0.1)
28
+ rspec-core (~> 2.0.1)
29
+ rspec-expectations (~> 2.0.1)
11
30
 
12
31
  PLATFORMS
13
32
  ruby
14
33
 
15
34
  DEPENDENCIES
35
+ bundler (~> 1.0.0)
36
+ chronic (= 0.3.0)
16
37
  colored (= 1.2)
17
38
  highline (= 1.6.1)
39
+ jeweler (~> 1.5.0.pre5)
18
40
  main (= 4.2.0)
41
+ rcov
42
+ rspec (~> 2.0.0)
data/README.md CHANGED
@@ -3,33 +3,23 @@ dooby
3
3
 
4
4
  A **very simplistic** command-line to-do/note list manager in Ruby.
5
5
 
6
- WARNING!!!
7
- -------
8
-
9
- You should know this gem lacks of fancy things, meaning: social, cloud, mobile, web interface, etc.
10
-
11
6
  Why another to-do list manager?
12
7
  ----
13
8
 
14
- I spend a lot of time in the terminal and I didn't really like any of the current options.
9
+ I spend a lot of time in the terminal and I haven't liked any of the current options.
15
10
 
16
11
  How does Dooby works?
17
12
  ---------------------
18
13
 
19
14
  ### A bunch of lists
20
- Dooby is directory-based, so you can maintain different to-do/notes lists in every directory you want.
21
-
22
- For instance, I use one to-do list per project, that way I don't have all the tasks in one place so I can get focused in just one set of tasks, in one context.
23
-
24
- ### Priorities
25
- Dooby doesn't like to handle priorities, that's your concern. The main goal of Dooby is to help me to handle my today/tomorrow tasks and to handle my personal notes.
15
+ Dooby can handle one list per directory.
26
16
 
27
- ### Due dates
28
- Due dates for today/tomorrow tasks? well, maybe later.
17
+ For instance, I use one to-do list per project, that way I don't have all the items in one place so I can get focused in just one set of items, in one context.
29
18
 
30
- ### #tag #tag and #tag again and tell @jim to #tag everything in his %life as well
19
+ ### A bunch of tags
20
+ #### #tag #tag and #tag again and tell @jim :now to #tag everything in his %life as well
31
21
 
32
- Dooby uses some special characters to visually help us to differentiate between things and let us search tasks very easily, the ones that you might recognize are **@** and **#**, I stole the idea from Twitter, but of course they don't behave as in Twitter, the **@** sign is not an username but a character to simply tag a person, that's all, nothing else (so far).
22
+ Dooby uses some special characters to visually help us to differentiate between things and let us search items very easily, the ones that you might recognize are **@** and **#**, I stole the idea from Twitter, but of course they don't behave as in Twitter, the **@** sign is not an username but a character to tag a person, that's all, nothing else (so far).
33
23
 
34
24
  People
35
25
 
@@ -43,64 +33,88 @@ Contexts (states of mind, mood, places, etc)
43
33
 
44
34
  #thinking, #sad
45
35
 
46
- Projects
36
+ Item sets (for objectives that takes more than one task to achieve)
47
37
 
48
- %website, %shoppinglist, %whatever
49
-
50
- Most of these characters are meaningless to Dooby, she (yes, she's a woman) isn't aware of them, Dooby is aware only of some of them:
38
+ %fix_computer, %shopping_list, %subproject, %today
39
+
40
+ As you can see we can use % as if it were #, I mean, as a context, this is because most of these tags are meaningless to Dooby, she (yes, she's a woman) isn't aware of them, Dooby is aware only of some of them:
51
41
 
52
42
  #today
53
43
  #urgent
54
44
  #tomorrow
45
+ :doing
55
46
 
56
- All the tasks tagged with *#today* and *#urgent* will be shown in a special section every time you list your to-dos/notes.
47
+ #### #today and #urgent (**not %today, not %urgent**)
48
+ All the items tagged with *#today* and *#urgent* will be shown in a special section every time you list your to-dos/notes.
57
49
 
58
- All the tasks tagged with *#tomorrow* will be marked with the tag *#today* at the next day.
50
+ #### #tomorrow
51
+ It will be converted into tomorrow's date and marked with the tag *#today* at the next day.
52
+ Say today is November, 2 2010, and you create an item like this:
59
53
 
60
- Usage
61
- -----
54
+ I need to #fix the #bug #tomorrow
55
+
56
+ Dooby will save it as
57
+
58
+ I need to #fix the #bug {Nov/03/2010}
59
+
60
+ Now say today is November, 3 2010, Dooby will show it like this:
61
+
62
+ I need to #fix the #bug #today
63
+
64
+ Of course it'd be shown in the TODAY section.
65
+
66
+ #### :doing
67
+ `xThe item tagged as **:doing** will be the *current item* and some commands will affect it or use it for specifying an item id.
62
68
 
63
- ###Creating an alias
69
+ Basic Usage
70
+ -----------
71
+
72
+ NOTE: All the commands have a shortcut, which is the first or two first letters of it.
73
+
74
+ First of all, create an alias if you want to save some keystrokes:
64
75
 
65
76
  $ alias d='dooby'
66
77
 
67
78
  ### Initializing Dooby
68
79
 
69
80
  $ d init
81
+ $ d i
70
82
 
71
- This creates a **.dooby/list.yml** file in the current directory. Dooby will save all the tasks on it.
83
+ This creates a **.dooby/list.yml** file in the current directory. Dooby will save all the items in it.
72
84
 
73
85
  ### Adding items
74
86
 
75
- $ d add "#fix the email error in %website, talk to @peter #today"
87
+ $ d add "#fix the email error in %website, check this out with @peter #today"
76
88
 
77
89
  $ d a "learn to use the #aliases of the #commands"
90
+
91
+ $ d a "#pair with @jim on the %tickets module"
78
92
 
79
93
  ### Listing items
80
94
 
95
+ Try the following commands once you create the items above:
96
+
81
97
  $ d list @peter
82
98
 
83
99
  $ d l today
84
100
 
85
- $ d l \#today
86
-
87
101
  $ d l "#today"
88
102
 
89
103
  $ d l %website
90
104
 
91
105
  $ d l @
92
- > shows tasks related to people
93
106
 
94
107
  $ d l %
95
- > shows all the tasks with a related project
96
108
 
97
- #### Listing items interactively
109
+ #### Listing items interactively (use q or ctrl-c to interrupt)
98
110
 
111
+ You can use the [TAB] key to autocomplete tags
112
+
99
113
  $ d il
100
114
 
101
- > #today
115
+ > #t[TAB]oday
102
116
  Showing items containing: #today
103
- (b954bf) #fix the email error in %website, talk to @peter #today
117
+ (393415) #fix the email error in %website, check this out with @peter #today
104
118
  (9cfbf4) Need to go to the #doctor @hendrix #today
105
119
 
106
120
  > #doctor
@@ -109,9 +123,9 @@ This creates a **.dooby/list.yml** file in the current directory. Dooby will sav
109
123
 
110
124
  > email
111
125
  Showing items containing: email
112
- (b954bf) #fix the email error in %website, talk to @peter #today
126
+ (393415) #fix the email error in %website, check this out with @peter #today
113
127
 
114
- **Note:** Dooby uses SHA1 as Task ID.
128
+ **Note:** Dooby uses SHA1 as Item ID.
115
129
 
116
130
  #### Listing all the hashtags you have used
117
131
 
@@ -119,120 +133,106 @@ This creates a **.dooby/list.yml** file in the current directory. Dooby will sav
119
133
  #today
120
134
  #doctor
121
135
  #fix
136
+ #pair
122
137
 
123
138
  #### Listing all the people you have tagged
124
139
 
125
140
  $ d l@
126
141
  @peter
127
142
  @hendrix
143
+ @jim
128
144
 
129
- #### Listing all the projects you have tagged
145
+ #### Listing all the item sets
130
146
 
131
147
  $ d l%
132
148
  %website
149
+ %tickets
133
150
 
134
- ### Editing items
135
-
136
- **Dooby** supports autocompletion of task IDs in the *delete* and the *edit* commands, to fire it just do the same as in a bash shell, press TAB TAB.
137
-
138
- $ d edit
139
-
140
- or
141
-
142
- $ d e
143
- Task ID > TAB TAB
144
- b954bf 9cfbf4 (we only have 2 tasks)
145
-
146
- $ d e
147
- Task ID > b TAB
151
+ ### Editing items (use q or ctrl-c to interrupt)
148
152
 
149
- and you'll see that the task id have been auto-completed
153
+ **Dooby** supports autocompletion of item IDs in the *delete*, *bulkdelete* and the *edit* commands as well.
150
154
 
151
- $ d e
152
- Task ID > b954bf
155
+ $ d edit
156
+ Item ID > b[TAB]954bf
153
157
 
154
- now press Enter and TAB TAB again if you want the original text of the item:
158
+ now press Enter and [TAB] again if you want the original text of the item:
155
159
 
156
160
  $ d e
157
- Task ID > b954bf
158
- TAB or up arrow to edit > TAB
161
+ Item ID > b954bf
162
+ TAB or up arrow to edit > [TAB]#fix the email error in %website, check this out with @peter #today
159
163
 
160
- $ d e
161
- Task ID > b954bf
162
- TAB or up arrow to edit > #fix the email error in %website, talk to @peter #today
164
+ Edit it and press Enter and the item will be saved.
163
165
 
164
166
  $ d e
165
- Task ID > b954bf
167
+ Item ID > b954bf
166
168
  TAB or up arrow to edit > #fix the email error in %website #today
167
169
 
168
- Edit it and press Enter and the task will be saved.
169
-
170
- ### Deleting items
170
+ ### Deleting items (use q or ctrl-c to interrupt)
171
171
 
172
172
  $ d delete
173
+ Item ID > 5[TAB]21a3d
173
174
 
174
- or
175
-
176
- $ d d
177
- Task ID > TAB TAB
178
- 521a3d 9cfbf4
179
-
180
- **Note:** the *SHA1* of the task we edited previously has changed because it's based on the content
175
+ **Note:** the *SHA1* of the item we edited previously has changed because it's based on the content
181
176
 
182
177
  $ d d
183
- Task ID > 9cfbf4
178
+ Item ID > 9cfbf4
184
179
  9cfbf4 deleted...
185
180
 
186
- **Dooby** won't ask you if you really want to delete the task.
181
+ **Dooby** won't ask you if you really really want to delete the item.
187
182
 
188
183
  $ d l
189
184
  Showing all items...
190
- (521a3d) #fix the email error in %website #today
185
+ (c733ff) #fix the email error in %website #today
191
186
 
192
187
  ### Bulk delete
193
188
 
194
- If you want to delete all the tasks containing a tag or set of tags this is what bulk delete is useful for. This feature will delete only by tag, not simple text, actually if you enter simple text it will simply ignore it.
189
+ If you want to delete all the items containing an exact tag or set of tags or a tag starting with some text you can use bulk delete to do so. This feature will delete only by tag, not simple text, actually if you enter simple text it will simply ignore it.
195
190
 
196
- Bulk delete supports auto-completion too. Say you want to delete all the tasks containing @hendrix AND #today.
191
+ Bulk delete supports auto-completion too. Say you want to delete all the items containing @hendrix AND #today.
197
192
 
198
193
  $ d bulkdelete
194
+ What do you want to bulk delete?
195
+ > #t[TAB]oday @h[TAB]endrix
199
196
 
200
- or
201
-
202
- $ d b
203
- What do you want to bulk delete? (@, #, % allowed)
204
- _ #TAB TAB
205
- #today #doctor
197
+ What if you want to delete all the items containing a tag starting with **#ma** like *#mac*, *#manual*, and *#macro*?, simple:
206
198
 
207
199
  $ d b
208
- What do you want to bulk delete? (@, #, % allowed)
209
- #today @hendrix
200
+ What do you want to bulk delete?
201
+ > #ma [ENTER]
210
202
 
211
203
  That's it
212
204
 
213
205
  ### Deleting all the items
214
206
 
215
207
  $ d flush
216
-
217
- or
218
-
219
- $ d f
220
208
  Sure??? (yes/no)
221
209
  yes
222
- All the task were deleted!
210
+ All the items were deleted!
223
211
 
224
- ### Deleting the **.dooby** directory and all the tasks
212
+ ### Deleting the **.dooby** directory (list.yml included, of course)
225
213
 
226
214
  $ d trash
227
-
228
- or
229
-
230
- $ d t
231
215
  Sure??? (yes/no)
232
216
  yes
233
217
  No more dooby here T_T
234
218
 
235
- ### Help
219
+ ## The current item (item tagged with **:doing**)
220
+
221
+ ### Use an item as commit message (git)
222
+
223
+ Let's say we add a task we need to get done:
224
+
225
+ $ d a "#fix the bug in cart :doing"
226
+
227
+ and that once we get the task done we want to commit the fix:
228
+
229
+ $ git add the_file
230
+
231
+ $ d commit
232
+ The commit message was #fix the bug in cart
233
+
234
+
235
+ ## Help
236
236
 
237
237
  You can check the help out using the -h flag
238
238
 
@@ -248,7 +248,7 @@ You can check the help out using the -h flag
248
248
  dooby list [what_to_show*] [options]+
249
249
 
250
250
  DESCRIPTION
251
- Lists @people, #tags, %projects or tasks (default)
251
+ Lists @people, #tags, %projects or items (default)
252
252
 
253
253
  PARAMETERS
254
254
  what_to_show (-1 ~> what_to_show)
@@ -257,7 +257,18 @@ You can check the help out using the -h flag
257
257
  Known bugs
258
258
  ----------
259
259
 
260
- * Auto-completion doesn't work with at signs (@)
260
+ * In Windows the text is shown with the color codes even installing the *win32console* gem
261
+
262
+ To Do
263
+ -----
264
+
265
+ * refactor List#find method, it must return a hash of items not the strings to show in terminal
266
+ * **$ dooby done** should tag the current item as *:done*
267
+ * Make it configurable through an external file
268
+ * Get rid of special chars (@, #, %) when item is used as git commit message
269
+ * if item is tagged as *:doing* check if there are others tagged with the same tag, if so, tag them with *:hold*
270
+ * Hide items tagged as *:hidden*
271
+ * Only show items not containing the specified word(s)
261
272
 
262
273
  Special Thanks
263
274
  --------------
@@ -270,7 +281,6 @@ Most of the the ideas to code **dooby** were based on the work of other programm
270
281
 
271
282
  Thanks all of you!
272
283
 
273
-
274
284
  Note on Patches/Pull Requests
275
285
  -----------------------------
276
286
 
@@ -285,4 +295,4 @@ Note on Patches/Pull Requests
285
295
  Copyright
286
296
  ---------
287
297
 
288
- Copyright (c) 2010 Rafael Magana. See LICENSE for details.
298
+ Copyright (c) 2010 Rafael Magana. See LICENSE for details.