todo-jsonl 0.1.9 → 0.1.10

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 +18 -14
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 889bafbe16e82bf4bc1d64a7cc4991a582693677c02a1a6ace65bdd04f20f4b6
4
- data.tar.gz: 67def741aa050ac753c55af39488712aa3aed696f17c28366020233a59673810
3
+ metadata.gz: 26e087f32b9e0ddb96664aaffcb83aab17a4cf31c75eb651bb1797fa6d7fba09
4
+ data.tar.gz: c298e6c64c3bd28f0d0806c6b12204e74bc7c89e6d32939a2763368cae11e17e
5
5
  SHA512:
6
- metadata.gz: 5de24eee9c08a01b1abfe1315bbc75444d0d7fa26e0f3c6c99f25911104ec5b3d428e4ae13c23cb3f7d6b931c6b059759b870b65af33ff795786676545813e2c
7
- data.tar.gz: 4b10d821af4c52d466f621cc77961551556f915f063032b5e7525c8f5d3fff84b838d1564eeabf899c1480e64235654d1ca669922552ddb53bc4be6941033aab
6
+ metadata.gz: 6221aaca3f2637bd59c35720f2383e9fb6ef1a59faf5604341da0d04148184e504a53bd0d45a18dcd3462141496a5c91bdc0c8bef896c559362ce0670cc1b231
7
+ data.tar.gz: 88c148df544f7bc2fb65a50becac172f9f216cbea27a15666add4eb05ae752834b5f5396d191778be7045f2c856034e11a5e38fb3ef210a570bed92aed75f611
@@ -2,7 +2,7 @@
2
2
 
3
3
  # todo.rb - todo list manager inspired by todo.txt using the jsonl format.
4
4
  #
5
- # Copyright (c) 2020 Gabor Bata
5
+ # Copyright (c) 2020-2021 Gabor Bata
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person
8
8
  # obtaining a copy of this software and associated documentation files
@@ -27,8 +27,6 @@
27
27
  require 'json'
28
28
  require 'date'
29
29
 
30
- DATE_FORMAT = '%Y-%m-%d'
31
-
32
30
  COLOR_CODES = {
33
31
  black: 30,
34
32
  red: 31,
@@ -64,19 +62,25 @@ COLORS = {
64
62
  'default' => :magenta
65
63
  }
66
64
 
67
- QUERIES = {
68
- ':active' => 'state=(new|started|blocked)',
69
- ':done' => 'state=done',
70
- ':blocked' => 'state=blocked',
71
- ':started' => 'state=started',
72
- ':new' => 'state=new',
73
- ':all' => 'state=\w+'
74
- }
75
-
76
65
  TODAY = DateTime.now
77
- DUE_DATE_DAYS = (0..6).map do |day| (TODAY.to_date + day).strftime('%A').downcase end
66
+ NEXT_7_DAYS = (0..6).map do |day| (TODAY.to_date + day) end
67
+ DATE_FORMAT = '%Y-%m-%d'
68
+ DUE_DATE_DAYS = NEXT_7_DAYS.map do |day| day.strftime('%A').downcase end
69
+ DUE_DATES_FOR_QUERIES = NEXT_7_DAYS.map do |day| day.strftime(DATE_FORMAT) end
78
70
  DUE_DATE_DAYS_SIMPLE = ['today', 'tomorrow']
79
71
 
72
+ QUERIES = {
73
+ ':active' => 'state=(new|started|blocked)',
74
+ ':done' => 'state=done',
75
+ ':blocked' => 'state=blocked',
76
+ ':started' => 'state=started',
77
+ ':new' => 'state=new',
78
+ ':all' => 'state=\w+',
79
+ ':today' => "due=#{DUE_DATES_FOR_QUERIES[0]}",
80
+ ':tomorrow' => "due=#{DUE_DATES_FOR_QUERIES[1]}",
81
+ ':next7days' => "due=(#{DUE_DATES_FOR_QUERIES.join('|')})"
82
+ }
83
+
80
84
  PRIORITY_FLAG = '*'
81
85
 
82
86
  TODO_FILE = "#{ENV['HOME']}/todo.jsonl"
@@ -209,7 +213,7 @@ def list(tasks = nil, patterns = nil)
209
213
  task_indent = [tasks.keys.max.to_s.size, 4].max
210
214
  patterns = patterns.nil? || patterns.empty? ? [QUERIES[':active']] : patterns
211
215
  tasks.each do |num, task|
212
- normalized_task = "state=#{task[:state]} #{task[:title]}"
216
+ normalized_task = "state=#{task[:state]} due=#{task[:due]} #{task[:title]}"
213
217
  match = true
214
218
  patterns.each do |pattern|
215
219
  match = false unless /#{QUERIES[pattern] || pattern}/ix.match(normalized_task)
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.9
4
+ version: 0.1.10
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-05 00:00:00.000000000 Z
11
+ date: 2021-01-27 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: