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.
- checksums.yaml +4 -4
- data/bin/todo.rb +26 -13
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ce5f15989aea79c3d9cea13d312faec53a31fbfc92593bdabaea225d9e9fb70
|
4
|
+
data.tar.gz: ffb39beeaa6f6a9b4e1e1c053c98e8e473d687d4cdde406e577b1339fece18a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71ac2951cad1bc62ccaf9aead3aece8b33c1a7139f5f21eee214b1994a94aacf67f61a1b3619db26f1cb539a30371f9a33bd9838e0de15b474a525a98ff3b733
|
7
|
+
data.tar.gz: 016e953216f6360811ba62ada07389ff8788258d03449db38dca10c730bdb90b5ceb30ec31768a387ac5f1db8077155e135fef1fc7ea50c137c5d33d8702fcaa
|
data/bin/todo.rb
CHANGED
@@ -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>
|
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(
|
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
|
-
|
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
|
-
|
302
|
+
raise action + ' command requires exactly one parameter' if args.length != 1
|
303
|
+
set_priority(args.first.to_i)
|
298
304
|
when 'due'
|
299
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
314
|
+
raise action + ' command requires exactly one parameter' if args.length != 1
|
315
|
+
delete(args.first.to_i)
|
306
316
|
when 'note'
|
307
|
-
|
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
|
-
|
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
|
-
|
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.
|
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-
|
11
|
+
date: 2020-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|