doing 2.1.21 → 2.1.25

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 +51 -13
  6. data/Gemfile.lock +1 -1
  7. data/README.md +1 -1
  8. data/Rakefile +6 -3
  9. data/bin/doing +254 -103
  10. data/docs/doc/Array.html +74 -34
  11. data/docs/doc/BooleanTermParser/Clause.html +5 -5
  12. data/docs/doc/BooleanTermParser/Operator.html +4 -4
  13. data/docs/doc/BooleanTermParser/Query.html +8 -8
  14. data/docs/doc/BooleanTermParser/QueryParser.html +2 -2
  15. data/docs/doc/BooleanTermParser/QueryTransformer.html +2 -2
  16. data/docs/doc/BooleanTermParser.html +1 -1
  17. data/docs/doc/Doing/Color.html +4 -4
  18. data/docs/doc/Doing/Completion.html +2 -2
  19. data/docs/doc/Doing/Configuration.html +16 -18
  20. data/docs/doc/Doing/Errors/DoingNoTraceError.html +2 -2
  21. data/docs/doc/Doing/Errors/DoingRuntimeError.html +2 -2
  22. data/docs/doc/Doing/Errors/DoingStandardError.html +2 -2
  23. data/docs/doc/Doing/Errors/EmptyInput.html +2 -2
  24. data/docs/doc/Doing/Errors/NoResults.html +2 -2
  25. data/docs/doc/Doing/Errors/PluginException.html +3 -3
  26. data/docs/doc/Doing/Errors/UserCancelled.html +2 -2
  27. data/docs/doc/Doing/Errors/WrongCommand.html +2 -2
  28. data/docs/doc/Doing/Errors.html +1 -1
  29. data/docs/doc/Doing/Hooks.html +6 -6
  30. data/docs/doc/Doing/Item.html +50 -16
  31. data/docs/doc/Doing/Items.html +10 -10
  32. data/docs/doc/Doing/LogAdapter.html +24 -24
  33. data/docs/doc/Doing/Note.html +7 -7
  34. data/docs/doc/Doing/Pager.html +4 -4
  35. data/docs/doc/Doing/Plugins.html +7 -7
  36. data/docs/doc/Doing/Prompt.html +16 -16
  37. data/docs/doc/Doing/Section.html +6 -6
  38. data/docs/doc/Doing/TemplateString.html +8 -8
  39. data/docs/doc/Doing/Types.html +206 -0
  40. data/docs/doc/Doing/Util/Backup.html +10 -10
  41. data/docs/doc/Doing/Util.html +16 -19
  42. data/docs/doc/Doing/WWID.html +65 -53
  43. data/docs/doc/Doing.html +4 -4
  44. data/docs/doc/GLI/Commands/Help.html +185 -0
  45. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +17 -17
  46. data/docs/doc/GLI/Commands.html +5 -3
  47. data/docs/doc/GLI.html +4 -2
  48. data/docs/doc/Hash.html +119 -21
  49. data/docs/doc/Numeric.html +5 -5
  50. data/docs/doc/PhraseParser/Operator.html +4 -4
  51. data/docs/doc/PhraseParser/PhraseClause.html +5 -5
  52. data/docs/doc/PhraseParser/Query.html +10 -10
  53. data/docs/doc/PhraseParser/QueryParser.html +2 -2
  54. data/docs/doc/PhraseParser/QueryTransformer.html +2 -2
  55. data/docs/doc/PhraseParser/TermClause.html +5 -5
  56. data/docs/doc/PhraseParser.html +1 -1
  57. data/docs/doc/Status.html +7 -7
  58. data/docs/doc/String.html +206 -51
  59. data/docs/doc/Symbol.html +8 -8
  60. data/docs/doc/Time.html +6 -6
  61. data/docs/doc/_index.html +51 -14
  62. data/docs/doc/class_list.html +1 -1
  63. data/docs/doc/file.README.html +2 -2
  64. data/docs/doc/index.html +2 -2
  65. data/docs/doc/method_list.html +348 -252
  66. data/docs/doc/top-level-namespace.html +2 -93
  67. data/docs/index.md +1 -1
  68. data/doing.rdoc +177 -20
  69. data/example_plugin.rb +2 -2
  70. data/lib/completion/_doing.zsh +24 -24
  71. data/lib/completion/doing.bash +31 -20
  72. data/lib/completion/doing.fish +32 -10
  73. data/lib/doing/array.rb +5 -4
  74. data/lib/doing/array_chronify.rb +4 -3
  75. data/lib/doing/changelog/change.rb +115 -0
  76. data/lib/doing/changelog/changes.rb +73 -0
  77. data/lib/doing/changelog/entry.rb +21 -0
  78. data/lib/doing/changelog/version.rb +97 -0
  79. data/lib/doing/changelog.rb +6 -0
  80. data/lib/doing/completion/fish_completion.rb +2 -1
  81. data/lib/doing/configuration.rb +20 -14
  82. data/lib/doing/good.rb +64 -0
  83. data/lib/doing/hash.rb +28 -5
  84. data/lib/doing/help_monkey_patch.rb +31 -0
  85. data/lib/doing/hooks.rb +8 -4
  86. data/lib/doing/item.rb +24 -35
  87. data/lib/doing/log_adapter.rb +1 -1
  88. data/lib/doing/pager.rb +1 -1
  89. data/lib/doing/plugins/export/template_export.rb +9 -3
  90. data/lib/doing/plugins/import/calendar_import.rb +1 -1
  91. data/lib/doing/plugins/import/doing_import.rb +1 -1
  92. data/lib/doing/plugins/import/timing_import.rb +1 -1
  93. data/lib/doing/prompt.rb +4 -2
  94. data/lib/doing/string.rb +30 -12
  95. data/lib/doing/string_chronify.rb +1 -1
  96. data/lib/doing/template_string.rb +9 -2
  97. data/lib/doing/types.rb +23 -16
  98. data/lib/doing/util.rb +12 -11
  99. data/lib/doing/version.rb +1 -1
  100. data/lib/doing/wwid.rb +65 -46
  101. data/lib/doing.rb +3 -0
  102. data/lib/helpers/threaded_tests.rb +106 -99
  103. data/lib/helpers/threaded_tests_string.rb +50 -0
  104. metadata +12 -2
@@ -86,102 +86,11 @@
86
86
 
87
87
 
88
88
 
89
- <strong class="classes">Classes:</strong> <span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span>, <span class='object_link'><a href="Hash.html" title="Hash (class)">Hash</a></span>, <span class='object_link'><a href="Numeric.html" title="Numeric (class)">Numeric</a></span>, <span class='object_link'><a href="String.html" title="String (class)">String</a></span>, <span class='object_link'><a href="Symbol.html" title="Symbol (class)">Symbol</a></span>, <span class='object_link'><a href="Time.html" title="Time (class)">Time</a></span>
89
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span>, <span class='object_link'><a href="FalseClass.html" title="FalseClass (class)">FalseClass</a></span>, <span class='object_link'><a href="Hash.html" title="Hash (class)">Hash</a></span>, <span class='object_link'><a href="Numeric.html" title="Numeric (class)">Numeric</a></span>, <span class='object_link'><a href="Object.html" title="Object (class)">Object</a></span>, <span class='object_link'><a href="String.html" title="String (class)">String</a></span>, <span class='object_link'><a href="Symbol.html" title="Symbol (class)">Symbol</a></span>, <span class='object_link'><a href="Time.html" title="Time (class)">Time</a></span>, <span class='object_link'><a href="TrueClass.html" title="TrueClass (class)">TrueClass</a></span>
90
90
 
91
91
 
92
92
  </p>
93
93
 
94
-
95
- <h2>
96
- Constant Summary
97
- <small><a href="#" class="constants_summary_toggle">collapse</a></small>
98
- </h2>
99
-
100
- <dl class="constants">
101
-
102
- <dt id="REGEX_BOOL-constant" class="">REGEX_BOOL =
103
-
104
- </dt>
105
- <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$</span><span class='regexp_end'>/i</span></span></pre></dd>
106
-
107
- <dt id="REGEX_SORT_ORDER-constant" class="">REGEX_SORT_ORDER =
108
-
109
- </dt>
110
- <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^(?:a(?:sc)?|d(?:esc)?)$</span><span class='regexp_end'>/i</span></span></pre></dd>
111
-
112
- <dt id="REGEX_VALUE_QUERY-constant" class="">REGEX_VALUE_QUERY =
113
-
114
- </dt>
115
- <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^(?:!)?@?(?:\S+) +(?:!?[&lt;&gt;=][=*]?|[$*^]=) +(?:.*?)$</span><span class='regexp_end'>/</span></span></pre></dd>
116
-
117
- <dt id="REGEX_CLOCK-constant" class="">REGEX_CLOCK =
118
-
119
- </dt>
120
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>(?:\d{1,2}+(?::\d{1,2}+)?(?: *(?:am|pm))?|midnight|noon)</span><span class='tstring_end'>&#39;</span></span></pre></dd>
121
-
122
- <dt id="REGEX_TIME-constant" class="">REGEX_TIME =
123
-
124
- </dt>
125
- <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="top-level-namespace.html#REGEX_CLOCK-constant" title="REGEX_CLOCK (constant)">REGEX_CLOCK</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>$</span><span class='regexp_end'>/i</span></span></pre></dd>
126
-
127
- <dt id="REGEX_DAY-constant" class="">REGEX_DAY =
128
-
129
- </dt>
130
- <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^(mon|tue|wed|thur?|fri|sat|sun)(\w+(day)?)?$</span><span class='regexp_end'>/i</span></span></pre></dd>
131
-
132
- <dt id="REGEX_RANGE_INDICATOR-constant" class="">REGEX_RANGE_INDICATOR =
133
-
134
- </dt>
135
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'> +(?:to|through|thru|(?:un)?til|-+) +</span><span class='tstring_end'>&#39;</span></span></pre></dd>
136
-
137
- <dt id="REGEX_RANGE-constant" class="">REGEX_RANGE =
138
-
139
- </dt>
140
- <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^\S+</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="top-level-namespace.html#REGEX_RANGE_INDICATOR-constant" title="REGEX_RANGE_INDICATOR (constant)">REGEX_RANGE_INDICATOR</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>+\S+</span><span class='regexp_end'>/i</span></span></pre></dd>
141
-
142
- <dt id="REGEX_TIME_RANGE-constant" class="">REGEX_TIME_RANGE =
143
-
144
- </dt>
145
- <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="top-level-namespace.html#REGEX_CLOCK-constant" title="REGEX_CLOCK (constant)">REGEX_CLOCK</a></span></span><span class='embexpr_end'>}</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="top-level-namespace.html#REGEX_RANGE_INDICATOR-constant" title="REGEX_RANGE_INDICATOR (constant)">REGEX_RANGE_INDICATOR</a></span></span><span class='embexpr_end'>}</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="top-level-namespace.html#REGEX_CLOCK-constant" title="REGEX_CLOCK (constant)">REGEX_CLOCK</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>$</span><span class='regexp_end'>/i</span></span></pre></dd>
146
-
147
- <dt id="InvalidExportType-constant" class="">InvalidExportType =
148
-
149
- </dt>
150
- <dd><pre class="code"><span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>RuntimeError</span><span class='rparen'>)</span></pre></dd>
151
-
152
- <dt id="MissingConfigFile-constant" class="">MissingConfigFile =
153
-
154
- </dt>
155
- <dd><pre class="code"><span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>RuntimeError</span><span class='rparen'>)</span></pre></dd>
156
-
157
- <dt id="TagArray-constant" class="">TagArray =
158
-
159
- </dt>
160
- <dd><pre class="code"><span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span></span><span class='rparen'>)</span></pre></dd>
161
-
162
- <dt id="DateBeginString-constant" class="">DateBeginString =
163
-
164
- </dt>
165
- <dd><pre class="code"><span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span></pre></dd>
166
-
167
- <dt id="DateEndString-constant" class="">DateEndString =
168
-
169
- </dt>
170
- <dd><pre class="code"><span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span></pre></dd>
171
-
172
- <dt id="DateRangeString-constant" class="">DateRangeString =
173
-
174
- </dt>
175
- <dd><pre class="code"><span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span></span><span class='rparen'>)</span></pre></dd>
176
-
177
- <dt id="DateIntervalString-constant" class="">DateIntervalString =
178
-
179
- </dt>
180
- <dd><pre class="code"><span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>DateTime</span><span class='rparen'>)</span></pre></dd>
181
-
182
- </dl>
183
-
184
-
185
94
 
186
95
 
187
96
 
@@ -193,7 +102,7 @@
193
102
  </div>
194
103
 
195
104
  <div id="footer">
196
- Generated on Thu Jan 20 12:10:33 2022 by
105
+ Generated on Sun Jan 23 09:24:04 2022 by
197
106
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
198
107
  0.9.27 (ruby-3.0.1).
199
108
  </div>
data/docs/index.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
 
10
10
 
11
- The current version of `doing` is 2.1.13.
11
+ The current version of `doing` is 2.1.21.
12
12
 
13
13
  Find all of the documentation in the [doing wiki][wiki].
14
14
 
data/doing.rdoc CHANGED
@@ -5,7 +5,7 @@ record of what you've been doing, complete with tag-based time tracking. The
5
5
  command line tool allows you to add entries, annotate with tags and notes, and
6
6
  view your entries with myriad options, with a focus on a "natural" language syntax.
7
7
 
8
- v2.1.21
8
+ v2.1.25
9
9
 
10
10
  === Global Options
11
11
  === --config_file arg
@@ -32,7 +32,7 @@ Verbose output
32
32
 
33
33
 
34
34
 
35
- === --[no-]default
35
+ === --default
36
36
  Answer yes/no menus with default option
37
37
 
38
38
 
@@ -165,7 +165,7 @@ Prompt for note via multi-line input
165
165
 
166
166
 
167
167
  ===== -e|--editor
168
- Edit duplicated entry with vim before adding
168
+ Edit duplicated entry with /opt/homebrew/bin/vim before adding
169
169
 
170
170
 
171
171
 
@@ -403,10 +403,37 @@ Force exact search string matching (case sensitive)
403
403
 
404
404
 
405
405
 
406
- ==== Command: <tt>changelog|changes </tt>
406
+ ==== Command: <tt>changes|changelog </tt>
407
407
  List recent changes in Doing
408
408
 
409
- Display a formatted list of changes in recent versions, latest at the top
409
+ Display a formatted list of changes in recent versions.
410
+
411
+ Without flags, displays only the most recent version.
412
+ Use --lookup or --all for history.
413
+ ===== Options
414
+ ===== -l|--lookup VERSION
415
+
416
+ Look up a specific version. Specify versions as "MAJ.MIN.PATCH", MIN
417
+ and PATCH are optional. Use > or < to see all changes since or prior
418
+ to a version.
419
+
420
+ [Default Value] None
421
+ [Must Match] (?-mix:^(?:(?:(?:[<>=]|p(?:rior)|b(?:efore)|o(?:lder)|s(?:ince)|a(?:fter)|n(?:ewer))? *[\d.*?]+ *)+|(?:[\d.]+ *-+ *[\d.]+))$)
422
+
423
+
424
+ ===== -s|--search arg
425
+
426
+ Show changelogs matching search terms (uses pattern-based searching).
427
+ Add slashes to search with regular expressions, e.g. `--search "/output.*flag/"`
428
+
429
+ [Default Value] None
430
+
431
+
432
+ ===== -a|--all
433
+ Display all versions
434
+
435
+
436
+
410
437
  ==== Command: <tt>choose </tt>
411
438
  Select a section to display from a menu
412
439
 
@@ -528,7 +555,7 @@ Update default config file, adding any missing keys
528
555
 
529
556
 
530
557
  [Default Command] edit
531
- ==== Command: <tt>done|did ENTRY</tt>
558
+ ==== Command: <tt>done|did [ENTRY]</tt>
532
559
  Add a completed item with @done(date). No argument finishes last entry
533
560
 
534
561
  Use this command to add an entry after you've already finished it. It will be immediately marked as @done.
@@ -598,7 +625,7 @@ Include date
598
625
 
599
626
 
600
627
  ===== -e|--editor
601
- Edit entry with vim (with no arguments, edits the last entry)
628
+ Edit entry with /opt/homebrew/bin/vim (with no arguments, edits the last entry)
602
629
 
603
630
 
604
631
 
@@ -612,7 +639,7 @@ Finish last entry not already marked @done
612
639
 
613
640
 
614
641
 
615
- ==== Command: <tt>finish COUNT</tt>
642
+ ==== Command: <tt>finish [COUNT]</tt>
616
643
  Mark last X entries as @done
617
644
 
618
645
  Marks the last X entries with a @done tag and current date. Does not alter already completed entries.
@@ -763,6 +790,13 @@ Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart
763
790
  [Must Match] (?-mix:^[csi])
764
791
 
765
792
 
793
+ ===== --config_template TEMPLATE_KEY
794
+
795
+ Output using a template from configuration
796
+
797
+ [Default Value] default
798
+
799
+
766
800
  ===== --from DATE_OR_RANGE
767
801
 
768
802
  Date range to show, or a single day to filter date on.
@@ -797,6 +831,13 @@ Sort tags by (name|time)
797
831
  [Must Match] (?i-mx:^(?:name|time)$)
798
832
 
799
833
 
834
+ ===== --template TEMPLATE_STRING
835
+
836
+ Override output format with a template string containing %placeholders
837
+
838
+ [Default Value] None
839
+
840
+
800
841
  ===== --val QUERY
801
842
 
802
843
  Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
@@ -816,7 +857,7 @@ Show elapsed time on entries without @done tag
816
857
 
817
858
 
818
859
  ===== -e|--editor
819
- Edit matching entries with vim
860
+ Edit matching entries with /opt/homebrew/bin/vim
820
861
 
821
862
 
822
863
 
@@ -983,6 +1024,13 @@ Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart
983
1024
  [Must Match] (?-mix:^[csi])
984
1025
 
985
1026
 
1027
+ ===== --config_template TEMPLATE_KEY
1028
+
1029
+ Output using a template from configuration
1030
+
1031
+ [Default Value] last
1032
+
1033
+
986
1034
  ===== -s|--section NAME
987
1035
 
988
1036
  Specify a section
@@ -1004,6 +1052,13 @@ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?)
1004
1052
  [Default Value] None
1005
1053
 
1006
1054
 
1055
+ ===== --template TEMPLATE_STRING
1056
+
1057
+ Override output format with a template string containing %placeholders
1058
+
1059
+ [Default Value] None
1060
+
1061
+
1007
1062
  ===== --val QUERY
1008
1063
 
1009
1064
  Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
@@ -1023,7 +1078,7 @@ Show elapsed time if entry is not tagged @done
1023
1078
 
1024
1079
 
1025
1080
  ===== -e|--editor
1026
- Edit entry with vim
1081
+ Edit entry with /opt/homebrew/bin/vim
1027
1082
 
1028
1083
 
1029
1084
 
@@ -1067,7 +1122,7 @@ Prompt for note via multi-line input
1067
1122
 
1068
1123
 
1069
1124
  ===== -e|--editor
1070
- Edit entry with vim
1125
+ Edit entry with /opt/homebrew/bin/vim
1071
1126
 
1072
1127
 
1073
1128
 
@@ -1165,7 +1220,7 @@ Force exact search string matching (case sensitive)
1165
1220
 
1166
1221
 
1167
1222
 
1168
- ==== Command: <tt>meanwhile ENTRY</tt>
1223
+ ==== Command: <tt>meanwhile [ENTRY]</tt>
1169
1224
  Finish any running @meanwhile tasks and optionally create a new one
1170
1225
 
1171
1226
  The @meanwhile tag allows you to have long-running entries that encompass smaller entries.
@@ -1205,11 +1260,11 @@ Prompt for note via multi-line input
1205
1260
 
1206
1261
 
1207
1262
  ===== -e|--editor
1208
- Edit entry with vim
1263
+ Edit entry with /opt/homebrew/bin/vim
1209
1264
 
1210
1265
 
1211
1266
 
1212
- ==== Command: <tt>note NOTE_TEXT</tt>
1267
+ ==== Command: <tt>note [NOTE_TEXT]</tt>
1213
1268
  Add a note to the last entry
1214
1269
 
1215
1270
  If -r is provided with no other arguments, the last note is removed.
@@ -1269,7 +1324,7 @@ Prompt for note via multi-line input
1269
1324
 
1270
1325
 
1271
1326
  ===== -e|--editor
1272
- Edit entry with vim
1327
+ Edit entry with /opt/homebrew/bin/vim
1273
1328
 
1274
1329
 
1275
1330
 
@@ -1302,7 +1357,7 @@ A parenthetical at the end of the entry will be converted to a note.
1302
1357
 
1303
1358
  Run without arguments to create a new entry interactively.
1304
1359
 
1305
- Run with --editor to create a new entry using vim.
1360
+ Run with --editor to create a new entry using /opt/homebrew/bin/vim.
1306
1361
  ===== Options
1307
1362
  ===== -b|--back|--started DATE_STRING
1308
1363
 
@@ -1311,6 +1366,14 @@ Backdate start time [4pm|20m|2h|"yesterday noon"]
1311
1366
  [Default Value] None
1312
1367
 
1313
1368
 
1369
+ ===== --from TIME_RANGE
1370
+
1371
+ Set a start and optionally end time as a date range ("from 1pm to 2:30pm").
1372
+ If an end time is provided, a dated @done tag will be added
1373
+
1374
+ [Default Value] None
1375
+
1376
+
1314
1377
  ===== -n|--note TEXT
1315
1378
 
1316
1379
  Include a note
@@ -1331,7 +1394,7 @@ Prompt for note via multi-line input
1331
1394
 
1332
1395
 
1333
1396
  ===== -e|--editor
1334
- Edit entry with vim
1397
+ Edit entry with /opt/homebrew/bin/vim
1335
1398
 
1336
1399
 
1337
1400
 
@@ -1347,6 +1410,13 @@ Date argument can be natural language. "thursday" would be interpreted as "last
1347
1410
  and "2d" would be interpreted as "two days ago." If you use "to" or "through" between two dates,
1348
1411
  it will create a range.
1349
1412
  ===== Options
1413
+ ===== --config_template TEMPLATE_KEY
1414
+
1415
+ Output using a template from configuration
1416
+
1417
+ [Default Value] default
1418
+
1419
+
1350
1420
  ===== -o|--output FORMAT
1351
1421
 
1352
1422
  Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|json|markdown|say|taskpaper|template|timeline|wiki)
@@ -1369,6 +1439,13 @@ Sort tags by (name|time)
1369
1439
  [Must Match] (?i-mx:^(?:name|time)$)
1370
1440
 
1371
1441
 
1442
+ ===== --template TEMPLATE_STRING
1443
+
1444
+ Override output format with a template string containing %placeholders
1445
+
1446
+ [Default Value] None
1447
+
1448
+
1372
1449
  ===== --[no-]duration
1373
1450
  Show elapsed time on entries without @done tag
1374
1451
 
@@ -1388,7 +1465,7 @@ Show time totals at the end of output
1388
1465
  Open the "doing" file in an editor
1389
1466
 
1390
1467
  `doing open` defaults to using the editors->doing_file setting
1391
- in /Users/ttscoff/.config/doing/config.yml (TaskPaper).
1468
+ in /Users/ttscoff/.config/doing/config.yml (/opt/homebrew/bin/vim).
1392
1469
  ===== Options
1393
1470
  ===== -a|--app APP_NAME
1394
1471
 
@@ -1438,6 +1515,13 @@ List recent entries
1438
1515
 
1439
1516
 
1440
1517
  ===== Options
1518
+ ===== --config_template TEMPLATE_KEY
1519
+
1520
+ Output using a template from configuration
1521
+
1522
+ [Default Value] recent
1523
+
1524
+
1441
1525
  ===== -s|--section NAME
1442
1526
 
1443
1527
  Section
@@ -1453,6 +1537,13 @@ Sort tags by (name|time)
1453
1537
  [Must Match] (?i-mx:^(?:name|time)$)
1454
1538
 
1455
1539
 
1540
+ ===== --template TEMPLATE_STRING
1541
+
1542
+ Override output format with a template string containing %placeholders
1543
+
1544
+ [Default Value] None
1545
+
1546
+
1456
1547
  ===== --[no-]duration
1457
1548
  Show elapsed time on entries without @done tag
1458
1549
 
@@ -1473,7 +1564,7 @@ Show intervals with totals at the end of output
1473
1564
 
1474
1565
 
1475
1566
 
1476
- ==== Command: <tt>reset|begin DATE_STRING</tt>
1567
+ ==== Command: <tt>reset|begin [DATE_STRING]</tt>
1477
1568
  Reset the start time of an entry
1478
1569
 
1479
1570
  Update the start time of the last entry or the last entry matching a tag/search filter.
@@ -1530,6 +1621,11 @@ Select from a menu of matching entries
1530
1621
 
1531
1622
 
1532
1623
 
1624
+ ===== -n
1625
+ Change start date but do not remove @done (shortcut for --no-resume)
1626
+
1627
+
1628
+
1533
1629
  ===== --not
1534
1630
  Reset items that *don't* match search/tag filters
1535
1631
 
@@ -1856,6 +1952,13 @@ Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart
1856
1952
  [Must Match] (?-mix:^[csi])
1857
1953
 
1858
1954
 
1955
+ ===== --config_template TEMPLATE_KEY
1956
+
1957
+ Output using a template from configuration
1958
+
1959
+ [Default Value] default
1960
+
1961
+
1859
1962
  ===== --from DATE_OR_RANGE
1860
1963
 
1861
1964
  Date range to show, or a single day to filter date on.
@@ -1913,6 +2016,13 @@ Sort tags by (name|time)
1913
2016
  [Must Match] (?i-mx:^(?:name|time))
1914
2017
 
1915
2018
 
2019
+ ===== --template TEMPLATE_STRING
2020
+
2021
+ Override output format with a template string containing %placeholders
2022
+
2023
+ [Default Value] None
2024
+
2025
+
1916
2026
  ===== --val QUERY
1917
2027
 
1918
2028
  Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
@@ -1972,6 +2082,13 @@ List entries since a date
1972
2082
  Date argument can be natural language and are always interpreted as being in the past. "thursday" would be interpreted as "last thursday,"
1973
2083
  and "2d" would be interpreted as "two days ago."
1974
2084
  ===== Options
2085
+ ===== --config_template TEMPLATE_KEY
2086
+
2087
+ Output using a template from configuration
2088
+
2089
+ [Default Value] default
2090
+
2091
+
1975
2092
  ===== -o|--output FORMAT
1976
2093
 
1977
2094
  Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|json|markdown|say|taskpaper|template|timeline|wiki)
@@ -1994,6 +2111,13 @@ Sort tags by (name|time)
1994
2111
  [Must Match] (?i-mx:^(?:name|time)$)
1995
2112
 
1996
2113
 
2114
+ ===== --template TEMPLATE_STRING
2115
+
2116
+ Override output format with a template string containing %placeholders
2117
+
2118
+ [Default Value] None
2119
+
2120
+
1997
2121
  ===== --[no-]duration
1998
2122
  Show elapsed time on entries without @done tag
1999
2123
 
@@ -2151,7 +2275,7 @@ Remove all default_tags from the local .doingrc
2151
2275
 
2152
2276
 
2153
2277
 
2154
- ==== Command: <tt>tags </tt>
2278
+ ==== Command: <tt>tags [MAX_COUNT]</tt>
2155
2279
  List all tags in the current Doing file
2156
2280
 
2157
2281
 
@@ -2228,6 +2352,11 @@ Select items to scan from a menu of matching entries
2228
2352
 
2229
2353
 
2230
2354
 
2355
+ ===== -l|--[no-]line
2356
+ Output in a single line with @ symbols. Ignored if --counts is specified.
2357
+
2358
+
2359
+
2231
2360
  ===== --not
2232
2361
  Get tags from items that *don't* match search/tag filters
2233
2362
 
@@ -2290,6 +2419,13 @@ View entries before specified time (e.g. 8am, 12:30pm, 15:00)
2290
2419
  [Default Value] None
2291
2420
 
2292
2421
 
2422
+ ===== --config_template TEMPLATE_KEY
2423
+
2424
+ Output using a template from configuration
2425
+
2426
+ [Default Value] today
2427
+
2428
+
2293
2429
  ===== --from TIME_RANGE
2294
2430
 
2295
2431
  Time range to show `doing today --from "12pm to 4pm"`
@@ -2319,6 +2455,13 @@ Sort tags by (name|time)
2319
2455
  [Must Match] (?i-mx:^(?:name|time)$)
2320
2456
 
2321
2457
 
2458
+ ===== --template TEMPLATE_STRING
2459
+
2460
+ Override output format with a template string containing %placeholders
2461
+
2462
+ [Default Value] None
2463
+
2464
+
2322
2465
  ===== --[no-]duration
2323
2466
  Show elapsed time on entries without @done tag
2324
2467
 
@@ -2618,6 +2761,13 @@ View entries before specified time (e.g. 8am, 12:30pm, 15:00)
2618
2761
  [Default Value] None
2619
2762
 
2620
2763
 
2764
+ ===== --config_template TEMPLATE_KEY
2765
+
2766
+ Output using a template from configuration
2767
+
2768
+ [Default Value] today
2769
+
2770
+
2621
2771
  ===== --from TIME_RANGE
2622
2772
 
2623
2773
  Time range to show, e.g. `doing yesterday --from "1am to 8am"`
@@ -2656,6 +2806,13 @@ Sort tags by (name|time)
2656
2806
  [Must Match] (?i-mx:^(?:name|time)$)
2657
2807
 
2658
2808
 
2809
+ ===== --template TEMPLATE_STRING
2810
+
2811
+ Override output format with a template string containing %placeholders
2812
+
2813
+ [Default Value] None
2814
+
2815
+
2659
2816
  ===== --[no-]duration
2660
2817
  Show elapsed time on entries without @done tag
2661
2818
 
data/example_plugin.rb CHANGED
@@ -123,7 +123,7 @@ module Doing
123
123
  ## @return [String] Rendered output
124
124
  ##
125
125
  def self.render(wwid, items, variables: {})
126
- return if items.nil? || items.empty?
126
+ return unless items.good?
127
127
 
128
128
  # the :options key includes the flags passed to the
129
129
  # command that called the plugin use `puts
@@ -164,7 +164,7 @@ module Doing
164
164
 
165
165
  if wwid.config['export_templates'].key?('say')
166
166
  cfg_tpl = wwid.config['export_templates']['say']
167
- tpl = cfg_tpl unless cfg_tpl.nil? || cfg_tpl.empty?
167
+ tpl = cfg_tpl if cfg_tpl.good?
168
168
  end
169
169
  output = tpl.dup
170
170
  output.gsub!(/%date/, date)