na 1.2.73 → 1.2.75

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.
data/Gemfile CHANGED
@@ -1,2 +1,26 @@
1
- source 'https://rubygems.org'
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "bump", "~> 0.10"
6
+ gem "bundler", "~> 2.2"
7
+ gem "rake", "~> 13.0"
8
+
9
+ gem "guard", "~> 2.16"
10
+ gem "guard-rspec", "~> 4.5"
11
+ gem "guard-rubocop", "~> 1.2"
12
+ gem "guard-yard", "~> 2.1"
13
+
14
+ gem "cli-test", "~> 1.0"
15
+ gem "fuubar", "~> 2.0"
16
+ gem "rspec", "~> 3.13"
17
+ gem "rubocop", ">= 1.50"
18
+ gem "rubocop-rake", ">= 0.6.0"
19
+ gem "rubocop-rspec", ">= 2.20.0"
20
+ gem "simplecov", "~> 0.9"
21
+
22
+ gem "github-markup", "~> 1.3"
23
+ gem "redcarpet", "~> 3.2"
24
+ gem "yard", "~> 0.9.5"
25
+
2
26
  gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- na (1.2.73)
4
+ na (1.2.75)
5
5
  chronic (~> 0.10, >= 0.10.2)
6
6
  gli (~> 2.21.0)
7
7
  mdless (~> 1.0, >= 1.0.32)
@@ -13,22 +13,96 @@ GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
15
  ast (2.4.2)
16
+ bump (0.10.0)
16
17
  chronic (0.10.2)
18
+ cli-test (1.0.0)
19
+ coderay (1.1.3)
20
+ diff-lcs (1.6.0)
21
+ docile (1.4.1)
22
+ ffi (1.17.1)
23
+ ffi (1.17.1-aarch64-linux-gnu)
24
+ ffi (1.17.1-aarch64-linux-musl)
25
+ ffi (1.17.1-arm-linux-gnu)
26
+ ffi (1.17.1-arm-linux-musl)
27
+ ffi (1.17.1-arm64-darwin)
28
+ ffi (1.17.1-x86-linux-gnu)
29
+ ffi (1.17.1-x86-linux-musl)
30
+ ffi (1.17.1-x86_64-darwin)
31
+ ffi (1.17.1-x86_64-linux-gnu)
32
+ ffi (1.17.1-x86_64-linux-musl)
33
+ formatador (1.1.0)
34
+ fuubar (2.5.1)
35
+ rspec-core (~> 3.0)
36
+ ruby-progressbar (~> 1.4)
37
+ github-markup (1.7.0)
17
38
  gli (2.21.5)
39
+ guard (2.19.1)
40
+ formatador (>= 0.2.4)
41
+ listen (>= 2.7, < 4.0)
42
+ logger (~> 1.6)
43
+ lumberjack (>= 1.0.12, < 2.0)
44
+ nenv (~> 0.1)
45
+ notiffany (~> 0.0)
46
+ ostruct (~> 0.6)
47
+ pry (>= 0.13.0)
48
+ shellany (~> 0.0)
49
+ thor (>= 0.18.1)
50
+ guard-compat (1.2.1)
51
+ guard-rspec (4.7.3)
52
+ guard (~> 2.1)
53
+ guard-compat (~> 1.1)
54
+ rspec (>= 2.99.0, < 4.0)
55
+ guard-rubocop (1.5.0)
56
+ guard (~> 2.0)
57
+ rubocop (< 2.0)
58
+ guard-yard (2.2.1)
59
+ guard (>= 1.1.0)
60
+ yard (>= 0.7.0)
18
61
  json (2.10.2)
19
62
  language_server-protocol (3.17.0.4)
20
63
  lint_roller (1.1.0)
64
+ listen (3.9.0)
65
+ rb-fsevent (~> 0.10, >= 0.10.3)
66
+ rb-inotify (~> 0.9, >= 0.9.10)
67
+ logger (1.6.6)
68
+ lumberjack (1.2.10)
21
69
  mdless (1.0.37)
22
- minitest (5.20.0)
70
+ method_source (1.1.0)
71
+ minitest (5.25.5)
72
+ nenv (0.3.0)
73
+ notiffany (0.1.3)
74
+ nenv (~> 0.1)
75
+ shellany (~> 0.0)
76
+ ostruct (0.6.1)
23
77
  parallel (1.26.3)
24
78
  parser (3.3.7.1)
25
79
  ast (~> 2.4.1)
26
80
  racc
81
+ pry (0.15.2)
82
+ coderay (~> 1.1)
83
+ method_source (~> 1.0)
27
84
  racc (1.8.1)
28
85
  rainbow (3.1.1)
29
- rake (0.9.6)
86
+ rake (13.2.1)
87
+ rb-fsevent (0.11.2)
88
+ rb-inotify (0.11.1)
89
+ ffi (~> 1.0)
30
90
  rdoc (4.3.0)
91
+ redcarpet (3.6.1)
31
92
  regexp_parser (2.10.0)
93
+ rspec (3.13.0)
94
+ rspec-core (~> 3.13.0)
95
+ rspec-expectations (~> 3.13.0)
96
+ rspec-mocks (~> 3.13.0)
97
+ rspec-core (3.13.3)
98
+ rspec-support (~> 3.13.0)
99
+ rspec-expectations (3.13.3)
100
+ diff-lcs (>= 1.2.0, < 2.0)
101
+ rspec-support (~> 3.13.0)
102
+ rspec-mocks (3.13.2)
103
+ diff-lcs (>= 1.2.0, < 2.0)
104
+ rspec-support (~> 3.13.0)
105
+ rspec-support (3.13.2)
32
106
  rubocop (1.74.0)
33
107
  json (~> 2.3)
34
108
  language_server-protocol (~> 3.17.0.2)
@@ -40,35 +114,78 @@ GEM
40
114
  rubocop-ast (>= 1.38.0, < 2.0)
41
115
  ruby-progressbar (~> 1.7)
42
116
  unicode-display_width (>= 2.4.0, < 4.0)
43
- rubocop-ast (1.38.1)
117
+ rubocop-ast (1.39.0)
44
118
  parser (>= 3.3.1.0)
119
+ rubocop-rake (0.7.1)
120
+ lint_roller (~> 1.1)
121
+ rubocop (>= 1.72.1)
122
+ rubocop-rspec (3.5.0)
123
+ lint_roller (~> 1.1)
124
+ rubocop (~> 1.72, >= 1.72.1)
45
125
  ruby-progressbar (1.13.0)
126
+ shellany (0.0.1)
127
+ simplecov (0.22.0)
128
+ docile (~> 1.1)
129
+ simplecov-html (~> 0.11)
130
+ simplecov_json_formatter (~> 0.1)
131
+ simplecov-html (0.13.1)
132
+ simplecov_json_formatter (0.1.4)
133
+ strings-ansi (0.2.0)
134
+ thor (1.3.2)
46
135
  tty-cursor (0.7.1)
136
+ tty-progressbar (0.18.3)
137
+ strings-ansi (~> 0.2)
138
+ tty-cursor (~> 0.7)
139
+ tty-screen (~> 0.8)
140
+ unicode-display_width (>= 1.6, < 3.0)
47
141
  tty-reader (0.9.0)
48
142
  tty-cursor (~> 0.7)
49
143
  tty-screen (~> 0.8)
50
144
  wisper (~> 2.0)
51
145
  tty-screen (0.8.2)
146
+ tty-spinner (0.9.3)
147
+ tty-cursor (~> 0.7)
52
148
  tty-which (0.5.0)
53
- unicode-display_width (3.1.4)
54
- unicode-emoji (~> 4.0, >= 4.0.4)
55
- unicode-emoji (4.0.4)
149
+ unicode-display_width (2.6.0)
56
150
  wisper (2.0.1)
57
- yard (0.9.34)
151
+ yard (0.9.37)
58
152
 
59
153
  PLATFORMS
60
- arm64-darwin-20
61
- arm64-darwin-21
62
- arm64-darwin-24
63
- x86_64-darwin-20
154
+ aarch64-linux-gnu
155
+ aarch64-linux-musl
156
+ arm-linux-gnu
157
+ arm-linux-musl
158
+ arm64-darwin
159
+ ruby
160
+ x86-linux-gnu
161
+ x86-linux-musl
162
+ x86_64-darwin
163
+ x86_64-linux-gnu
164
+ x86_64-linux-musl
64
165
 
65
166
  DEPENDENCIES
167
+ bump (~> 0.10)
168
+ bundler (~> 2.2)
169
+ cli-test (~> 1.0)
170
+ fuubar (~> 2.0)
171
+ github-markup (~> 1.3)
172
+ guard (~> 2.16)
173
+ guard-rspec (~> 4.5)
174
+ guard-rubocop (~> 1.2)
175
+ guard-yard (~> 2.1)
66
176
  minitest (~> 5.14)
67
177
  na!
68
- rake (~> 0.9.2)
178
+ rake (~> 13.0)
69
179
  rdoc (~> 4.3)
70
- rubocop (~> 1.74)
71
- yard (~> 0.9, >= 0.9.26)
180
+ redcarpet (~> 3.2)
181
+ rspec (~> 3.13)
182
+ rubocop (>= 1.50)
183
+ rubocop-rake (>= 0.6.0)
184
+ rubocop-rspec (>= 2.20.0)
185
+ simplecov (~> 0.9)
186
+ tty-progressbar (~> 0.18, >= 0.18.3)
187
+ tty-spinner (~> 0.9, >= 0.9.0)
188
+ yard (~> 0.9.5)
72
189
 
73
190
  BUNDLED WITH
74
191
  2.6.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.2.73.
12
+ The current version of `na` is 1.2.75.
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
 
@@ -76,7 +76,7 @@ SYNOPSIS
76
76
  na [global options] command [command options] [arguments...]
77
77
 
78
78
  VERSION
79
- 1.2.73
79
+ 1.2.75
80
80
 
81
81
  GLOBAL OPTIONS
82
82
  -a, --add - Add a next action (deprecated, for backwards compatibility)
data/Rakefile CHANGED
@@ -1,43 +1,70 @@
1
- require 'rake/clean'
2
- require 'rubygems'
3
- require 'rubygems/package_task'
4
- require 'rdoc/task'
5
- require 'yard'
1
+ require "rake/clean"
2
+ require "rubygems"
3
+ require "rubygems/package_task"
4
+ require "rdoc/task"
5
+ require "bump/tasks"
6
+ require "bundler/gem_tasks"
7
+ require "rspec/core/rake_task"
8
+ require "rubocop/rake_task"
9
+ require "yard"
10
+ require "tty-spinner"
11
+ require "English"
6
12
 
7
13
  YARD::Rake::YardocTask.new do |t|
8
- t.files = ['lib/na/*.rb']
9
- t.options = ['--markup-provider=redcarpet', '--markup=markdown', '--no-private', '-p', 'yard_templates']
10
- # t.stats_options = ['--list-undoc']
14
+ t.files = ["lib/na/*.rb"]
15
+ t.options = ["--markup-provider=redcarpet", "--markup=markdown", "--no-private", "-p", "yard_templates"]
16
+ t.stats_options = ["--list-undoc"] # Uncommented this line for stats options
17
+ end
18
+
19
+ ## Docker error class
20
+ class DockerError < StandardError
21
+ def initialize(msg = nil)
22
+ msg = msg ? "Docker error: #{msg}" : "Docker error"
23
+ super(msg)
24
+ end
25
+ end
26
+
27
+ task default: %i[test yard]
28
+
29
+ desc "Run test suite"
30
+ task test: %i[rubocop spec]
31
+
32
+ RSpec::Core::RakeTask.new do |t|
33
+ t.rspec_opts = "--format documentation"
34
+ end
35
+
36
+ RuboCop::RakeTask.new do |t|
37
+ t.formatters = ["progress"]
11
38
  end
12
39
 
13
40
  task :doc, [*Rake.application[:yard].arg_names] => [:yard]
14
41
 
15
42
  Rake::RDocTask.new do |rd|
16
43
  rd.main = "README.rdoc"
17
- rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
18
- rd.title = 'na'
44
+ rd.rdoc_files.include("README.rdoc", "lib/**/*.rb", "bin/**/*")
45
+ rd.title = "na"
19
46
  end
20
47
 
21
- spec = eval(File.read('na.gemspec'))
48
+ spec = eval(File.read("na.gemspec"))
22
49
 
23
50
  Gem::PackageTask.new(spec) do |pkg|
24
51
  end
25
- require 'rake/testtask'
52
+ require "rake/testtask"
26
53
  Rake::TestTask.new do |t|
27
54
  t.libs << "test"
28
- t.test_files = FileList['test/*_test.rb']
55
+ t.test_files = FileList["test/*_test.rb"]
29
56
  end
30
57
 
31
- desc 'Install current gem in all versions of asdf-controlled ruby'
58
+ desc "Install current gem in all versions of asdf-controlled ruby"
32
59
  task :install do
33
- Rake::Task['clobber'].invoke
34
- Rake::Task['package'].invoke
35
- Dir.chdir 'pkg'
36
- file = Dir.glob('*.gem').last
60
+ Rake::Task["clobber"].invoke
61
+ Rake::Task["package"].invoke
62
+ Dir.chdir "pkg"
63
+ file = Dir.glob("*.gem").last
37
64
 
38
65
  current_ruby = `asdf current ruby`.match(/(\d.\d+.\d+)/)[1]
39
66
 
40
- `asdf list ruby`.split.map { |ruby| ruby.strip.sub(/^*/, '') }.each do |ruby|
67
+ `asdf list ruby`.split.map { |ruby| ruby.strip.sub(/^*/, "") }.each do |ruby|
41
68
  `asdf shell ruby #{ruby}`
42
69
  puts `gem install #{file}`
43
70
  end
@@ -45,10 +72,10 @@ task :install do
45
72
  `asdf shell ruby #{current_ruby}`
46
73
  end
47
74
 
48
- desc 'Development version check'
75
+ desc "Development version check"
49
76
  task :ver do
50
77
  gver = `git ver`
51
- cver = IO.read(File.join(File.dirname(__FILE__), 'CHANGELOG.md')).match(/^#+ (\d+\.\d+\.\d+(\w+)?)/)[1]
78
+ cver = IO.read(File.join(File.dirname(__FILE__), "CHANGELOG.md")).match(/^#+ (\d+\.\d+\.\d+(\w+)?)/)[1]
52
79
  res = `grep VERSION lib/na/version.rb`
53
80
  version = res.match(/VERSION *= *['"](\d+\.\d+\.\d+(\w+)?)/)[1]
54
81
  puts "git tag: #{gver}"
@@ -56,22 +83,22 @@ task :ver do
56
83
  puts "changelog: #{cver}"
57
84
  end
58
85
 
59
- desc 'Changelog version check'
86
+ desc "Changelog version check"
60
87
  task :cver do
61
- puts IO.read(File.join(File.dirname(__FILE__), 'CHANGELOG.md')).match(/^#+ (\d+\.\d+\.\d+(\w+)?)/)[1]
88
+ puts IO.read(File.join(File.dirname(__FILE__), "CHANGELOG.md")).match(/^#+ (\d+\.\d+\.\d+(\w+)?)/)[1]
62
89
  end
63
90
 
64
- desc 'Bump incremental version number'
91
+ desc "Bump incremental version number"
65
92
  task :bump, :type do |_, args|
66
- args.with_defaults(type: 'inc')
67
- version_file = 'lib/na/version.rb'
93
+ args.with_defaults(type: "inc")
94
+ version_file = "lib/na/version.rb"
68
95
  content = IO.read(version_file)
69
96
  content.sub!(/VERSION = '(?<major>\d+)\.(?<minor>\d+)\.(?<inc>\d+)(?<pre>\S+)?'/) do
70
97
  m = Regexp.last_match
71
- major = m['major'].to_i
72
- minor = m['minor'].to_i
73
- inc = m['inc'].to_i
74
- pre = m['pre']
98
+ major = m["major"].to_i
99
+ minor = m["minor"].to_i
100
+ inc = m["inc"].to_i
101
+ pre = m["pre"]
75
102
 
76
103
  case args[:type]
77
104
  when /^maj/
@@ -88,7 +115,95 @@ task :bump, :type do |_, args|
88
115
  $stdout.puts "At version #{major}.#{minor}.#{inc}#{pre}"
89
116
  "VERSION = '#{major}.#{minor}.#{inc}#{pre}'"
90
117
  end
91
- File.open(version_file, 'w+') { |f| f.puts content }
118
+ File.open(version_file, "w+") { |f| f.puts content }
119
+ end
120
+
121
+ # task default: %i[test clobber package]
122
+
123
+ desc "Remove packages"
124
+ task :clobber_packages do
125
+ FileUtils.rm_f "pkg/*"
126
+ end
127
+ # Make a prerequisite of the preexisting clobber task
128
+ desc "Clobber files"
129
+ task clobber: :clobber_packages
130
+
131
+ desc "Get Script Version"
132
+ task :sver do
133
+ res = `grep VERSION lib/na/version.rb`
134
+ version = res.match(/VERSION *= *['"](\d+\.\d+\.\d+(\w+)?)/)[1]
135
+ print version
136
+ end
137
+
138
+ desc "Run tests in Docker"
139
+ task :dockertest, :version, :login, :attempt do |_, args|
140
+ args.with_defaults(version: "all", login: false, attempt: 1)
141
+ `open -a Docker`
142
+
143
+ Rake::Task["clobber"].reenable
144
+ Rake::Task["clobber"].invoke
145
+ Rake::Task["build"].reenable
146
+ Rake::Task["build"].invoke
147
+
148
+ case args[:version]
149
+ when /^a/
150
+ %w[6 7 3].each do |v|
151
+ Rake::Task["dockertest"].reenable
152
+ Rake::Task["dockertest"].invoke(v, false)
153
+ end
154
+ Process.exit 0
155
+ when /^3\.?3/
156
+ img = "natest33"
157
+ file = "docker/Dockerfile-3.3"
158
+ when /^3/
159
+ version = "3.0"
160
+ img = "natest3"
161
+ file = "docker/Dockerfile-3.0"
162
+ when /6$/
163
+ version = "2.6"
164
+ img = "natest26"
165
+ file = "docker/Dockerfile-2.6"
166
+ when /(^2|7$)/
167
+ version = "2.7"
168
+ img = "natest27"
169
+ file = "docker/Dockerfile-2.7"
170
+ else
171
+ version = "3.0.1"
172
+ img = "natest"
173
+ file = "docker/Dockerfile"
174
+ end
175
+
176
+ puts `docker build . --file #{file} -t #{img}`
177
+
178
+ raise DockerError, "Error building docker image" unless $CHILD_STATUS.success?
179
+
180
+ dirs = {
181
+ File.dirname(__FILE__) => "/na",
182
+ File.expand_path("~/.config") => "/root/.config"
183
+ }
184
+ dir_args = dirs.map { |s, d| " -v '#{s}:#{d}'" }.join(" ")
185
+ exec "docker run #{dir_args} -it #{img} /bin/bash -l" if args[:login]
186
+
187
+ spinner = TTY::Spinner.new("[:spinner] Running tests (#{version})...", hide_cursor: true)
188
+
189
+ spinner.auto_spin
190
+ `docker run --rm #{dir_args} -it #{img}`
191
+ # raise DockerError.new("Error running docker image") unless $CHILD_STATUS.success?
192
+
193
+ # commit = puts `bash -c "docker commit $(docker ps -a|grep #{img}|awk '{print $1}'|head -n 1) #{img}"`.strip
194
+ $CHILD_STATUS.success? ? spinner.success : spinner.error
195
+ spinner.stop
196
+
197
+ # puts res
198
+ # puts commit&.empty? ? "Error commiting Docker tag #{img}" : "Committed Docker tag #{img}"
199
+ rescue DockerError
200
+ raise StandardError.new("Docker not responding") if args[:attempt] > 3
201
+
202
+ `open -a Docker`
203
+ sleep 3
204
+ Rake::Task["dockertest"].reenable
205
+ Rake::Task["dockertest"].invoke(args[:version], args[:login], args[:attempt] + 1)
92
206
  end
93
207
 
94
- task default: %i[test clobber package]
208
+ desc "alias for build"
209
+ task package: :build
data/bin/commands/add.rb CHANGED
@@ -59,7 +59,7 @@ class App
59
59
  reader = TTY::Reader.new
60
60
  append = options[:at] ? options[:at] =~ /^[ae]/i : global_options[:add_at] =~ /^[ae]/
61
61
 
62
- priority = options[:priority]
62
+ priority = options[:priority].to_s || "0"
63
63
  if priority =~ /^[1-5]$/
64
64
  priority = priority.to_i
65
65
  elsif priority =~ /^[hml]$/