doing 2.1.18 → 2.1.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.yardoc/checksums +19 -16
  3. data/.yardoc/object_types +0 -0
  4. data/.yardoc/objects/root.dat +0 -0
  5. data/CHANGELOG.md +121 -53
  6. data/Gemfile.lock +11 -11
  7. data/README.md +1 -1
  8. data/Rakefile +12 -4
  9. data/bin/doing +297 -234
  10. data/docs/doc/Array.html +7 -30
  11. data/docs/doc/BooleanTermParser/Clause.html +3 -3
  12. data/docs/doc/BooleanTermParser/Operator.html +3 -3
  13. data/docs/doc/BooleanTermParser/Query.html +3 -3
  14. data/docs/doc/BooleanTermParser/QueryParser.html +3 -3
  15. data/docs/doc/BooleanTermParser/QueryTransformer.html +3 -3
  16. data/docs/doc/BooleanTermParser.html +3 -3
  17. data/docs/doc/Doing/Color.html +3 -3
  18. data/docs/doc/Doing/Completion.html +3 -3
  19. data/docs/doc/Doing/Configuration.html +6 -5
  20. data/docs/doc/Doing/Errors/DoingNoTraceError.html +3 -3
  21. data/docs/doc/Doing/Errors/DoingRuntimeError.html +3 -3
  22. data/docs/doc/Doing/Errors/DoingStandardError.html +3 -3
  23. data/docs/doc/Doing/Errors/EmptyInput.html +3 -3
  24. data/docs/doc/Doing/Errors/NoResults.html +3 -3
  25. data/docs/doc/Doing/Errors/PluginException.html +3 -3
  26. data/docs/doc/Doing/Errors/UserCancelled.html +3 -3
  27. data/docs/doc/Doing/Errors/WrongCommand.html +3 -3
  28. data/docs/doc/Doing/Errors.html +3 -3
  29. data/docs/doc/Doing/Hooks.html +3 -3
  30. data/docs/doc/Doing/Item.html +3 -3
  31. data/docs/doc/Doing/Items.html +3 -3
  32. data/docs/doc/Doing/LogAdapter.html +3 -3
  33. data/docs/doc/Doing/Note.html +3 -3
  34. data/docs/doc/Doing/Pager.html +3 -3
  35. data/docs/doc/Doing/Plugins.html +3 -3
  36. data/docs/doc/Doing/Prompt.html +7 -7
  37. data/docs/doc/Doing/Section.html +3 -3
  38. data/docs/doc/Doing/TemplateString.html +4 -4
  39. data/docs/doc/Doing/Types.html +201 -0
  40. data/docs/doc/Doing/Util/Backup.html +3 -3
  41. data/docs/doc/Doing/Util.html +4 -7
  42. data/docs/doc/Doing/WWID.html +66 -8
  43. data/docs/doc/Doing.html +6 -6
  44. data/docs/doc/GLI/Commands/Help.html +185 -0
  45. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +3 -3
  46. data/docs/doc/GLI/Commands.html +7 -5
  47. data/docs/doc/GLI.html +6 -4
  48. data/docs/doc/Hash.html +80 -16
  49. data/docs/doc/Numeric.html +3 -3
  50. data/docs/doc/PhraseParser/Operator.html +3 -3
  51. data/docs/doc/PhraseParser/PhraseClause.html +3 -3
  52. data/docs/doc/PhraseParser/Query.html +3 -3
  53. data/docs/doc/PhraseParser/QueryParser.html +3 -3
  54. data/docs/doc/PhraseParser/QueryTransformer.html +3 -3
  55. data/docs/doc/PhraseParser/TermClause.html +3 -3
  56. data/docs/doc/PhraseParser.html +3 -3
  57. data/docs/doc/Status.html +3 -3
  58. data/docs/doc/String.html +195 -26
  59. data/docs/doc/Symbol.html +3 -3
  60. data/docs/doc/Time.html +3 -3
  61. data/docs/doc/_index.html +22 -8
  62. data/docs/doc/class_list.html +1 -1
  63. data/docs/doc/file.README.html +4 -4
  64. data/docs/doc/frames.html +1 -1
  65. data/docs/doc/index.html +4 -4
  66. data/docs/doc/method_list.html +334 -270
  67. data/docs/doc/top-level-namespace.html +3 -3
  68. data/docs/index.md +1 -1
  69. data/doing.gemspec +1 -1
  70. data/doing.rdoc +173 -15
  71. data/lib/completion/_doing.zsh +20 -20
  72. data/lib/completion/doing.bash +37 -26
  73. data/lib/completion/doing.fish +114 -16
  74. data/lib/doing/array.rb +5 -4
  75. data/lib/doing/array_chronify.rb +4 -3
  76. data/lib/doing/changelog/change.rb +115 -0
  77. data/lib/doing/changelog/changes.rb +73 -0
  78. data/lib/doing/changelog/entry.rb +21 -0
  79. data/lib/doing/changelog/version.rb +97 -0
  80. data/lib/doing/changelog.rb +6 -0
  81. data/lib/doing/completion/fish_completion.rb +80 -11
  82. data/lib/doing/configuration.rb +17 -8
  83. data/lib/doing/hash.rb +25 -6
  84. data/lib/doing/help_monkey_patch.rb +31 -0
  85. data/lib/doing/hooks.rb +5 -1
  86. data/lib/doing/item.rb +10 -25
  87. data/lib/doing/items.rb +3 -1
  88. data/lib/doing/log_adapter.rb +1 -1
  89. data/lib/doing/pager.rb +2 -2
  90. data/lib/doing/plugins/export/dayone_export.rb +1 -1
  91. data/lib/doing/plugins/export/markdown_export.rb +1 -1
  92. data/lib/doing/plugins/export/template_export.rb +9 -3
  93. data/lib/doing/prompt.rb +4 -2
  94. data/lib/doing/string.rb +44 -12
  95. data/lib/doing/string_chronify.rb +56 -18
  96. data/lib/doing/template_string.rb +7 -0
  97. data/lib/doing/types.rb +25 -0
  98. data/lib/doing/util.rb +2 -1
  99. data/lib/doing/version.rb +1 -1
  100. data/lib/doing/wwid.rb +93 -69
  101. data/lib/doing.rb +2 -0
  102. data/lib/examples/commands/later.rb +32 -0
  103. data/lib/helpers/threaded_tests.rb +286 -0
  104. metadata +17 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 133bd9854ecd30b3256457326ea0cf4fc3e57ec92d646743b3fe234ccf3ea615
4
- data.tar.gz: 9bb4217ebc7a518d8235d9995572b747fcb4d81cc95e05bf23b098421b4bdfcd
3
+ metadata.gz: fdf598d8593e25aa531d1ec02b0e69f590788c62aa6705f34a46bed79d6148ec
4
+ data.tar.gz: 21ef0574c7fb02deb54a2e5223c9f682b8409c41363cde8514c609a6f720fb41
5
5
  SHA512:
6
- metadata.gz: 380b6b79585cb348a003fe26bc5a12fa0831722fd1671ab131500d571f3dac516b3214ec57ca19e5b334f822c6461a2ebbca2db91b27c41c947e617326f55a5a
7
- data.tar.gz: 49f2c8cacecb895ec8251a80cdad01d4db13c0acd89857df18b0906f9ee6c25e3ffb5af965c0bb21ae153df6af21eae8e12629c46add11c9f9465f44c7aaa3b2
6
+ metadata.gz: 0fafb344357db4cc254a10428ba5104a1973fc9fdf437b0fcd96bad8c87538706ed2e3d7517505d3c5e4c23326e0f46e77fca334fcc01fecff2e192498b770bc
7
+ data.tar.gz: 6a8a6d5d0b5e25648d23f913232e7adbb9f602e0df52e6280e0efb71e07051e8a43aa30bba67a7e11fbbece7f29394e351828a4edb9e8e15cea5483548a0cf06
data/.yardoc/checksums CHANGED
@@ -1,30 +1,33 @@
1
- lib/doing/hash.rb c2960de9603dcf90be85ce423d9430de27f4f893
2
- lib/doing/item.rb 276880933fef8a4e1ef7a80e92f0f2b029f8a6e7
1
+ lib/doing/hash.rb 48b7ed855f33b2f10b4be41b09cee1efcb855b4b
2
+ lib/doing/item.rb b508a3da515f86981b30d61083e0dbb8549f894c
3
3
  lib/doing/note.rb bbadd9e34e6dc43a2af1110a5107f46c39d2547f
4
4
  lib/doing/time.rb 60183c3c31532ffea1440c766de0f90042e0fd10
5
- lib/doing/util.rb 33ad79455893213a0f2993edec0e158526657f09
6
- lib/doing/wwid.rb 58998ec0fccfa8450f7c065e1994acc6f314e819
7
- lib/doing/array.rb a17004c4811d239932254f9ed94a6eb10456c8e8
8
- lib/doing/hooks.rb acf6e0615ccf1949f84915c979297845242c1205
9
- lib/doing/items.rb 8cda7caaef10645893267262f5eee681e35046ce
10
- lib/doing/pager.rb b58e478b0cb8d400ddb97988ba741e3a127b53c3
5
+ lib/doing/util.rb 170f0eb8ac4cb0f47d517eb6a87f94850b7f1f41
6
+ lib/doing/wwid.rb 0c879394cb2ae617bda567b00dab17ff0b3c8254
7
+ lib/doing/array.rb b50c4604cb685dff87bc16bc20f21a5956b2b396
8
+ lib/doing/hooks.rb 9ffc1f719b06b18d64e548f52f7d2eaf6c21b06a
9
+ lib/doing/items.rb 69c762d337d9dad2b780cd08cc1c8785310e23ba
10
+ lib/doing/pager.rb a5dc55e1163d1b8476617e924a3aee4f9bf8be00
11
+ lib/doing/types.rb eed3ee1071ffa4a2f9caf50beb7523a24146cd1d
11
12
  lib/doing/colors.rb b7239a69e10c5df9378a5843441af5b93c1872f8
12
13
  lib/doing/errors.rb af07e482a5389924edc2337749c81cda501098f0
13
- lib/doing/prompt.rb 1c48923fc61d8714e3fc1f24b52fb8f358a8cc24
14
- lib/doing/string.rb f5327c42aa2563d95f93d4c77a099b7076c3ea5f
14
+ lib/doing/prompt.rb d241935b209e69a14c55a9c3a035f1751c576b4c
15
+ lib/doing/string.rb 443e238f1c4e205a61734b4be3d22f41388e9713
15
16
  lib/doing/symbol.rb 309799458a1bc715c2707307c9a62ab26086275e
16
17
  lib/doing/section.rb 206e119cf818f1e76798753e611180fe77bc299a
17
- lib/doing/version.rb 6eb3677d6f172bbce4a060ade7e2401b01ebe9ef
18
+ lib/doing/version.rb 21027627e64f35ac455dee6dd8565e6af062ddbb
19
+ lib/doing/changelog.rb f7d1bd424e63400ab0613ef3358e614fdf53e2b5
18
20
  lib/doing/cli_status.rb dbedd454c4cbbd0fed9ef30120f6ec85d18b9356
19
21
  lib/doing/completion.rb c658e7dc7898fb022a21b2bd77bedb958ca3b067
20
- lib/doing/log_adapter.rb 57d831259f48d0757307244d35b87e9ffa9099d9
22
+ lib/doing/log_adapter.rb 62ee66981878bd7285ccf0dfeca90a3d6d2af985
21
23
  lib/doing/util_backup.rb c13f71072581b1f0d2269853611ba09273261bf9
22
- lib/doing/configuration.rb b8667ff80c7c8830108e5089a5d309356af64151
24
+ lib/doing/configuration.rb 26c86add1bf9ab00bec24ba0c01774b5617fe2d9
23
25
  lib/doing/phrase_parser.rb 8f1789d7cf8326d8cc231b4a21505a93f8de20d2
24
- lib/doing/array_chronify.rb 5852b38643aef2e7e796aaf19b2c052a52ee5e2b
26
+ lib/doing/array_chronify.rb b39b40268b1751b18acf6bae4e53885818e45f62
25
27
  lib/doing/plugin_manager.rb cb16a82c3182ef7008359670ab96ff6b39270ccc
26
- lib/doing/string_chronify.rb 62635041c94482927fb661ac0caa2eb9bdd1c17c
27
- lib/doing/template_string.rb 5f6ef0495082339f2aa1b085ac4c1bdbfeb25be5
28
+ lib/doing/string_chronify.rb 888afa2175f3bb6cac0d68e3cb0f27cf162bb1bf
29
+ lib/doing/template_string.rb 736f6e7645160f75061db1856a62101238fe8c56
28
30
  lib/doing/numeric_chronify.rb bedeff62a95f8a8ff116e1bf0cc1d9eb2707a900
31
+ lib/doing/help_monkey_patch.rb 6aa514c249e519db507ae528de2604c18cc36045
29
32
  lib/doing/boolean_term_parser.rb 075977892ac5c6e3435cb8877d8b8b68eb1962e3
30
33
  lib/doing/markdown_document_listener.rb 45485f225068a34951ec818a345f642323e5ba35
data/.yardoc/object_types CHANGED
Binary file
Binary file
data/CHANGELOG.md CHANGED
@@ -1,3 +1,71 @@
1
+ ### 2.1.23
2
+
3
+ 2022-01-22 15:52
4
+
5
+ #### NEW
6
+
7
+ - All display commands (except view) now accept `--config_template TEMPLATE_KEY` to override that commands default template.
8
+ - Display commands accept `--template`, which takes a template string containing %placeholders and overrides the commands default template output. Affects grep, last, on, recent, show, since, today, yesterday
9
+
10
+ #### IMPROVED
11
+
12
+ - With complete examples in the help output for most commands, `doing help` almost always requires scrolling up. It now automatically paginates using your system $PAGER (or best detected option). # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch develop # Your branch is up to date with 'origin/develop'. # # Changes to be committed: # modified: lib/doing.rb # new file: lib/doing/help_monkey_patch.rb # # ------------------------ >8 ------------------------ # Do not modify or remove the line above. # Everything below it will be ignored. diff --git a/lib/doing.rb b/lib/doing.rb index d29e6ab..87a47b8 100644 --- a/lib/doing.rb +++ b/lib/doing.rb @@ -23,6 +23,7 @@ require 'tty-markdown' require 'tty-reader' require 'tty-screen' +require_relative 'doing/help_monkey_patch' require_relative 'doing/changelog' require_relative 'doing/hash' require_relative 'doing/types' diff --git a/lib/doing/help_monkey_patch.rb b/lib/doing/help_monkey_patch.rb new file mode 100644 index 0000000..5a20288 --- /dev/null +++ b/lib/doing/help_monkey_patch.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module GLI + module Commands + # Help Command Monkeypatch for paginated output + class Help < Command + def show_help(global_options,options,arguments,out,error) + Doing::Pager.paginate = true + + command_finder = HelpModules::CommandFinder.new(@app,arguments,error) + if options[:c] + help_output = HelpModules::HelpCompletionFormat.new(@app,command_finder,arguments).format + out.puts help_output unless help_output.nil? + elsif arguments.empty? || options[:c] + Doing::Pager.page HelpModules::GlobalHelpFormat.new(@app,@sorter,@text_wrapping_class).format + else + name = arguments.shift + command = command_finder.find_command(name) + unless command.nil? + Doing::Pager.page HelpModules::CommandHelpFormat.new( + command, + @app, + @sorter, + @synopsis_formatter_class, + @text_wrapping_class).format + end + end + end + end + end +end
13
+ - `doing tags` takes a MAX_COUNT argument to limit results when searching
14
+ - `doing tags --line` flag to output tags in a single line
15
+ - Mostly for my own use, `doing changes` (which views the changelog) now accepts `--lookup VERSION` and `--search SEARCH_PATTERN`
16
+ - `doing changes --lookup` accepts `"< 2.1 > 2.0"`, `"2.1.10-2.2"`, a specific version, or a version number with wildcards
17
+ - When registering hooks, you can pass an array to register a block for multiple events, assuming the events provide the same block arguments (like post_entry_added and post_entry_updated)
18
+
19
+ #### FIXED
20
+
21
+ - Running `--tag "@doing"` wouldn't work where `--tag "doing"` would. Now properly ignoring @ symbols
22
+
23
+ ### 2.1.22
24
+
25
+ 2022-01-21 14:53
26
+
27
+ ### 2.1.21
28
+
29
+ 2022-01-20 12:05
30
+
31
+ #### FIXED
32
+
33
+ - Custom types not available to custom commands
34
+
35
+ ### 2.1.20
36
+
37
+ 2022-01-20 11:49
38
+
39
+ #### NEW
40
+
41
+ - Autotag option for interactive `doing select` menu
42
+ - (Breaking change) Made the later command an optional plugin, see wiki for how to install (and create) custom commands
43
+ - Config setting doing_file_sort (asc or desc) determines the sort order of entries in the actual Doing file. Has no effect on other operations, just allows you to store the file with newest entries at top (desc) or bottom (asc).
44
+
45
+ #### IMPROVED
46
+
47
+ - Autotag improvements
48
+ - If doing is run without a command but with arguments, execute it as if you'd run `doing now`, passing the arguments to that. So you can just write "doing this thing" instead of "doing now this thing", as long as the first word of the arguments is not a recognized command.
49
+
50
+ #### FIXED
51
+
52
+ - `doing again` should only mark the original repeating entry @done, not search for the last unfinished entry
53
+ - Error when using `doing finish --auto`
54
+ - `doing on wed` when today is wednesday not returning results
55
+ - Using `config set` with a false value deleted the key from config
56
+ - `config set` with true or false value was inserting a quoted string
57
+ - Entries were not being sorted (at all) within sections when writing the Doing file
58
+
59
+ ### 2.1.19
60
+
61
+ 2022-01-18 08:40
62
+
63
+ #### FIXED
64
+
65
+ - Search highlighting error with some pattern searches
66
+ - Reverse sort of items in menu from `--interactive` flags
67
+ - Nil error when `--interactive` was called without search results
68
+
1
69
  ### 2.1.18
2
70
 
3
71
  Build automation test
@@ -33,7 +101,7 @@ Build automation test
33
101
  #### IMPROVED
34
102
 
35
103
  - Running `doing tag` without arguments takes command line input
36
- - If `doing now` or `doing later` are run without arguments, interactively request necessary information (you can still use --editor to edit in your preferred editor)
104
+ - If `doing now` or `doing later` are run without arguments, interactively request necessary information (you can still use `--editor` to edit in your preferred editor)
37
105
  - Tab completion for tags when entering at prompt
38
106
  - Use readline when requesting input text, better editing features
39
107
  - `doing done --at` no longer overrides `--back`
@@ -43,7 +111,7 @@ Build automation test
43
111
  - `doing select` -> output formatted empty output
44
112
  - Sort items by date when using `doing select --editor` (was loading in selection order instead)
45
113
  - Ruby 2.7 error in template output (.empty? on FalseClass)
46
- - Don't add empty entry when cancelling --editor
114
+ - Don't add empty entry when cancelling `--editor`
47
115
  - Batch editing bugs
48
116
 
49
117
  ### 2.1.15
@@ -68,21 +136,21 @@ Build automation test
68
136
 
69
137
  #### NEW
70
138
 
71
- - All commands that accept --note now accept --ask, which requests input via readline after creating the note. Multiple lines are allowed, hit return twice to end editing. Works alongside --note and --editor
139
+ - All commands that accept `--note` now accept `--ask`, which requests input via readline after creating the note. Multiple lines are allowed, hit return twice to end editing. Works alongside `--note` and `--editor`
72
140
 
73
141
  #### IMPROVED
74
142
 
75
- - Implement --search and --from filtering for import plugins
143
+ - Implement `--search` and `--from` filtering for import plugins
76
144
  - UTC format date strings in select menus for consistency (was relative date formatting)
77
- - Don't populate the fzf search with --search, it's already filtered. Separated --query from --search if you do want to populate the query string in addition to --search filtering
145
+ - Don't populate the fzf search with `--search`, it's already filtered. Separated `--query` from `--search` if you do want to populate the query string in addition to `--search` filtering
78
146
  - When showing relative dates, don't include the year if the date is the previous year but a later month than the current month (less than a year old)
79
- - When using --editor while adding an entry, include any note specified on the command line or via --ask for further editing
147
+ - When using `--editor` while adding an entry, include any note specified on the command line or via `--ask` for further editing
80
148
 
81
149
  ### 2.1.13
82
150
 
83
151
  #### NEW
84
152
 
85
- - --val flag for all display commands, allows tag value queries. Tag values are contained in parenthesis after the tag, e.g. @progress(50). Queries look like `--val "done < two weeks ago"`, "project *= oracle" or "progress >= 50". Wildcards allowed in value, comparators can be <, >, <=, >=, ==, *= (contains), ^= (begins with), $= (ends with). Numeric and date comparisons are detected automatically. Text comparisons are case insensitive. --val can be used multiple times in a command and you can use --bool to specify AND, OR, or NOT (default AND)
153
+ - `--val` flag for all display commands, allows tag value queries. Tag values are contained in parenthesis after the tag, e.g. @progress(50). Queries look like `--val "done < two weeks ago"`, "project *= oracle" or "progress >= 50". Wildcards allowed in value, comparators can be <, >, <=, >=, ==, *= (contains), ^= (begins with), $= (ends with). Numeric and date comparisons are detected automatically. Text comparisons are case insensitive. `--val` can be used multiple times in a command and you can use `--bool` to specify AND, OR, or NOT (default AND)
86
154
  - `doing tag` now accepts a `--value` flag to define a value for a single tag, e.g. @tag(value)
87
155
 
88
156
  #### FIXED
@@ -96,7 +164,7 @@ Build automation test
96
164
  - Tag_dir command creates/updates .doingrc files in the current directory with default_tags values. Then all entries created within that directory (or subdirs) get tagged with that value.
97
165
  - Synonym triggers allow `*` and `?` wildcards
98
166
  - Add `--delete` flag for `doing last` to delete last entry
99
- - --delete and --editor flags for `doing search`, batch edit and delete
167
+ - `--delete` and `--editor` flags for `doing search`, batch edit and delete
100
168
  - Example hook to add new entries containing a certain tag to Day One
101
169
  - New hooks: pre_entry_add, post_entry_added, post_entry_updated, post_entry_removed, pre_export
102
170
 
@@ -113,13 +181,13 @@ Build automation test
113
181
 
114
182
  #### NEW
115
183
 
116
- - --age (oldest|newest) option for view command
184
+ - `--age` (oldest|newest) option for view command
117
185
 
118
186
  ### 2.1.9
119
187
 
120
188
  #### IMPROVED
121
189
 
122
- - Only attempt to install fzf if it doesn't exist on the system. In case of errors, this means a user can manually install fzf and still be able to access --interactive options
190
+ - Only attempt to install fzf if it doesn't exist on the system. In case of errors, this means a user can manually install fzf and still be able to access `--interactive` options
123
191
 
124
192
  #### FIXED
125
193
 
@@ -199,10 +267,10 @@ Build automation test
199
267
  - `config list` will list detected .doingrc files and the main config file in order of precedence - refactoring
200
268
  - When modifying start dates or @done dates via an editor command, natural language strings can be used and will be parsed into doing-formatted dates automatically
201
269
  - When editor is invoked, entry titles include start date, which can be modified
202
- - --before, --after, and --from date filters for select command
203
- - --from flag for `doing today` and `doing yesterday`, filter by time range
204
- - --from flag for `doing search`, filter by date/time range
205
- - Commands that accept --before, --after, and --from can now filter on time ranges. If the date string given contains only a time (no day or date), it will be interpreted as a time range, meaning the date isn't filtered, but only entries within the time range are shown/processed
270
+ - `--before`, `--after`, and `--from` date filters for select command
271
+ - `--from` flag for `doing today` and `doing yesterday`, filter by time range
272
+ - `--from` flag for `doing search`, filter by date/time range
273
+ - Commands that accept `--before`, `--after`, and `--from` can now filter on time ranges. If the date string given contains only a time (no day or date), it will be interpreted as a time range, meaning the date isn't filtered, but only entries within the time range are shown/processed
206
274
  - Add %duration placeholder to template variables
207
275
  - Add `interval_format` setting to config (applies to root or any view/template) to set intervals/durations to human (2h 15m) or text (00:02:15)
208
276
  - Add `duration` key to config (root or view/template). If set to true, will display durations by default (no need for `--duration`)
@@ -291,10 +359,10 @@ Build automation test
291
359
  - Add 'timer_format' config with 'human' option for tag totals
292
360
  - If `doing view` and `doing show` are confused, offer option to run the other command
293
361
  - `doing completion` to generate shell completion scripts for zsh, bash, and fish
294
- - --search and --not for cancel command
295
- - --case flag for commands with --search. Can be (c)ase-sensitive, (i)nsensitive, or (s)mart (default smart, case insensitive unless search string contains uppercase letters)
362
+ - `--search` and `--not` for cancel command
363
+ - `--case` flag for commands with `--search`. Can be (c)ase-sensitive, (i)nsensitive, or (s)mart (default smart, case insensitive unless search string contains uppercase letters)
296
364
  - Add `--exact` flag to all commands with `--search` flag to force exact matching without requiring single quote prefix
297
- - Add `--not` flag to all commands with filters (--tag, --search, --before, etc.) to negate the filter and return entries NOT matched
365
+ - Add `--not` flag to all commands with filters (`--tag`, `--search`, `--before`, etc.) to negate the filter and return entries NOT matched
298
366
 
299
367
  #### IMPROVED
300
368
 
@@ -318,13 +386,13 @@ Build automation test
318
386
  - `doing config --update` will add newly added config keys to your existing config file (handy with plugins that define their own config keys)
319
387
  - Add %idnote template placeholder for "indented note" (entire note indented one tab)
320
388
  - (loosely printf-esque) formatting options for `%note` template placeholder
321
- - --interactive mode to act on results of `doing grep`
389
+ - `--interactive` mode to act on results of `doing grep`
322
390
  - Printf formatting for title and date
323
391
  - Doing import plugin
324
392
  - Plugins command to list plugins
325
- - --dump option for `doing config` to output a key.path config key as JSON, YAML, or raw output
326
- - --no-color global flag
327
- - Log levels, with --quiet and --verbose global flags
393
+ - `--dump` option for `doing config` to output a key.path config key as JSON, YAML, or raw output
394
+ - `--no-color` global flag
395
+ - Log levels, with `--quiet` and `--verbose` global flags
328
396
  - Convert CLI messaging to Logger-based system
329
397
  - Use DOING_DEBUG, DOING_QUIET, or DOING_LOG_LEVEL environment variables to specify log levels before configuration is read
330
398
  - Hooks, register plugins to run based on events
@@ -337,26 +405,26 @@ Build automation test
337
405
  - Major plugin architecture refactoring
338
406
  - Fix regression where notes stored in doing file were outdented, breaking TaskPaper compatibility
339
407
  - When accepting a date filter, allow end date to be in the future
340
- - If an edited item has no changes, don't update/output notification - Don't start with query when using grep --interactive
408
+ - If an edited item has no changes, don't update/output notification - Don't start with query when using grep `--interactive`
341
409
  - Select menu item formatting
342
410
  - Output wrapping for terminal display
343
- - Redirect warn to STDOUT when run with --stdout
411
+ - Redirect warn to STDOUT when run with `--stdout`
344
412
  - Fish autocomplete
345
413
  - `--config_file` global flag deprected, now uses $DOING_CONFIG environment variable so that config overrides can be available before the initial configuration is run
346
- - When --stdout or not a TTY, no color or output formatting
414
+ - When `--stdout` or not a TTY, no color or output formatting
347
415
  - Highlight tags when showing results. Because it looks nice.
348
- - --tag and --search for `doing note`
416
+ - `--tag` and `--search` for `doing note`
349
417
  - View/section fuzzy guessing
350
418
  - Error reporting
351
419
  - If `doing config` finds local doingrc files, offers a menu for editing
352
420
  - More filtering options for `doing finish`
353
- - Doing done accepts --unfinished flag to finish last entry not marked @done (instead of last entry)
354
- - Doing done accepts --note flag to append a note when completing an entry
421
+ - Doing done accepts `--unfinished` flag to finish last entry not marked @done (instead of last entry)
422
+ - Doing done accepts `--note` flag to append a note when completing an entry
355
423
 
356
424
  #### FIXED
357
425
 
358
426
  - Multi-word unquoted arguments to add_section being truncated
359
- - Show --from with date span
427
+ - Show `--from` with date span
360
428
  - Handling of arbitrary times in natural language dates
361
429
  - Backward scope of since command with arbitrary times
362
430
  - `doing rotate --keep` wasn't respecting keep value
@@ -370,33 +438,33 @@ Build automation test
370
438
  - "taskpaper" format available for all output options
371
439
  - "markdown" format available for all output commands (GFM-style task list, customizable template)
372
440
  - `--rename` option for tag command to replace tags
373
- - `--regex` option for tag command, for --remove and --rename
441
+ - `--regex` option for tag command, for `--remove` and `--rename`
374
442
 
375
443
  ### 1.0.90
376
444
 
377
445
  - Minor fix for shell command in doing select
378
- - Fix for doing finish --auto when matched item is last in list
379
- - doing finish --auto now pulls from all sections, not just the section of the target entry
446
+ - Fix for doing finish `--auto` when matched item is last in list
447
+ - doing finish `--auto` now pulls from all sections, not just the section of the target entry
380
448
 
381
449
  ### 1.0.89
382
450
 
383
451
  - Pretty print JSON output
384
- - --no-menu option for select command to use --query as a filter and act on matching entries without displaying menu
452
+ - `--no-menu` option for select command to use `--query` as a filter and act on matching entries without displaying menu
385
453
 
386
454
  ### 1.0.88
387
455
 
388
- - Add --before and --after time search to yesterday command
389
- - Add --before and --after date search to search/grep command
390
- - Add --tag_order to yesterday command
456
+ - Add `--before` and `--after` time search to yesterday command
457
+ - Add `--before` and `--after` date search to search/grep command
458
+ - Add `--tag_order` to yesterday command
391
459
 
392
460
  ### 1.0.87
393
461
 
394
462
  - Add leading spaces to make %shortdate align properly, at least for the last week
395
- - Add --tag, --bool, and --search to view command
396
- - Add --before and --after date search to view command
397
- - Add --before and --after date search to show command
398
- - Add --before and --after time search to today command
399
- - Add --search filter to show command
463
+ - Add `--tag`, `--bool`, and `--search` to view command
464
+ - Add `--before` and `--after` date search to view command
465
+ - Add `--before` and `--after` date search to show command
466
+ - Add `--before` and `--after` time search to today command
467
+ - Add `--search` filter to show command
400
468
  - More alignment/formatting fixes for %shortdate
401
469
 
402
470
  ### 1.0.86
@@ -405,8 +473,8 @@ Build automation test
405
473
 
406
474
  ### 1.0.85
407
475
 
408
- - Fix --auto for finish command
409
- - Add --before DATE_STRING to archive and rotate commands
476
+ - Fix `--auto` for finish command
477
+ - Add `--before` DATE_STRING to archive and rotate commands
410
478
  - Only create on rotate file per day, merge new entries into existing file
411
479
 
412
480
  ### 1.0.84
@@ -450,7 +518,7 @@ presented
450
518
 
451
519
  ### 1.0.74
452
520
 
453
- - Add --tag and --search flags to tag command to tag all entries matching search terms
521
+ - Add `--tag` and `--search` flags to tag command to tag all entries matching search terms
454
522
  - Add since command, which is the same as `doing on tuesday to now` but `doing since tuesday` just feels more intuitive.
455
523
 
456
524
  ### 1.0.73
@@ -506,7 +574,7 @@ presented
506
574
 
507
575
  ### 1.0.61
508
576
 
509
- - Add --search filter to `doing archive`
577
+ - Add `--search` filter to `doing archive`
510
578
 
511
579
  ### 1.0.60
512
580
 
@@ -557,12 +625,12 @@ presented
557
625
  #### IMPROVED
558
626
 
559
627
  - Clean up command line help
560
- - --editor improvements for all commands that use it
628
+ - `--editor` improvements for all commands that use it
561
629
 
562
630
  #### FIXED
563
631
 
564
- - Doing finish --took throwing error
565
- - Doing tag --remove was adding tags if they didn't exist
632
+ - Doing finish `--took` throwing error
633
+ - Doing tag `--remove` was adding tags if they didn't exist
566
634
  - Creating a meanwhile task with a note resulted in an error
567
635
 
568
636
  ### 1.0.54
@@ -582,13 +650,13 @@ presented
582
650
 
583
651
  #### IMPROVED
584
652
 
585
- - Add --no-color option to view command
586
- - Add --tag to show for compatibility
653
+ - Add `--no-color` option to view command
654
+ - Add `--tag` to show for compatibility
587
655
 
588
656
  #### FIXED
589
657
 
590
- - Error running finish without --tag flag
591
- - --archive flag on finish, done, and cancel causing error
658
+ - Error running finish without `--tag` flag
659
+ - `--archive` flag on finish, done, and cancel causing error
592
660
 
593
661
  ### 1.0.52
594
662
 
@@ -599,7 +667,7 @@ presented
599
667
 
600
668
  #### FIXED
601
669
 
602
- - --archive flag on finish, done, and cancel causing error
670
+ - `--archive` flag on finish, done, and cancel causing error
603
671
 
604
672
  ### 1.0.49
605
673
 
@@ -647,7 +715,7 @@ presented
647
715
  ### 1.0.39
648
716
 
649
717
  - Tag transforms
650
- - Option to sort tags by name in --totals
718
+ - Option to sort tags by name in `--totals`
651
719
 
652
720
  ### 1.0.33
653
721
 
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- doing (2.1.18)
4
+ doing (2.1.23)
5
5
  chronic (~> 0.10, >= 0.10.2)
6
6
  deep_merge (~> 1.2, >= 1.2.1)
7
- gli (~> 2.19, >= 2.19.2)
7
+ gli (~> 2.20, >= 2.20.1)
8
8
  haml (~> 5.0.0, >= 5.0.0)
9
9
  parslet (~> 2.0, >= 2.0.0)
10
10
  plist (~> 3.6, >= 3.6.0)
@@ -19,12 +19,11 @@ PATH
19
19
  GEM
20
20
  remote: http://rubygems.org/
21
21
  specs:
22
- activesupport (6.1.4.1)
22
+ activesupport (7.0.1)
23
23
  concurrent-ruby (~> 1.0, >= 1.0.2)
24
24
  i18n (>= 1.6, < 2)
25
25
  minitest (>= 5.1)
26
26
  tzinfo (~> 2.0)
27
- zeitwerk (~> 2.3)
28
27
  aruba (1.0.4)
29
28
  childprocess (>= 2.0, < 5.0)
30
29
  contracts (~> 0.16.0)
@@ -68,8 +67,8 @@ GEM
68
67
  cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
69
68
  cucumber-messages (~> 13.0, >= 13.0.1)
70
69
  deep_merge (1.2.2)
71
- diff-lcs (1.4.4)
72
- ffi (1.15.4)
70
+ diff-lcs (1.5.0)
71
+ ffi (1.15.5)
73
72
  github-markup (4.0.0)
74
73
  gli (2.20.1)
75
74
  haml (5.0.4)
@@ -80,7 +79,7 @@ GEM
80
79
  kramdown (2.3.1)
81
80
  rexml
82
81
  middleware (0.1.0)
83
- minitest (5.14.4)
82
+ minitest (5.15.0)
84
83
  multi_test (0.1.2)
85
84
  parallel (1.21.0)
86
85
  parallel_tests (3.7.3)
@@ -100,7 +99,7 @@ GEM
100
99
  redcarpet (3.5.1)
101
100
  rexml (3.2.5)
102
101
  rouge (3.27.0)
103
- rspec-expectations (3.10.1)
102
+ rspec-expectations (3.10.2)
104
103
  diff-lcs (>= 1.2.0, < 2.0)
105
104
  rspec-support (~> 3.10.0)
106
105
  rspec-support (3.10.3)
@@ -115,7 +114,7 @@ GEM
115
114
  temple (0.8.2)
116
115
  test-unit (3.4.9)
117
116
  power_assert
118
- thor (1.1.0)
117
+ thor (1.2.1)
119
118
  thread_safe (0.3.6)
120
119
  tilt (2.0.10)
121
120
  tty-color (0.6.0)
@@ -145,9 +144,10 @@ GEM
145
144
  concurrent-ruby (~> 1.0)
146
145
  unicode-display_width (2.1.0)
147
146
  unicode_utils (1.4.0)
147
+ webrick (1.7.0)
148
148
  wisper (2.0.1)
149
- yard (0.9.26)
150
- zeitwerk (2.5.1)
149
+ yard (0.9.27)
150
+ webrick (~> 1.7.0)
151
151
 
152
152
  PLATFORMS
153
153
  ruby
data/README.md CHANGED
@@ -8,7 +8,7 @@ _If you're one of the rare people like me who find this useful, feel free to
8
8
 
9
9
  <!--README-->
10
10
 
11
- The current version of `doing` is <!--VER-->2.1.17<!--END VER-->.
11
+ The current version of `doing` is <!--VER-->2.1.22<!--END VER-->.
12
12
 
13
13
  Find all of the documentation in the [doing wiki][wiki].
14
14
 
data/Rakefile CHANGED
@@ -37,7 +37,6 @@ end
37
37
  # end
38
38
 
39
39
  namespace :test do
40
-
41
40
  FileList['test/*_test.rb'].each do |rakefile|
42
41
  test_name = File.basename(rakefile, '.rb').sub(/^.*?_(.*?)_.*?$/, '\1')
43
42
 
@@ -51,6 +50,15 @@ namespace :test do
51
50
  end
52
51
  end
53
52
 
53
+ desc 'Run all tests, threaded'
54
+ task :test, :pattern, :threads, :max_tests do |_, args|
55
+ args.with_defaults(pattern: '*', threads: 8, max_tests: 0)
56
+ pattern = args[:pattern] =~ /(n[iu]ll?|0|\.)/i ? '*' : args[:pattern]
57
+
58
+ require_relative 'lib/helpers/threaded_tests'
59
+ ThreadedTests.new.run(pattern: pattern, max_threads: args[:threads].to_i, max_tests: args[:max_tests])
60
+ end
61
+
54
62
  desc 'Run tests in Docker'
55
63
  task :dockertest, :version, :login do |_, args|
56
64
  args.with_defaults(version: '2.7', login: false)
@@ -85,8 +93,8 @@ task :dockertest, :version, :login do |_, args|
85
93
  # puts commit&.empty? ? "Error commiting Docker tag #{img}" : "Committed Docker tag #{img}"
86
94
  end
87
95
 
88
- desc 'Run all tests'
89
- task test: 'test:default'
96
+ # desc 'Run all tests'
97
+ # task test: 'test:default'
90
98
 
91
99
  desc 'Run one test verbosely'
92
100
  task :test_one, :test do |_, args|
@@ -151,4 +159,4 @@ task :bump, :type do |_, args|
151
159
  File.open(version_file, 'w+') { |f| f.puts content }
152
160
  end
153
161
 
154
- task default: %i[clobber yard package]
162
+ task default: %i[test clobber package]