doing 2.1.22 → 2.1.23
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/.yardoc/checksums +13 -11
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/CHANGELOG.md +18 -10
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/bin/doing +134 -27
- data/docs/doc/Array.html +10 -5
- data/docs/doc/BooleanTermParser/Clause.html +1 -1
- data/docs/doc/BooleanTermParser/Operator.html +1 -1
- data/docs/doc/BooleanTermParser/Query.html +1 -1
- data/docs/doc/BooleanTermParser/QueryParser.html +1 -1
- data/docs/doc/BooleanTermParser/QueryTransformer.html +1 -1
- data/docs/doc/BooleanTermParser.html +1 -1
- data/docs/doc/Doing/Color.html +1 -1
- data/docs/doc/Doing/Completion.html +1 -1
- data/docs/doc/Doing/Configuration.html +3 -3
- data/docs/doc/Doing/Errors/DoingNoTraceError.html +1 -1
- data/docs/doc/Doing/Errors/DoingRuntimeError.html +1 -1
- data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
- data/docs/doc/Doing/Errors/EmptyInput.html +1 -1
- data/docs/doc/Doing/Errors/NoResults.html +1 -1
- data/docs/doc/Doing/Errors/PluginException.html +1 -1
- data/docs/doc/Doing/Errors/UserCancelled.html +1 -1
- data/docs/doc/Doing/Errors/WrongCommand.html +1 -1
- data/docs/doc/Doing/Errors.html +1 -1
- data/docs/doc/Doing/Hooks.html +1 -1
- data/docs/doc/Doing/Item.html +1 -1
- data/docs/doc/Doing/Items.html +1 -1
- data/docs/doc/Doing/LogAdapter.html +1 -1
- data/docs/doc/Doing/Note.html +1 -1
- data/docs/doc/Doing/Pager.html +1 -1
- data/docs/doc/Doing/Plugins.html +1 -1
- data/docs/doc/Doing/Prompt.html +1 -1
- data/docs/doc/Doing/Section.html +1 -1
- data/docs/doc/Doing/TemplateString.html +2 -2
- data/docs/doc/Doing/Types.html +201 -0
- data/docs/doc/Doing/Util/Backup.html +1 -1
- data/docs/doc/Doing/Util.html +2 -5
- data/docs/doc/Doing/WWID.html +1 -1
- data/docs/doc/Doing.html +2 -2
- data/docs/doc/GLI/Commands/Help.html +185 -0
- data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
- data/docs/doc/GLI/Commands.html +5 -3
- data/docs/doc/GLI.html +4 -2
- data/docs/doc/Hash.html +3 -11
- data/docs/doc/Numeric.html +1 -1
- data/docs/doc/PhraseParser/Operator.html +1 -1
- data/docs/doc/PhraseParser/PhraseClause.html +1 -1
- data/docs/doc/PhraseParser/Query.html +1 -1
- data/docs/doc/PhraseParser/QueryParser.html +1 -1
- data/docs/doc/PhraseParser/QueryTransformer.html +1 -1
- data/docs/doc/PhraseParser/TermClause.html +1 -1
- data/docs/doc/PhraseParser.html +1 -1
- data/docs/doc/Status.html +1 -1
- data/docs/doc/String.html +40 -10
- data/docs/doc/Symbol.html +1 -1
- data/docs/doc/Time.html +1 -1
- data/docs/doc/_index.html +16 -9
- data/docs/doc/class_list.html +1 -1
- data/docs/doc/file.README.html +2 -2
- data/docs/doc/index.html +2 -2
- data/docs/doc/method_list.html +160 -144
- data/docs/doc/top-level-namespace.html +1 -1
- data/docs/index.md +1 -1
- data/doing.rdoc +148 -4
- data/lib/completion/_doing.zsh +15 -15
- data/lib/completion/doing.bash +29 -18
- data/lib/completion/doing.fish +21 -1
- data/lib/doing/array.rb +2 -2
- data/lib/doing/changelog/change.rb +115 -0
- data/lib/doing/changelog/changes.rb +73 -0
- data/lib/doing/changelog/entry.rb +21 -0
- data/lib/doing/changelog/version.rb +97 -0
- data/lib/doing/changelog.rb +6 -0
- data/lib/doing/configuration.rb +15 -7
- data/lib/doing/hash.rb +3 -2
- data/lib/doing/help_monkey_patch.rb +31 -0
- data/lib/doing/hooks.rb +5 -1
- data/lib/doing/item.rb +10 -25
- data/lib/doing/plugins/export/template_export.rb +1 -1
- data/lib/doing/string.rb +19 -10
- data/lib/doing/string_chronify.rb +1 -1
- data/lib/doing/types.rb +2 -0
- data/lib/doing/util.rb +2 -1
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +22 -19
- data/lib/doing.rb +1 -0
- data/lib/helpers/threaded_tests.rb +14 -1
- metadata +10 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fdf598d8593e25aa531d1ec02b0e69f590788c62aa6705f34a46bed79d6148ec
|
|
4
|
+
data.tar.gz: 21ef0574c7fb02deb54a2e5223c9f682b8409c41363cde8514c609a6f720fb41
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0fafb344357db4cc254a10428ba5104a1973fc9fdf437b0fcd96bad8c87538706ed2e3d7517505d3c5e4c23326e0f46e77fca334fcc01fecff2e192498b770bc
|
|
7
|
+
data.tar.gz: 6a8a6d5d0b5e25648d23f913232e7adbb9f602e0df52e6280e0efb71e07051e8a43aa30bba67a7e11fbbece7f29394e351828a4edb9e8e15cea5483548a0cf06
|
data/.yardoc/checksums
CHANGED
|
@@ -1,31 +1,33 @@
|
|
|
1
|
-
lib/doing/hash.rb
|
|
2
|
-
lib/doing/item.rb
|
|
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
|
|
6
|
-
lib/doing/wwid.rb
|
|
7
|
-
lib/doing/array.rb
|
|
8
|
-
lib/doing/hooks.rb
|
|
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
9
|
lib/doing/items.rb 69c762d337d9dad2b780cd08cc1c8785310e23ba
|
|
10
10
|
lib/doing/pager.rb a5dc55e1163d1b8476617e924a3aee4f9bf8be00
|
|
11
|
-
lib/doing/types.rb
|
|
11
|
+
lib/doing/types.rb eed3ee1071ffa4a2f9caf50beb7523a24146cd1d
|
|
12
12
|
lib/doing/colors.rb b7239a69e10c5df9378a5843441af5b93c1872f8
|
|
13
13
|
lib/doing/errors.rb af07e482a5389924edc2337749c81cda501098f0
|
|
14
14
|
lib/doing/prompt.rb d241935b209e69a14c55a9c3a035f1751c576b4c
|
|
15
|
-
lib/doing/string.rb
|
|
15
|
+
lib/doing/string.rb 443e238f1c4e205a61734b4be3d22f41388e9713
|
|
16
16
|
lib/doing/symbol.rb 309799458a1bc715c2707307c9a62ab26086275e
|
|
17
17
|
lib/doing/section.rb 206e119cf818f1e76798753e611180fe77bc299a
|
|
18
|
-
lib/doing/version.rb
|
|
18
|
+
lib/doing/version.rb 21027627e64f35ac455dee6dd8565e6af062ddbb
|
|
19
|
+
lib/doing/changelog.rb f7d1bd424e63400ab0613ef3358e614fdf53e2b5
|
|
19
20
|
lib/doing/cli_status.rb dbedd454c4cbbd0fed9ef30120f6ec85d18b9356
|
|
20
21
|
lib/doing/completion.rb c658e7dc7898fb022a21b2bd77bedb958ca3b067
|
|
21
22
|
lib/doing/log_adapter.rb 62ee66981878bd7285ccf0dfeca90a3d6d2af985
|
|
22
23
|
lib/doing/util_backup.rb c13f71072581b1f0d2269853611ba09273261bf9
|
|
23
|
-
lib/doing/configuration.rb
|
|
24
|
+
lib/doing/configuration.rb 26c86add1bf9ab00bec24ba0c01774b5617fe2d9
|
|
24
25
|
lib/doing/phrase_parser.rb 8f1789d7cf8326d8cc231b4a21505a93f8de20d2
|
|
25
26
|
lib/doing/array_chronify.rb b39b40268b1751b18acf6bae4e53885818e45f62
|
|
26
27
|
lib/doing/plugin_manager.rb cb16a82c3182ef7008359670ab96ff6b39270ccc
|
|
27
|
-
lib/doing/string_chronify.rb
|
|
28
|
+
lib/doing/string_chronify.rb 888afa2175f3bb6cac0d68e3cb0f27cf162bb1bf
|
|
28
29
|
lib/doing/template_string.rb 736f6e7645160f75061db1856a62101238fe8c56
|
|
29
30
|
lib/doing/numeric_chronify.rb bedeff62a95f8a8ff116e1bf0cc1d9eb2707a900
|
|
31
|
+
lib/doing/help_monkey_patch.rb 6aa514c249e519db507ae528de2604c18cc36045
|
|
30
32
|
lib/doing/boolean_term_parser.rb 075977892ac5c6e3435cb8877d8b8b68eb1962e3
|
|
31
33
|
lib/doing/markdown_document_listener.rb 45485f225068a34951ec818a345f642323e5ba35
|
data/.yardoc/object_types
CHANGED
|
Binary file
|
data/.yardoc/objects/root.dat
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -1,20 +1,28 @@
|
|
|
1
|
-
### 2.1.
|
|
1
|
+
### 2.1.23
|
|
2
|
+
|
|
3
|
+
2022-01-22 15:52
|
|
4
|
+
|
|
5
|
+
#### NEW
|
|
2
6
|
|
|
3
|
-
|
|
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
|
|
4
9
|
|
|
5
10
|
#### IMPROVED
|
|
6
11
|
|
|
7
|
-
-
|
|
8
|
-
- `doing
|
|
9
|
-
-
|
|
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)
|
|
10
18
|
|
|
11
19
|
#### FIXED
|
|
12
20
|
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
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
|
|
18
26
|
|
|
19
27
|
### 2.1.21
|
|
20
28
|
|
data/Gemfile.lock
CHANGED
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.
|
|
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/bin/doing
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
$LOAD_PATH.unshift File.join(__dir__, '..', 'lib')
|
|
5
5
|
require 'gli'
|
|
6
|
+
require 'doing/help_monkey_patch'
|
|
6
7
|
require 'doing'
|
|
7
8
|
require 'tempfile'
|
|
8
9
|
require 'pp'
|
|
@@ -21,6 +22,7 @@ end
|
|
|
21
22
|
|
|
22
23
|
include GLI::App
|
|
23
24
|
include Doing::Errors
|
|
25
|
+
|
|
24
26
|
version Doing::VERSION
|
|
25
27
|
hide_commands_without_desc true
|
|
26
28
|
autocomplete_commands true
|
|
@@ -65,6 +67,13 @@ if settings.dig('plugins', 'command_path')
|
|
|
65
67
|
commands_from File.expand_path(settings.dig('plugins', 'command_path'))
|
|
66
68
|
end
|
|
67
69
|
|
|
70
|
+
accept TemplateName do |value|
|
|
71
|
+
res = settings['templates'].keys.select { |k| k =~ value.to_rx(distance: 2) }
|
|
72
|
+
raise InvalidArgument, "Unknown template: #{value}" if res.empty?
|
|
73
|
+
|
|
74
|
+
res.group_by(&:length).min.last[0]
|
|
75
|
+
end
|
|
76
|
+
|
|
68
77
|
accept DateBeginString do |value|
|
|
69
78
|
if value =~ REGEX_TIME
|
|
70
79
|
res = value
|
|
@@ -1682,6 +1691,14 @@ command %i[grep search] do |c|
|
|
|
1682
1691
|
c.arg_name 'FORMAT'
|
|
1683
1692
|
c.flag %i[o output]
|
|
1684
1693
|
|
|
1694
|
+
c.desc "Output using a template from configuration"
|
|
1695
|
+
c.arg_name 'TEMPLATE_KEY'
|
|
1696
|
+
c.flag [:config_template], type: TemplateName, default_value: 'default'
|
|
1697
|
+
|
|
1698
|
+
c.desc 'Override output format with a template string containing %placeholders'
|
|
1699
|
+
c.arg_name 'TEMPLATE_STRING'
|
|
1700
|
+
c.flag [:template]
|
|
1701
|
+
|
|
1685
1702
|
c.desc 'Show time intervals on @done tasks'
|
|
1686
1703
|
c.switch %i[t times], default_value: true, negatable: true
|
|
1687
1704
|
|
|
@@ -1736,7 +1753,7 @@ command %i[grep search] do |c|
|
|
|
1736
1753
|
options[:fuzzy] = false
|
|
1737
1754
|
raise DoingRuntimeError, %(Invalid output type "#{options[:output]}") if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)
|
|
1738
1755
|
|
|
1739
|
-
template = settings['templates'][
|
|
1756
|
+
template = settings['templates'][options[:config_template]].deep_merge(settings)
|
|
1740
1757
|
tags_color = template.key?('tags_color') ? template['tags_color'] : nil
|
|
1741
1758
|
|
|
1742
1759
|
section = wwid.guess_section(options[:section]) if options[:section]
|
|
@@ -1793,6 +1810,14 @@ command :last do |c|
|
|
|
1793
1810
|
c.arg_name 'QUERY'
|
|
1794
1811
|
c.flag [:search]
|
|
1795
1812
|
|
|
1813
|
+
c.desc "Output using a template from configuration"
|
|
1814
|
+
c.arg_name 'TEMPLATE_KEY'
|
|
1815
|
+
c.flag [:config_template], type: TemplateName, default_value: 'last'
|
|
1816
|
+
|
|
1817
|
+
c.desc 'Override output format with a template string containing %placeholders'
|
|
1818
|
+
c.arg_name 'TEMPLATE_STRING'
|
|
1819
|
+
c.flag [:template]
|
|
1820
|
+
|
|
1796
1821
|
c.desc "Highlight search matches in output. Only affects command line output"
|
|
1797
1822
|
c.switch %i[h hilite], default_value: settings.dig('search', 'highlight')
|
|
1798
1823
|
|
|
@@ -1846,6 +1871,8 @@ command :last do |c|
|
|
|
1846
1871
|
else
|
|
1847
1872
|
last = wwid.last(times: true, section: options[:section],
|
|
1848
1873
|
options: {
|
|
1874
|
+
config_template: options[:config_template],
|
|
1875
|
+
template: options[:template],
|
|
1849
1876
|
duration: options[:duration],
|
|
1850
1877
|
search: options[:search],
|
|
1851
1878
|
fuzzy: options[:fuzzy],
|
|
@@ -1880,6 +1907,14 @@ command :recent do |c|
|
|
|
1880
1907
|
c.desc 'Show time intervals on @done tasks'
|
|
1881
1908
|
c.switch %i[t times], default_value: true, negatable: true
|
|
1882
1909
|
|
|
1910
|
+
c.desc "Output using a template from configuration"
|
|
1911
|
+
c.arg_name 'TEMPLATE_KEY'
|
|
1912
|
+
c.flag [:config_template], type: TemplateName, default_value: 'recent'
|
|
1913
|
+
|
|
1914
|
+
c.desc 'Override output format with a template string containing %placeholders'
|
|
1915
|
+
c.arg_name 'TEMPLATE_STRING'
|
|
1916
|
+
c.flag [:template]
|
|
1917
|
+
|
|
1883
1918
|
c.desc 'Show elapsed time on entries without @done tag'
|
|
1884
1919
|
c.switch [:duration]
|
|
1885
1920
|
|
|
@@ -1923,7 +1958,9 @@ command :recent do |c|
|
|
|
1923
1958
|
times: options[:times],
|
|
1924
1959
|
totals: options[:totals],
|
|
1925
1960
|
interactive: options[:interactive],
|
|
1926
|
-
duration: options[:duration]
|
|
1961
|
+
duration: options[:duration],
|
|
1962
|
+
config_template: options[:config_template],
|
|
1963
|
+
template: options[:template]
|
|
1927
1964
|
}
|
|
1928
1965
|
|
|
1929
1966
|
Doing::Pager::page wwid.recent(count, section.cap_first, opts)
|
|
@@ -2038,6 +2075,14 @@ command :show do |c|
|
|
|
2038
2075
|
c.desc 'Only show items with recorded time intervals'
|
|
2039
2076
|
c.switch [:only_timed], default_value: false, negatable: false
|
|
2040
2077
|
|
|
2078
|
+
c.desc "Output using a template from configuration"
|
|
2079
|
+
c.arg_name 'TEMPLATE_KEY'
|
|
2080
|
+
c.flag [:config_template], type: TemplateName, default_value: 'default'
|
|
2081
|
+
|
|
2082
|
+
c.desc 'Override output format with a template string containing %placeholders'
|
|
2083
|
+
c.arg_name 'TEMPLATE_STRING'
|
|
2084
|
+
c.flag [:template]
|
|
2085
|
+
|
|
2041
2086
|
c.desc 'Select section or tag to display from a menu'
|
|
2042
2087
|
c.switch %i[m menu], negatable: false, default_value: false
|
|
2043
2088
|
|
|
@@ -2094,7 +2139,7 @@ command :show do |c|
|
|
|
2094
2139
|
|
|
2095
2140
|
options[:times] = true if options[:totals]
|
|
2096
2141
|
|
|
2097
|
-
template = settings['templates'][
|
|
2142
|
+
template = settings['templates'][options[:config_template]].deep_merge({
|
|
2098
2143
|
'wrap_width' => settings['wrap_width'] || 0,
|
|
2099
2144
|
'date_format' => settings['default_date_format'],
|
|
2100
2145
|
'order' => settings['order'] || 'asc',
|
|
@@ -2158,6 +2203,7 @@ end
|
|
|
2158
2203
|
|
|
2159
2204
|
# @@tags
|
|
2160
2205
|
desc 'List all tags in the current Doing file'
|
|
2206
|
+
arg_name 'MAX_COUNT', optional: true, type: Integer
|
|
2161
2207
|
command :tags do |c|
|
|
2162
2208
|
c.desc 'Section'
|
|
2163
2209
|
c.arg_name 'SECTION_NAME'
|
|
@@ -2166,6 +2212,9 @@ command :tags do |c|
|
|
|
2166
2212
|
c.desc 'Show count of occurrences'
|
|
2167
2213
|
c.switch %i[c counts]
|
|
2168
2214
|
|
|
2215
|
+
c.desc 'Output in a single line with @ symbols. Ignored if --counts is specified.'
|
|
2216
|
+
c.switch %i[l line]
|
|
2217
|
+
|
|
2169
2218
|
c.desc 'Sort by name or count'
|
|
2170
2219
|
c.arg_name 'SORT_ORDER'
|
|
2171
2220
|
c.flag %i[sort], default_value: 'name', must_match: /^(?:n(?:ame)?|c(?:ount)?)$/
|
|
@@ -2209,6 +2258,7 @@ command :tags do |c|
|
|
|
2209
2258
|
|
|
2210
2259
|
c.action do |_global, options, args|
|
|
2211
2260
|
section = wwid.guess_section(options[:section]) || options[:section].cap_first
|
|
2261
|
+
options[:count] = args.count.positive? ? args[0].to_i : 0
|
|
2212
2262
|
|
|
2213
2263
|
items = wwid.filter_items([], opt: options)
|
|
2214
2264
|
|
|
@@ -2236,7 +2286,11 @@ command :tags do |c|
|
|
|
2236
2286
|
if options[:counts]
|
|
2237
2287
|
tags.each { |t, c| puts "#{t} (#{c})" }
|
|
2238
2288
|
else
|
|
2239
|
-
|
|
2289
|
+
if options[:line]
|
|
2290
|
+
puts tags.map { |t, c| t }.to_tags.join(' ')
|
|
2291
|
+
else
|
|
2292
|
+
tags.each { |t, c| puts "#{t}" }
|
|
2293
|
+
end
|
|
2240
2294
|
end
|
|
2241
2295
|
end
|
|
2242
2296
|
end
|
|
@@ -2274,6 +2328,14 @@ command :today do |c|
|
|
|
2274
2328
|
c.arg_name 'FORMAT'
|
|
2275
2329
|
c.flag %i[o output]
|
|
2276
2330
|
|
|
2331
|
+
c.desc "Output using a template from configuration"
|
|
2332
|
+
c.arg_name 'TEMPLATE_KEY'
|
|
2333
|
+
c.flag [:config_template], type: TemplateName, default_value: 'today'
|
|
2334
|
+
|
|
2335
|
+
c.desc 'Override output format with a template string containing %placeholders'
|
|
2336
|
+
c.arg_name 'TEMPLATE_STRING'
|
|
2337
|
+
c.flag [:template]
|
|
2338
|
+
|
|
2277
2339
|
c.desc 'View entries before specified time (e.g. 8am, 12:30pm, 15:00)'
|
|
2278
2340
|
c.arg_name 'TIME_STRING'
|
|
2279
2341
|
c.flag [:before]
|
|
@@ -2293,7 +2355,7 @@ command :today do |c|
|
|
|
2293
2355
|
|
|
2294
2356
|
options[:times] = true if options[:totals]
|
|
2295
2357
|
options[:sort_tags] = options[:tag_sort] =~ /^n/i
|
|
2296
|
-
filter_options = %i[after before duration from section sort_tags totals].each_with_object({}) { |k, hsh| hsh[k] = options[k] }
|
|
2358
|
+
filter_options = %i[after before duration from section sort_tags totals template config_template].each_with_object({}) { |k, hsh| hsh[k] = options[k] }
|
|
2297
2359
|
|
|
2298
2360
|
Doing::Pager.page wwid.today(options[:times], options[:output], filter_options).chomp
|
|
2299
2361
|
end
|
|
@@ -2333,6 +2395,14 @@ command :on do |c|
|
|
|
2333
2395
|
c.arg_name 'FORMAT'
|
|
2334
2396
|
c.flag %i[o output]
|
|
2335
2397
|
|
|
2398
|
+
c.desc "Output using a template from configuration"
|
|
2399
|
+
c.arg_name 'TEMPLATE_KEY'
|
|
2400
|
+
c.flag [:config_template], type: TemplateName, default_value: 'default'
|
|
2401
|
+
|
|
2402
|
+
c.desc 'Override output format with a template string containing %placeholders'
|
|
2403
|
+
c.arg_name 'TEMPLATE_STRING'
|
|
2404
|
+
c.flag [:template]
|
|
2405
|
+
|
|
2336
2406
|
c.action do |_global_options, options, args|
|
|
2337
2407
|
raise DoingRuntimeError, %(Invalid output type "#{options[:output]}") if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)
|
|
2338
2408
|
|
|
@@ -2354,7 +2424,7 @@ command :on do |c|
|
|
|
2354
2424
|
options[:sort_tags] = options[:tag_sort] =~ /^n/i
|
|
2355
2425
|
|
|
2356
2426
|
Doing::Pager.page wwid.list_date([start, finish], options[:section], options[:times], options[:output],
|
|
2357
|
-
{ duration: options[:duration], totals: options[:totals], sort_tags: options[:sort_tags] }).chomp
|
|
2427
|
+
{ template: options[:template], config_template: options[:config_template], duration: options[:duration], totals: options[:totals], sort_tags: options[:sort_tags] }).chomp
|
|
2358
2428
|
end
|
|
2359
2429
|
end
|
|
2360
2430
|
|
|
@@ -2390,6 +2460,14 @@ command :since do |c|
|
|
|
2390
2460
|
c.arg_name 'FORMAT'
|
|
2391
2461
|
c.flag %i[o output]
|
|
2392
2462
|
|
|
2463
|
+
c.desc "Output using a template from configuration"
|
|
2464
|
+
c.arg_name 'TEMPLATE_KEY'
|
|
2465
|
+
c.flag [:config_template], type: TemplateName, default_value: 'default'
|
|
2466
|
+
|
|
2467
|
+
c.desc 'Override output format with a template string containing %placeholders'
|
|
2468
|
+
c.arg_name 'TEMPLATE_STRING'
|
|
2469
|
+
c.flag [:template]
|
|
2470
|
+
|
|
2393
2471
|
c.action do |_global_options, options, args|
|
|
2394
2472
|
raise DoingRuntimeError, %(Invalid output type "#{options[:output]}") if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)
|
|
2395
2473
|
|
|
@@ -2411,7 +2489,7 @@ command :since do |c|
|
|
|
2411
2489
|
options[:sort_tags] = options[:tag_sort] =~ /^n/i
|
|
2412
2490
|
|
|
2413
2491
|
Doing::Pager.page wwid.list_date([start, finish], options[:section], options[:times], options[:output],
|
|
2414
|
-
{ duration: options[:duration], totals: options[:totals], sort_tags: options[:sort_tags] }).chomp
|
|
2492
|
+
{ template: options[:template], config_template: options[:config_template], duration: options[:duration], totals: options[:totals], sort_tags: options[:sort_tags] }).chomp
|
|
2415
2493
|
end
|
|
2416
2494
|
end
|
|
2417
2495
|
|
|
@@ -2671,6 +2749,14 @@ command :yesterday do |c|
|
|
|
2671
2749
|
c.arg_name 'FORMAT'
|
|
2672
2750
|
c.flag %i[o output]
|
|
2673
2751
|
|
|
2752
|
+
c.desc "Output using a template from configuration"
|
|
2753
|
+
c.arg_name 'TEMPLATE_KEY'
|
|
2754
|
+
c.flag [:config_template], type: TemplateName, default_value: 'today'
|
|
2755
|
+
|
|
2756
|
+
c.desc 'Override output format with a template string containing %placeholders'
|
|
2757
|
+
c.arg_name 'TEMPLATE_STRING'
|
|
2758
|
+
c.flag [:template]
|
|
2759
|
+
|
|
2674
2760
|
c.desc 'Show time intervals on @done tasks'
|
|
2675
2761
|
c.switch %i[t times], default_value: true, negatable: true
|
|
2676
2762
|
|
|
@@ -2712,16 +2798,10 @@ command :yesterday do |c|
|
|
|
2712
2798
|
end.join(' to ').split_date_range
|
|
2713
2799
|
end
|
|
2714
2800
|
|
|
2715
|
-
opt =
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
from: options[:from],
|
|
2720
|
-
sort_tags: options[:sort_tags],
|
|
2721
|
-
tag_order: options[:tag_order].normalize_order,
|
|
2722
|
-
totals: options[:totals],
|
|
2723
|
-
order: settings.dig('templates', 'today', 'order')
|
|
2724
|
-
}
|
|
2801
|
+
opt = options.dup
|
|
2802
|
+
opt[:tag_order] = options[:tag_order].normalize_order
|
|
2803
|
+
opt[:order] = settings.dig('templates', options[:config_template], 'order')
|
|
2804
|
+
|
|
2725
2805
|
Doing::Pager.page wwid.yesterday(options[:section], options[:times], options[:output], opt).chomp
|
|
2726
2806
|
end
|
|
2727
2807
|
end
|
|
@@ -3582,17 +3662,44 @@ end
|
|
|
3582
3662
|
|
|
3583
3663
|
# @@changelog @@changes
|
|
3584
3664
|
desc 'List recent changes in Doing'
|
|
3585
|
-
long_desc
|
|
3586
|
-
|
|
3665
|
+
long_desc %(Display a formatted list of changes in recent versions.
|
|
3666
|
+
|
|
3667
|
+
Without flags, displays only the most recent version.
|
|
3668
|
+
Use --lookup or --all for history.)
|
|
3669
|
+
command %i[changes changelog] do |c|
|
|
3670
|
+
c.desc 'Display all versions'
|
|
3671
|
+
c.switch %i[a all], default_value: false, negatable: false
|
|
3672
|
+
|
|
3673
|
+
c.desc %(Look up a specific version. Specify versions as "MAJ.MIN.PATCH", MIN
|
|
3674
|
+
and PATCH are optional. Use > or < to see all changes since or prior
|
|
3675
|
+
to a version.)
|
|
3676
|
+
c.arg_name 'VERSION'
|
|
3677
|
+
c.flag %i[l lookup], must_match: /^(?:(?:(?:[<>=]|p(?:rior)|b(?:efore)|o(?:lder)|s(?:ince)|a(?:fter)|n(?:ewer))? *[\d.*?]+ *)+|(?:[\d.]+ *-+ *[\d.]+))$/
|
|
3678
|
+
|
|
3679
|
+
c.desc %(Show changelogs matching search terms (uses pattern-based searching).
|
|
3680
|
+
Add slashes to search with regular expressions, e.g. `--search "/output.*flag/"`)
|
|
3681
|
+
c.flag %i[s search]
|
|
3682
|
+
|
|
3683
|
+
c.example 'doing changes', desc: 'View changes in the current version'
|
|
3684
|
+
c.example 'doing changes --all', desc: 'See the entire changelog'
|
|
3685
|
+
c.example 'doing changes --lookup 2.0.21', desc: 'See changes from version 2.0.21'
|
|
3686
|
+
c.example 'doing changes --lookup "> 2.1"', desc: 'See all changes since 2.1.0'
|
|
3687
|
+
c.example 'doing changes --search "tags +bool"', desc: 'See all changes containing "tags" and "bool"'
|
|
3688
|
+
c.example 'doing changes -l "> 2.1" -s "pattern"', desc: 'Lookup and search can be combined'
|
|
3689
|
+
|
|
3690
|
+
|
|
3587
3691
|
c.action do |_global_options, options, args|
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
|
|
3592
|
-
|
|
3593
|
-
|
|
3594
|
-
|
|
3595
|
-
|
|
3692
|
+
cl = Doing::Changes.new(lookup: options[:lookup], search: options[:search])
|
|
3693
|
+
|
|
3694
|
+
content = if options[:all] || options[:search] || options[:lookup]
|
|
3695
|
+
cl.to_s
|
|
3696
|
+
else
|
|
3697
|
+
cl.latest
|
|
3698
|
+
end
|
|
3699
|
+
|
|
3700
|
+
parsed = TTY::Markdown.parse(content, width: 80, symbols: {override: {bullet: "•"}})
|
|
3701
|
+
Doing::Pager.paginate = true
|
|
3702
|
+
Doing::Pager.page parsed
|
|
3596
3703
|
end
|
|
3597
3704
|
end
|
|
3598
3705
|
|
data/docs/doc/Array.html
CHANGED
|
@@ -579,15 +579,20 @@ with</p>
|
|
|
579
579
|
<div class="discussion">
|
|
580
580
|
<p>Convert strings to @tags</p>
|
|
581
581
|
|
|
582
|
-
<p>['one', '@two', 'three'].to_tags</p>
|
|
583
|
-
|
|
584
|
-
<h1 id="one-two-three">=> ['@one', '@two', '@three']</h1>
|
|
585
|
-
|
|
586
582
|
|
|
587
583
|
</div>
|
|
588
584
|
</div>
|
|
589
585
|
<div class="tags">
|
|
590
586
|
|
|
587
|
+
<div class="examples">
|
|
588
|
+
<p class="tag_title">Examples:</p>
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
<pre class="example code"><code><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>one</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>@two</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>three</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_tags'>to_tags</span>
|
|
592
|
+
<span class='comment'># => ['@one', '@two', '@three']</span></code></pre>
|
|
593
|
+
|
|
594
|
+
</div>
|
|
595
|
+
|
|
591
596
|
<p class="tag_title">Returns:</p>
|
|
592
597
|
<ul class="return">
|
|
593
598
|
|
|
@@ -626,7 +631,7 @@ with</p>
|
|
|
626
631
|
</div>
|
|
627
632
|
|
|
628
633
|
<div id="footer">
|
|
629
|
-
Generated on
|
|
634
|
+
Generated on Sat Jan 22 16:00:27 2022 by
|
|
630
635
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
631
636
|
0.9.27 (ruby-3.0.1).
|
|
632
637
|
</div>
|
|
@@ -283,7 +283,7 @@
|
|
|
283
283
|
</div>
|
|
284
284
|
|
|
285
285
|
<div id="footer">
|
|
286
|
-
Generated on
|
|
286
|
+
Generated on Sat Jan 22 16:00:28 2022 by
|
|
287
287
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
288
288
|
0.9.27 (ruby-3.0.1).
|
|
289
289
|
</div>
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
</div>
|
|
163
163
|
|
|
164
164
|
<div id="footer">
|
|
165
|
-
Generated on
|
|
165
|
+
Generated on Sat Jan 22 16:00:28 2022 by
|
|
166
166
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
167
167
|
0.9.27 (ruby-3.0.1).
|
|
168
168
|
</div>
|
|
@@ -407,7 +407,7 @@
|
|
|
407
407
|
</div>
|
|
408
408
|
|
|
409
409
|
<div id="footer">
|
|
410
|
-
Generated on
|
|
410
|
+
Generated on Sat Jan 22 16:00:28 2022 by
|
|
411
411
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
412
412
|
0.9.27 (ruby-3.0.1).
|
|
413
413
|
</div>
|
|
@@ -125,7 +125,7 @@ parser. In order to do that, a new "clause" node is added to the parse
|
|
|
125
125
|
</div>
|
|
126
126
|
|
|
127
127
|
<div id="footer">
|
|
128
|
-
Generated on
|
|
128
|
+
Generated on Sat Jan 22 16:00:28 2022 by
|
|
129
129
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
130
130
|
0.9.27 (ruby-3.0.1).
|
|
131
131
|
</div>
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
</div>
|
|
115
115
|
|
|
116
116
|
<div id="footer">
|
|
117
|
-
Generated on
|
|
117
|
+
Generated on Sat Jan 22 16:00:28 2022 by
|
|
118
118
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
119
119
|
0.9.27 (ruby-3.0.1).
|
|
120
120
|
</div>
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
</div>
|
|
106
106
|
|
|
107
107
|
<div id="footer">
|
|
108
|
-
Generated on
|
|
108
|
+
Generated on Sat Jan 22 16:00:27 2022 by
|
|
109
109
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
110
110
|
0.9.27 (ruby-3.0.1).
|
|
111
111
|
</div>
|
data/docs/doc/Doing/Color.html
CHANGED
|
@@ -512,7 +512,7 @@ ANSI-sequences are stripped from the string.</p>
|
|
|
512
512
|
</div>
|
|
513
513
|
|
|
514
514
|
<div id="footer">
|
|
515
|
-
Generated on
|
|
515
|
+
Generated on Sat Jan 22 16:00:27 2022 by
|
|
516
516
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
517
517
|
0.9.27 (ruby-3.0.1).
|
|
518
518
|
</div>
|
|
@@ -206,7 +206,7 @@ stdout</p>
|
|
|
206
206
|
</div>
|
|
207
207
|
|
|
208
208
|
<div id="footer">
|
|
209
|
-
Generated on
|
|
209
|
+
Generated on Sat Jan 22 16:00:27 2022 by
|
|
210
210
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
211
211
|
0.9.27 (ruby-3.0.1).
|
|
212
212
|
</div>
|
|
@@ -534,7 +534,7 @@
|
|
|
534
534
|
<li class="public ">
|
|
535
535
|
<span class="summary_signature">
|
|
536
536
|
|
|
537
|
-
<a href="#resolve_key_path-instance_method" title="#resolve_key_path (instance method)">#<strong>resolve_key_path</strong>(keypath, create: false) ⇒ Array </a>
|
|
537
|
+
<a href="#resolve_key_path-instance_method" title="#resolve_key_path (instance method)">#<strong>resolve_key_path</strong>(keypath, create: false, distance: 2) ⇒ Array </a>
|
|
538
538
|
|
|
539
539
|
|
|
540
540
|
|
|
@@ -956,7 +956,7 @@ defaults.</p>
|
|
|
956
956
|
<div class="method_details ">
|
|
957
957
|
<h3 class="signature " id="resolve_key_path-instance_method">
|
|
958
958
|
|
|
959
|
-
#<strong>resolve_key_path</strong>(keypath, create: false) ⇒ <tt><span class='object_link'><a href="../Array.html" title="Array (class)">Array</a></span></tt>
|
|
959
|
+
#<strong>resolve_key_path</strong>(keypath, create: false, distance: 2) ⇒ <tt><span class='object_link'><a href="../Array.html" title="Array (class)">Array</a></span></tt>
|
|
960
960
|
|
|
961
961
|
|
|
962
962
|
|
|
@@ -1106,7 +1106,7 @@ matched, first match wins)</p>
|
|
|
1106
1106
|
</div>
|
|
1107
1107
|
|
|
1108
1108
|
<div id="footer">
|
|
1109
|
-
Generated on
|
|
1109
|
+
Generated on Sat Jan 22 16:00:28 2022 by
|
|
1110
1110
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1111
1111
|
0.9.27 (ruby-3.0.1).
|
|
1112
1112
|
</div>
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
</div>
|
|
177
177
|
|
|
178
178
|
<div id="footer">
|
|
179
|
-
Generated on
|
|
179
|
+
Generated on Sat Jan 22 16:00:27 2022 by
|
|
180
180
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
181
181
|
0.9.27 (ruby-3.0.1).
|
|
182
182
|
</div>
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
</div>
|
|
177
177
|
|
|
178
178
|
<div id="footer">
|
|
179
|
-
Generated on
|
|
179
|
+
Generated on Sat Jan 22 16:00:27 2022 by
|
|
180
180
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
181
181
|
0.9.27 (ruby-3.0.1).
|
|
182
182
|
</div>
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
</div>
|
|
177
177
|
|
|
178
178
|
<div id="footer">
|
|
179
|
-
Generated on
|
|
179
|
+
Generated on Sat Jan 22 16:00:27 2022 by
|
|
180
180
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
181
181
|
0.9.27 (ruby-3.0.1).
|
|
182
182
|
</div>
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
</div>
|
|
177
177
|
|
|
178
178
|
<div id="footer">
|
|
179
|
-
Generated on
|
|
179
|
+
Generated on Sat Jan 22 16:00:27 2022 by
|
|
180
180
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
181
181
|
0.9.27 (ruby-3.0.1).
|
|
182
182
|
</div>
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
</div>
|
|
177
177
|
|
|
178
178
|
<div id="footer">
|
|
179
|
-
Generated on
|
|
179
|
+
Generated on Sat Jan 22 16:00:27 2022 by
|
|
180
180
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
181
181
|
0.9.27 (ruby-3.0.1).
|
|
182
182
|
</div>
|