na 1.1.15 → 1.1.16
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/CHANGELOG.md +8 -0
- data/Gemfile.lock +3 -1
- data/README.md +1 -1
- data/bin/na +27 -1
- data/lib/na/action.rb +48 -20
- data/lib/na/version.rb +1 -1
- data/lib/na.rb +2 -0
- data/na.gemspec +1 -0
- data/src/README.md +1 -1
- metadata +21 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53c4f2d9b3198892662e241d57c5d5bea699736112e91bba9551b7a393b57e06
|
4
|
+
data.tar.gz: 8bfd9f4bfbdd36bd0547a11e7ec88a43873f21aa1a3b9069020884a866646bdd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33855d0a87b71590afb538be498addfa793a13f3a6865b6c9ccfc1691ded319c98df726f4960f95d70202d38106ec5a1c728c29d40b3e477b597f873d289b3fc
|
7
|
+
data.tar.gz: ce9ac4455e0018b2ff8df66d93c938779f831b8db722551a525e8bf49c1240b51038420d46a60d1e76c7d4ccd0d1964eadcfd5d28020667fd2c5ab78e9f3f1cc
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
na (1.1.
|
4
|
+
na (1.1.16)
|
5
|
+
chronic (~> 0.10, >= 0.10.2)
|
5
6
|
gli (~> 2.21.0)
|
6
7
|
tty-reader (~> 0.9, >= 0.9.0)
|
7
8
|
tty-screen (~> 0.8, >= 0.8.1)
|
@@ -10,6 +11,7 @@ PATH
|
|
10
11
|
GEM
|
11
12
|
remote: https://rubygems.org/
|
12
13
|
specs:
|
14
|
+
chronic (0.10.2)
|
13
15
|
gli (2.21.0)
|
14
16
|
minitest (5.16.3)
|
15
17
|
rake (0.9.6)
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
_If you're one of the rare people like me who find this useful, feel free to
|
10
10
|
[buy me some coffee][donate]._
|
11
11
|
|
12
|
-
The current version of `na` is 1.1.
|
12
|
+
The current version of `na` is 1.1.16
|
13
13
|
.
|
14
14
|
|
15
15
|
`na` ("next action") is a command line tool designed to make it easy to see what your next actions are for any project, right from the command line. It works with TaskPaper-formatted files (but any plain text format will do), looking for `@na` tags (or whatever you specify) in todo files in your current folder.
|
data/bin/na
CHANGED
@@ -249,6 +249,10 @@ class App
|
|
249
249
|
c.arg_name 'DEPTH'
|
250
250
|
c.flag %i[d depth], type: :integer, must_match: /^\d+$/
|
251
251
|
|
252
|
+
c.desc 'Show actions from a specific todo file in history'
|
253
|
+
c.arg_name 'TODO_PATH'
|
254
|
+
c.flag %i[in]
|
255
|
+
|
252
256
|
c.desc 'Show actions from a specific project'
|
253
257
|
c.arg_name 'PROJECT[/SUBPROJECT]'
|
254
258
|
c.flag %i[proj project]
|
@@ -281,7 +285,16 @@ class App
|
|
281
285
|
end
|
282
286
|
end
|
283
287
|
|
288
|
+
todo = nil
|
289
|
+
if options[:in]
|
290
|
+
todo = [{
|
291
|
+
token: options[:in],
|
292
|
+
required: true
|
293
|
+
}]
|
294
|
+
end
|
295
|
+
|
284
296
|
files, actions = NA.parse_actions(depth: depth,
|
297
|
+
query: todo,
|
285
298
|
search: tokens,
|
286
299
|
negate: options[:invert],
|
287
300
|
regex: options[:regex],
|
@@ -312,6 +325,10 @@ class App
|
|
312
325
|
c.default_value 1
|
313
326
|
c.flag %i[d depth], type: :integer, must_match: /^\d+$/
|
314
327
|
|
328
|
+
c.desc 'Show actions from a specific todo file in history'
|
329
|
+
c.arg_name 'TODO_PATH'
|
330
|
+
c.flag %i[in]
|
331
|
+
|
315
332
|
c.desc 'Show actions from a specific project'
|
316
333
|
c.arg_name 'PROJECT[/SUBPROJECT]'
|
317
334
|
c.flag %i[proj project]
|
@@ -329,7 +346,7 @@ class App
|
|
329
346
|
tags = []
|
330
347
|
args.join(',').split(/ *, */).each do |arg|
|
331
348
|
# TODO: <> comparisons do nothing right now
|
332
|
-
m = arg.match(/^(?<req>[+\-!])?(?<tag>[^ =<>*$\^]+)(?:(?<op>[=<>*$\^]+)(?<val
|
349
|
+
m = arg.match(/^(?<req>[+\-!])?(?<tag>[^ =<>*$\^]+)(?:(?<op>[=<>*$\^]+)(?<val>.*?))?$/)
|
333
350
|
tags.push({
|
334
351
|
tag: m['tag'],
|
335
352
|
comp: m['op'],
|
@@ -339,7 +356,16 @@ class App
|
|
339
356
|
})
|
340
357
|
end
|
341
358
|
|
359
|
+
todo = nil
|
360
|
+
if options[:in]
|
361
|
+
todo = [{
|
362
|
+
token: options[:in],
|
363
|
+
required: true
|
364
|
+
}]
|
365
|
+
end
|
366
|
+
|
342
367
|
files, actions = NA.parse_actions(depth: depth,
|
368
|
+
query: todo,
|
343
369
|
tag: tags,
|
344
370
|
negate: options[:invert],
|
345
371
|
project: options[:project],
|
data/lib/na/action.rb
CHANGED
@@ -136,26 +136,54 @@ module NA
|
|
136
136
|
|
137
137
|
return false if tag_val.nil?
|
138
138
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
139
|
+
begin
|
140
|
+
tag_date = Time.parse(tag_val)
|
141
|
+
date = Chronic.parse(val)
|
142
|
+
|
143
|
+
puts "Comparing #{tag_date} #{tag[:comp]} #{date}" if NA.verbose
|
144
|
+
|
145
|
+
case tag[:comp]
|
146
|
+
when /^>$/
|
147
|
+
tag_date > date
|
148
|
+
when /^<$/
|
149
|
+
tag_date < date
|
150
|
+
when /^<=$/
|
151
|
+
tag_date <= date
|
152
|
+
when /^>=$/
|
153
|
+
tag_date >= date
|
154
|
+
when /^==?$/
|
155
|
+
tag_date == date
|
156
|
+
when /^\$=$/
|
157
|
+
tag_val =~ /#{val.wildcard_to_rx}/i
|
158
|
+
when /^\*=$/
|
159
|
+
tag_val =~ /#{val.wildcard_to_rx}/i
|
160
|
+
when /^\^=$/
|
161
|
+
tag_val =~ /^#{val.wildcard_to_rx}/
|
162
|
+
else
|
163
|
+
false
|
164
|
+
end
|
165
|
+
rescue
|
166
|
+
case tag[:comp]
|
167
|
+
when /^>$/
|
168
|
+
tag_val.to_f > val.to_f
|
169
|
+
when /^<$/
|
170
|
+
tag_val.to_f < val.to_f
|
171
|
+
when /^<=$/
|
172
|
+
tag_val.to_f <= val.to_f
|
173
|
+
when /^>=$/
|
174
|
+
tag_val.to_f >= val.to_f
|
175
|
+
when /^==?$/
|
176
|
+
tag_val =~ /^#{val.wildcard_to_rx}$/
|
177
|
+
when /^\$=$/
|
178
|
+
tag_val =~ /#{val.wildcard_to_rx}$/i
|
179
|
+
when /^\*=$/
|
180
|
+
tag_val =~ /#{val.wildcard_to_rx}/i
|
181
|
+
when /^\^=$/
|
182
|
+
tag_val =~ /^#{val.wildcard_to_rx}/
|
183
|
+
else
|
184
|
+
false
|
185
|
+
end
|
186
|
+
end
|
159
187
|
end
|
160
188
|
|
161
189
|
def scan_tags
|
data/lib/na/version.rb
CHANGED
data/lib/na.rb
CHANGED
data/na.gemspec
CHANGED
@@ -30,4 +30,5 @@ spec = Gem::Specification.new do |s|
|
|
30
30
|
s.add_runtime_dependency('tty-reader', '~> 0.9', '>= 0.9.0')
|
31
31
|
s.add_runtime_dependency('tty-screen', '~> 0.8', '>= 0.8.1')
|
32
32
|
s.add_runtime_dependency('tty-which', '~> 0.5', '>= 0.5.0')
|
33
|
+
s.add_runtime_dependency('chronic', '~> 0.10', '>= 0.10.2')
|
33
34
|
end
|
data/src/README.md
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
_If you're one of the rare people like me who find this useful, feel free to
|
10
10
|
[buy me some coffee][donate]._
|
11
11
|
|
12
|
-
The current version of `na` is <!--VER-->1.1.
|
12
|
+
The current version of `na` is <!--VER-->1.1.15<!--END VER-->.
|
13
13
|
|
14
14
|
`na` ("next action") is a command line tool designed to make it easy to see what your next actions are for any project, right from the command line. It works with TaskPaper-formatted files (but any plain text format will do), looking for `@na` tags (or whatever you specify) in todo files in your current folder.
|
15
15
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: na
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brett Terpstra
|
@@ -146,6 +146,26 @@ dependencies:
|
|
146
146
|
- - ">="
|
147
147
|
- !ruby/object:Gem::Version
|
148
148
|
version: 0.5.0
|
149
|
+
- !ruby/object:Gem::Dependency
|
150
|
+
name: chronic
|
151
|
+
requirement: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - "~>"
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0.10'
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: 0.10.2
|
159
|
+
type: :runtime
|
160
|
+
prerelease: false
|
161
|
+
version_requirements: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - "~>"
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0.10'
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: 0.10.2
|
149
169
|
description: A tool for managing a TaskPaper file of project todos for the current
|
150
170
|
directory. Easily create "next actions" to come back to, add tags and priorities,
|
151
171
|
and notes. Add prompt hooks to display your next actions automatically when cd'ing
|