na 1.2.79 → 1.2.81
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/.rubocop.yml +8 -2
- data/.rubocop_todo.yml +33 -538
- data/CHANGELOG.md +55 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +27 -10
- data/README.md +47 -6
- data/Rakefile +6 -0
- data/bin/commands/next.rb +4 -0
- data/bin/commands/scan.rb +84 -0
- data/bin/commands/update.rb +1 -1
- data/bin/na +18 -12
- data/lib/na/action.rb +181 -83
- data/lib/na/actions.rb +91 -66
- data/lib/na/array.rb +11 -7
- data/lib/na/benchmark.rb +57 -0
- data/lib/na/colors.rb +113 -92
- data/lib/na/editor.rb +22 -22
- data/lib/na/hash.rb +32 -9
- data/lib/na/help_monkey_patch.rb +9 -1
- data/lib/na/next_action.rb +327 -248
- data/lib/na/pager.rb +60 -32
- data/lib/na/project.rb +14 -1
- data/lib/na/prompt.rb +25 -3
- data/lib/na/string.rb +91 -130
- data/lib/na/theme.rb +47 -39
- data/lib/na/todo.rb +182 -145
- data/lib/na/version.rb +3 -1
- data/lib/na.rb +4 -1
- data/na.gemspec +4 -2
- data/scripts/generate-fish-completions.rb +18 -21
- data/src/_README.md +14 -4
- data/test_performance.rb +78 -0
- metadata +55 -24
data/test_performance.rb
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# Simple performance test script that doesn't require bundler
|
|
5
|
+
require_relative 'lib/na/benchmark'
|
|
6
|
+
|
|
7
|
+
# Mock the required dependencies
|
|
8
|
+
module NA
|
|
9
|
+
module Color
|
|
10
|
+
def self.template(input)
|
|
11
|
+
input.to_s # Simple mock
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
module Theme
|
|
16
|
+
def self.load_theme
|
|
17
|
+
{
|
|
18
|
+
parent: '{c}',
|
|
19
|
+
bracket: '{dc}',
|
|
20
|
+
parent_divider: '{xw}/',
|
|
21
|
+
action: '{bg}',
|
|
22
|
+
project: '{xbk}',
|
|
23
|
+
templates: {
|
|
24
|
+
output: '%parent%action',
|
|
25
|
+
default: '%parent%action'
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.theme
|
|
32
|
+
@theme ||= Theme.load_theme
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.notify(msg, debug: false)
|
|
36
|
+
puts msg if debug
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Initialize benchmark
|
|
41
|
+
NA::Benchmark.init
|
|
42
|
+
|
|
43
|
+
# Test the optimizations
|
|
44
|
+
puts 'Testing performance optimizations...'
|
|
45
|
+
|
|
46
|
+
# Test 1: Theme caching
|
|
47
|
+
NA::Benchmark.measure('Theme loading (first time)') do
|
|
48
|
+
NA::Theme.load_theme
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
NA::Benchmark.measure('Theme loading (cached)') do
|
|
52
|
+
NA.theme
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Test 2: Color template caching
|
|
56
|
+
NA::Benchmark.measure('Color template (first time)') do
|
|
57
|
+
NA::Color.template('{bg}Test action{x}')
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
NA::Benchmark.measure('Color template (cached)') do
|
|
61
|
+
NA::Color.template('{bg}Test action{x}')
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Test 3: Multiple operations
|
|
65
|
+
NA::Benchmark.measure('Multiple theme calls') do
|
|
66
|
+
100.times do
|
|
67
|
+
NA.theme
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
NA::Benchmark.measure('Multiple color templates') do
|
|
72
|
+
100.times do
|
|
73
|
+
NA::Color.template("{bg}Action {c}#{rand(1000)}{x}")
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Report results
|
|
78
|
+
NA::Benchmark.report
|
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.2.
|
|
4
|
+
version: 1.2.81
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brett Terpstra
|
|
@@ -57,6 +57,20 @@ dependencies:
|
|
|
57
57
|
- - ">="
|
|
58
58
|
- !ruby/object:Gem::Version
|
|
59
59
|
version: 0.10.2
|
|
60
|
+
- !ruby/object:Gem::Dependency
|
|
61
|
+
name: git
|
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
|
63
|
+
requirements:
|
|
64
|
+
- - "~>"
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: 3.0.0
|
|
67
|
+
type: :runtime
|
|
68
|
+
prerelease: false
|
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
70
|
+
requirements:
|
|
71
|
+
- - "~>"
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
version: 3.0.0
|
|
60
74
|
- !ruby/object:Gem::Dependency
|
|
61
75
|
name: gli
|
|
62
76
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -91,6 +105,26 @@ dependencies:
|
|
|
91
105
|
- - ">="
|
|
92
106
|
- !ruby/object:Gem::Version
|
|
93
107
|
version: 1.0.32
|
|
108
|
+
- !ruby/object:Gem::Dependency
|
|
109
|
+
name: ostruct
|
|
110
|
+
requirement: !ruby/object:Gem::Requirement
|
|
111
|
+
requirements:
|
|
112
|
+
- - "~>"
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: '0.6'
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: 0.6.1
|
|
118
|
+
type: :runtime
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0.6'
|
|
125
|
+
- - ">="
|
|
126
|
+
- !ruby/object:Gem::Version
|
|
127
|
+
version: 0.6.1
|
|
94
128
|
- !ruby/object:Gem::Dependency
|
|
95
129
|
name: tty-reader
|
|
96
130
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -152,59 +186,53 @@ dependencies:
|
|
|
152
186
|
- !ruby/object:Gem::Version
|
|
153
187
|
version: 0.5.0
|
|
154
188
|
- !ruby/object:Gem::Dependency
|
|
155
|
-
name:
|
|
189
|
+
name: tty-spinner
|
|
156
190
|
requirement: !ruby/object:Gem::Requirement
|
|
157
191
|
requirements:
|
|
158
192
|
- - "~>"
|
|
159
193
|
- !ruby/object:Gem::Version
|
|
160
|
-
version:
|
|
161
|
-
|
|
194
|
+
version: '0.9'
|
|
195
|
+
- - ">="
|
|
196
|
+
- !ruby/object:Gem::Version
|
|
197
|
+
version: 0.9.0
|
|
198
|
+
type: :development
|
|
162
199
|
prerelease: false
|
|
163
200
|
version_requirements: !ruby/object:Gem::Requirement
|
|
164
201
|
requirements:
|
|
165
202
|
- - "~>"
|
|
166
203
|
- !ruby/object:Gem::Version
|
|
167
|
-
version:
|
|
204
|
+
version: '0.9'
|
|
205
|
+
- - ">="
|
|
206
|
+
- !ruby/object:Gem::Version
|
|
207
|
+
version: 0.9.0
|
|
168
208
|
- !ruby/object:Gem::Dependency
|
|
169
|
-
name:
|
|
209
|
+
name: rspec
|
|
170
210
|
requirement: !ruby/object:Gem::Requirement
|
|
171
211
|
requirements:
|
|
172
212
|
- - "~>"
|
|
173
213
|
- !ruby/object:Gem::Version
|
|
174
|
-
version: '0
|
|
175
|
-
|
|
176
|
-
- !ruby/object:Gem::Version
|
|
177
|
-
version: 0.6.1
|
|
178
|
-
type: :runtime
|
|
214
|
+
version: '3.0'
|
|
215
|
+
type: :development
|
|
179
216
|
prerelease: false
|
|
180
217
|
version_requirements: !ruby/object:Gem::Requirement
|
|
181
218
|
requirements:
|
|
182
219
|
- - "~>"
|
|
183
220
|
- !ruby/object:Gem::Version
|
|
184
|
-
version: '0
|
|
185
|
-
- - ">="
|
|
186
|
-
- !ruby/object:Gem::Version
|
|
187
|
-
version: 0.6.1
|
|
221
|
+
version: '3.0'
|
|
188
222
|
- !ruby/object:Gem::Dependency
|
|
189
|
-
name:
|
|
223
|
+
name: bump
|
|
190
224
|
requirement: !ruby/object:Gem::Requirement
|
|
191
225
|
requirements:
|
|
192
226
|
- - "~>"
|
|
193
227
|
- !ruby/object:Gem::Version
|
|
194
|
-
version:
|
|
195
|
-
- - ">="
|
|
196
|
-
- !ruby/object:Gem::Version
|
|
197
|
-
version: 0.9.0
|
|
228
|
+
version: 0.6.0
|
|
198
229
|
type: :development
|
|
199
230
|
prerelease: false
|
|
200
231
|
version_requirements: !ruby/object:Gem::Requirement
|
|
201
232
|
requirements:
|
|
202
233
|
- - "~>"
|
|
203
234
|
- !ruby/object:Gem::Version
|
|
204
|
-
version:
|
|
205
|
-
- - ">="
|
|
206
|
-
- !ruby/object:Gem::Version
|
|
207
|
-
version: 0.9.0
|
|
235
|
+
version: 0.6.0
|
|
208
236
|
description: A tool for managing a TaskPaper file of project todos for the current
|
|
209
237
|
directory. Easily create "next actions" to come back to, add tags and priorities,
|
|
210
238
|
and notes. Add prompt hooks to display your next actions automatically when cd'ing
|
|
@@ -243,6 +271,7 @@ files:
|
|
|
243
271
|
- bin/commands/prompt.rb
|
|
244
272
|
- bin/commands/restore.rb
|
|
245
273
|
- bin/commands/saved.rb
|
|
274
|
+
- bin/commands/scan.rb
|
|
246
275
|
- bin/commands/tag.rb
|
|
247
276
|
- bin/commands/tagged.rb
|
|
248
277
|
- bin/commands/todos.rb
|
|
@@ -261,6 +290,7 @@ files:
|
|
|
261
290
|
- lib/na/action.rb
|
|
262
291
|
- lib/na/actions.rb
|
|
263
292
|
- lib/na/array.rb
|
|
293
|
+
- lib/na/benchmark.rb
|
|
264
294
|
- lib/na/colors.rb
|
|
265
295
|
- lib/na/editor.rb
|
|
266
296
|
- lib/na/hash.rb
|
|
@@ -281,6 +311,7 @@ files:
|
|
|
281
311
|
- src/_README.md
|
|
282
312
|
- test.md
|
|
283
313
|
- test2.txt
|
|
314
|
+
- test_performance.rb
|
|
284
315
|
homepage: https://brettterpstra.com/projects/na/
|
|
285
316
|
licenses:
|
|
286
317
|
- MIT
|