todo-jsonl 0.1.3 → 0.1.8

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. checksums.yaml +4 -4
  2. data/bin/todo.rb +26 -13
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d377d1c1d58686c97a60bec10e9267eda9bb05204cacfaa9cb63af9d84dd6ab4
4
- data.tar.gz: dd458140d3c0267c6e3f5508823eb28cd3e99b719da41ba7e4721005a5e1e896
3
+ metadata.gz: 1ce5f15989aea79c3d9cea13d312faec53a31fbfc92593bdabaea225d9e9fb70
4
+ data.tar.gz: ffb39beeaa6f6a9b4e1e1c053c98e8e473d687d4cdde406e577b1339fece18a4
5
5
  SHA512:
6
- metadata.gz: 2d65cc701711b1fff15a3e630554ddf0e48d0455717d24a179ec504d17b7d0b690736e4c58a8cff614d1813782350d64cba7411b38f8c29fcb1c52162481b73e
7
- data.tar.gz: 40132a85f1a25e96a44c1ff45aa98a2a4602562cefcad8b7870b0f87fa9da3260b8c4f554ec1eb9471e920411655174df1f447e31641b5c8794d69c5896cebb3
6
+ metadata.gz: 71ac2951cad1bc62ccaf9aead3aece8b33c1a7139f5f21eee214b1994a94aacf67f61a1b3619db26f1cb539a30371f9a33bd9838e0de15b474a525a98ff3b733
7
+ data.tar.gz: 016e953216f6360811ba62ada07389ff8788258d03449db38dca10c730bdb90b5ceb30ec31768a387ac5f1db8077155e135fef1fc7ea50c137c5d33d8702fcaa
@@ -93,14 +93,15 @@ def usage
93
93
  * start <tasknumber> mark task as started
94
94
  * done <tasknumber> mark task as completed
95
95
  * block <tasknumber> mark task as blocked
96
+ * reset <tasknumber> reset task to new state
96
97
  * prio <tasknumber> toggle high priority flag
97
- * due <tasknumber> <date> set due date
98
+ * due <tasknumber> <date> set due date (in YYYY-MM-DD format)
98
99
 
99
100
  * append <tasknumber> <text> append text to task title
100
101
  * rename <tasknumber> <text> rename task
101
102
  * del <tasknumber> delete task
102
103
  * note <tasknumber> <text> add note to task
103
- * delnote <tasknumber> <text> delete all notes from task
104
+ * delnote <tasknumber> delete all notes from task
104
105
 
105
106
  * list <regex> [regex...] list tasks (only active tasks by default)
106
107
  * show <tasknumber> show all task details
@@ -203,6 +204,7 @@ end
203
204
  def list(tasks = nil, patterns = nil)
204
205
  items = {}
205
206
  tasks = tasks || load_tasks
207
+ task_indent = [tasks.keys.max.to_s.size, 4].max
206
208
  patterns = patterns.nil? || patterns.empty? ? [QUERIES[':active']] : patterns
207
209
  tasks.each do |num, task|
208
210
  normalized_task = "state=#{task[:state]} #{task[:title]}"
@@ -213,7 +215,7 @@ def list(tasks = nil, patterns = nil)
213
215
  items[num] = task if match
214
216
  end
215
217
  items = items.sort_by do |num, task|
216
- [task[:priority] ? 0 : 1, ORDER[task[:state] || 'default'], num]
218
+ [task[:priority] && task[:state] != 'done' ? 0 : 1, ORDER[task[:state] || 'default'], task[:due] || 'n/a', num]
217
219
  end
218
220
  items.each do |num, task|
219
221
  state = task[:state] || 'default'
@@ -233,7 +235,7 @@ def list(tasks = nil, patterns = nil)
233
235
  end
234
236
  due_date = ' ' + due_date
235
237
  end
236
- puts "#{num.to_s.rjust(4, ' ')}:#{priority_flag}#{display_state} #{title}#{due_date}"
238
+ puts "#{num.to_s.rjust(task_indent, ' ')}:#{priority_flag}#{display_state} #{title}#{due_date}"
237
239
  end
238
240
  puts 'No todos found' if items.empty?
239
241
  end
@@ -286,31 +288,42 @@ def read(arguments)
286
288
  args = arguments[1..-1] || []
287
289
  case action
288
290
  when 'add'
289
- add(args.join(' ')) unless args.nil? || args.empty?
291
+ raise action + ' command requires at least one parameter' if args.nil? || args.empty?
292
+ add(args.join(' '))
290
293
  when 'start'
291
294
  args.length == 1 ? change_state(args.first.to_i, 'started') : list(nil, [':started'])
292
295
  when 'done'
293
296
  args.length == 1 ? change_state(args.first.to_i, 'done') : list(nil, [':done'])
294
297
  when 'block'
295
298
  args.length == 1 ? change_state(args.first.to_i, 'blocked') : list(nil, [':blocked'])
299
+ when 'reset'
300
+ args.length == 1 ? change_state(args.first.to_i, 'new') : list(nil, [':new'])
296
301
  when 'prio'
297
- set_priority(args.first.to_i) if args.length == 1
302
+ raise action + ' command requires exactly one parameter' if args.length != 1
303
+ set_priority(args.first.to_i)
298
304
  when 'due'
299
- due_date(args.first.to_i, (args[1..-1] || []).join(' ')) unless args.length < 1
305
+ raise action + ' command requires at least one parameter' if args.length < 1
306
+ due_date(args.first.to_i, (args[1..-1] || []).join(' '))
300
307
  when 'append'
301
- append(args.first.to_i, args[1..-1].join(' ')) unless args.length < 2
308
+ raise action + ' command requires at least two parameters' if args.length < 2
309
+ append(args.first.to_i, args[1..-1].join(' '))
302
310
  when 'rename'
303
- rename(args.first.to_i, args[1..-1].join(' ')) unless args.length < 2
311
+ raise action + ' command requires at least two parameters' if args.length < 2
312
+ rename(args.first.to_i, args[1..-1].join(' '))
304
313
  when 'del'
305
- delete(args.first.to_i) if args.length == 1
314
+ raise action + ' command requires exactly one parameter' if args.length != 1
315
+ delete(args.first.to_i)
306
316
  when 'note'
307
- add_note(args.first.to_i, args[1..-1].join(' ')) unless args.length < 2
317
+ raise action + ' command requires at least two parameters' if args.length < 2
318
+ add_note(args.first.to_i, args[1..-1].join(' '))
308
319
  when 'delnote'
309
- delete_note(args.first.to_i) if args.length == 1
320
+ raise action + ' command requires exactly one parameter' if args.length != 1
321
+ delete_note(args.first.to_i)
310
322
  when 'list'
311
323
  list(nil, args)
312
324
  when 'show'
313
- show(args.first.to_i) if args.length == 1
325
+ raise action + ' command requires exactly one parameter' if args.length != 1
326
+ show(args.first.to_i)
314
327
  when 'help'
315
328
  puts usage
316
329
  when 'repl'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: todo-jsonl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabor Bata
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-02 00:00:00.000000000 Z
11
+ date: 2020-10-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: