doing 2.1.22 → 2.1.23
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|