doing 2.1.1pre → 2.1.2pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.yardoc/checksums +5 -5
  3. data/.yardoc/object_types +0 -0
  4. data/.yardoc/objects/root.dat +0 -0
  5. data/CHANGELOG.md +13 -0
  6. data/Gemfile.lock +1 -1
  7. data/README.md +1 -1
  8. data/bin/doing +61 -11
  9. data/doc/Array.html +1 -1
  10. data/doc/Doing/Color.html +1 -1
  11. data/doc/Doing/Completion.html +1 -1
  12. data/doc/Doing/Configuration.html +8 -7
  13. data/doc/Doing/Errors/DoingNoTraceError.html +1 -1
  14. data/doc/Doing/Errors/DoingRuntimeError.html +1 -1
  15. data/doc/Doing/Errors/DoingStandardError.html +1 -1
  16. data/doc/Doing/Errors/EmptyInput.html +1 -1
  17. data/doc/Doing/Errors/NoResults.html +1 -1
  18. data/doc/Doing/Errors/PluginException.html +1 -1
  19. data/doc/Doing/Errors/UserCancelled.html +1 -1
  20. data/doc/Doing/Errors/WrongCommand.html +1 -1
  21. data/doc/Doing/Errors.html +1 -1
  22. data/doc/Doing/Hooks.html +1 -1
  23. data/doc/Doing/Item.html +47 -2
  24. data/doc/Doing/Items.html +1 -1
  25. data/doc/Doing/LogAdapter.html +1 -1
  26. data/doc/Doing/Note.html +1 -1
  27. data/doc/Doing/Pager.html +1 -1
  28. data/doc/Doing/Plugins.html +1 -1
  29. data/doc/Doing/Prompt.html +1 -1
  30. data/doc/Doing/Section.html +1 -1
  31. data/doc/Doing/Util.html +1 -1
  32. data/doc/Doing/WWID.html +1 -1
  33. data/doc/Doing.html +2 -2
  34. data/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
  35. data/doc/GLI/Commands.html +1 -1
  36. data/doc/GLI.html +1 -1
  37. data/doc/Hash.html +1 -1
  38. data/doc/Status.html +1 -1
  39. data/doc/String.html +1 -1
  40. data/doc/Symbol.html +1 -1
  41. data/doc/Time.html +1 -1
  42. data/doc/_index.html +1 -1
  43. data/doc/file.README.html +2 -2
  44. data/doc/index.html +2 -2
  45. data/doc/method_list.html +257 -249
  46. data/doc/top-level-namespace.html +1 -1
  47. data/doing.rdoc +54 -9
  48. data/lib/completion/doing.bash +18 -18
  49. data/lib/doing/configuration.rb +19 -8
  50. data/lib/doing/item.rb +7 -0
  51. data/lib/doing/plugins/export/template_export.rb +25 -1
  52. data/lib/doing/prompt.rb +4 -2
  53. data/lib/doing/version.rb +1 -1
  54. data/lib/doing/wwid.rb +56 -23
  55. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76184cb36ec77d6a090e120f4bafa0bef504086a0bf47d6f51952fe69979df14
4
- data.tar.gz: dab9d3052b4f8b4149444c904cf0e062c7b3da5dbead58e5987dd6818870e6b0
3
+ metadata.gz: 017b269d9e349bc1ac12f67156e0746e9d7e75f89ae5130d698a01ff0adb2f1a
4
+ data.tar.gz: 59eeb6a12a420067a835dc977a2d7a7da6dd75a869f43e0c2395e4163c7937e5
5
5
  SHA512:
6
- metadata.gz: be80495dceebdccb5f4303d35f41613a8da5a9e4487fa359eb3c0cea107d21cda8d3b9cbb62f9ba61007421494db8566c8830c43a50c2be3a53caa2e05907b3b
7
- data.tar.gz: a650dba9a9eb18d13a073b33a42f820fac78eb02f5433e516ed70a59426a68f9ee537ce19f50ffeb1d28fd52ebd03461fbf6c755b7d75247d3e6da04bf0a8f19
6
+ metadata.gz: 07d311895b563f7c35b349c4101caa58c67a49f3aa4302dac5d0129274a11ddbce8ddcf360a5b00c32f17dc3d99b3fbcabc132f8b7d60c345a1c639aaff73d00
7
+ data.tar.gz: 13c1990fa0677e01121cec772148a877caf477a1f54ea940ff903816a144ea27ab9807e2f3f235b50246017579cc121f0c9b7f67eac7c73b0d9a0123ac7a0589
data/.yardoc/checksums CHANGED
@@ -1,24 +1,24 @@
1
1
  lib/doing/hash.rb c2960de9603dcf90be85ce423d9430de27f4f893
2
- lib/doing/item.rb 49aa74a14f59f0c790b69369c9c97feaa1917e84
2
+ lib/doing/item.rb 0dfb18c94ec835692358a99cf866a7eace9802ee
3
3
  lib/doing/note.rb 99d7be3e45605d32da7e188d7ec749ba84a3d2f8
4
4
  lib/doing/time.rb d83c862e7fffd841e12150a3d954b445a6003da9
5
5
  lib/doing/util.rb 94fc3c3ac1cc0b3b4b1d832fe30bd6e882d1acb2
6
- lib/doing/wwid.rb 77ec1fe1a5e369f21b29d6e28ef5bd69facf99c3
6
+ lib/doing/wwid.rb 0679893fbe11e00024e62fb0f1ac84ee15393fdf
7
7
  lib/doing/array.rb dc9b3aeed89df820e003743e8d36078469c1aab7
8
8
  lib/doing/hooks.rb 00feacdbf24dc67951c49ca8c1ca9a568441920e
9
9
  lib/doing/items.rb c7b81ce1fe6a8804c62af3c83e510add5f025a8c
10
10
  lib/doing/pager.rb 230c10dea5e9c68b5709a0f4cb088c76970965e4
11
11
  lib/doing/colors.rb 9a628d48c821313c502deedc5b61a046a2bf79ef
12
12
  lib/doing/errors.rb af07e482a5389924edc2337749c81cda501098f0
13
- lib/doing/prompt.rb ebf82d725111b99717954b3083cc529da8f53f3d
13
+ lib/doing/prompt.rb a693a9270b16c06424614275781f85fb553b5714
14
14
  lib/doing/string.rb 2c90835a9b567643ce57de0030b339cfea234f46
15
15
  lib/doing/symbol.rb 37f5b1f006181597703911494887a11fe0c63d39
16
16
  lib/doing/section.rb 206e119cf818f1e76798753e611180fe77bc299a
17
- lib/doing/version.rb 7680c3aed9bca99795b2abd6af1854d207775bba
17
+ lib/doing/version.rb 3aafb9a891e0c7ee69e2dd62461f919a6e85854a
18
18
  lib/doing/cli_status.rb dbedd454c4cbbd0fed9ef30120f6ec85d18b9356
19
19
  lib/doing/completion.rb 3b291eb38e651ea993d04db592a5e743057626e6
20
20
  lib/doing/log_adapter.rb 5d21f966449977536452e22fa64de4a1fe334002
21
- lib/doing/configuration.rb 33efe2921a604e68853abbbc026d1d28c4138a18
21
+ lib/doing/configuration.rb b711f1067b51329844632c891bef2691fa29aaf2
22
22
  lib/doing/plugin_manager.rb fb926e3998bac0b14dd4548b16ece0d32bbe0b9e
23
23
  lib/doing/string_chronify.rb 8e4a59db180fbb63d101cb10ee371544c48376f8
24
24
  lib/doing/markdown_document_listener.rb 45485f225068a34951ec818a345f642323e5ba35
data/.yardoc/object_types CHANGED
Binary file
Binary file
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ### 2.1.2pre
2
+
3
+ #### NEW
4
+
5
+ - Add %duration placeholder to template variables
6
+ - Add `interval_format` setting to config (applies to root or any view/template) to set intervals/durations to human (2h 15m) or text (00:02:15)
7
+ - Add `duration` key to config (root or view/template). If set to true, will display durations by default (no need for `--duration`)
8
+ - Most display commands now have a `--duration` flag that will display an elapsed time if the entry is not marked @done
9
+
10
+ #### IMPROVED
11
+
12
+ - Config set will create missing keys. Fuzzy matching will work until the path fails, then path elements after that point will be added as verbatim keys to the specified configuration (with confirmation)
13
+
1
14
  ### 2.1.1pre
2
15
 
3
16
  #### NEW
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- doing (2.1.1pre)
4
+ doing (2.1.2pre)
5
5
  chronic (~> 0.10, >= 0.10.2)
6
6
  deep_merge (~> 1.2, >= 1.2.1)
7
7
  gli (~> 2.19, >= 2.19.2)
data/README.md CHANGED
@@ -6,7 +6,7 @@ _If you're one of the rare people like me who find this useful, feel free to [bu
6
6
 
7
7
  <!--README-->
8
8
 
9
- The current version of `doing` is <!--VER-->2.1.0<!--END VER-->.
9
+ The current version of `doing` is <!--VER-->2.1.1<!--END VER-->.
10
10
 
11
11
  Find all of the documentation in the [doing wiki](https://github.com/ttscoff/doing/wiki).
12
12
 
data/bin/doing CHANGED
@@ -1545,6 +1545,9 @@ command :show do |c|
1545
1545
  c.desc 'Show time intervals on @done tasks'
1546
1546
  c.switch %i[t times], default_value: true, negatable: true
1547
1547
 
1548
+ c.desc 'Show elapsed time on entries without @done tag'
1549
+ c.switch [:duration]
1550
+
1548
1551
  c.desc 'Show intervals with totals at the end of output'
1549
1552
  c.switch [:totals], default_value: false, negatable: false
1550
1553
 
@@ -1692,6 +1695,9 @@ command %i[grep search] do |c|
1692
1695
  c.desc 'Show time intervals on @done tasks'
1693
1696
  c.switch %i[t times], default_value: true, negatable: true
1694
1697
 
1698
+ c.desc 'Show elapsed time on entries without @done tag'
1699
+ c.switch [:duration]
1700
+
1695
1701
  c.desc 'Show intervals with totals at the end of output'
1696
1702
  c.switch [:totals], default_value: false, negatable: false
1697
1703
 
@@ -1761,6 +1767,9 @@ command :recent do |c|
1761
1767
  c.desc 'Show time intervals on @done tasks'
1762
1768
  c.switch %i[t times], default_value: true, negatable: true
1763
1769
 
1770
+ c.desc 'Show elapsed time on entries without @done tag'
1771
+ c.switch [:duration]
1772
+
1764
1773
  c.desc 'Show intervals with totals at the end of output'
1765
1774
  c.switch [:totals], default_value: false, negatable: false
1766
1775
 
@@ -1800,7 +1809,8 @@ command :recent do |c|
1800
1809
  tags_color: tags_color,
1801
1810
  times: options[:times],
1802
1811
  totals: options[:totals],
1803
- interactive: options[:interactive]
1812
+ interactive: options[:interactive],
1813
+ duration: options[:duration]
1804
1814
  }
1805
1815
 
1806
1816
  Doing::Pager::page wwid.recent(count, section.cap_first, opts)
@@ -1823,6 +1833,9 @@ command :today do |c|
1823
1833
  c.desc 'Show time intervals on @done tasks'
1824
1834
  c.switch %i[t times], default_value: true, negatable: true
1825
1835
 
1836
+ c.desc 'Show elapsed time on entries without @done tag'
1837
+ c.switch [:duration]
1838
+
1826
1839
  c.desc 'Show time totals at the end of output'
1827
1840
  c.switch [:totals], default_value: false, negatable: false
1828
1841
 
@@ -1855,7 +1868,7 @@ command :today do |c|
1855
1868
 
1856
1869
  options[:times] = true if options[:totals]
1857
1870
  options[:sort_tags] = options[:tag_sort] =~ /^n/i
1858
- filter_options = %i[after before from section sort_tags totals].each_with_object({}) { |k, hsh| hsh[k] = options[k] }
1871
+ filter_options = %i[after before duration from section sort_tags totals].each_with_object({}) { |k, hsh| hsh[k] = options[k] }
1859
1872
 
1860
1873
  Doing::Pager.page wwid.today(options[:times], options[:output], filter_options).chomp
1861
1874
  end
@@ -1878,6 +1891,9 @@ command :on do |c|
1878
1891
  c.desc 'Show time intervals on @done tasks'
1879
1892
  c.switch %i[t times], default_value: true, negatable: true
1880
1893
 
1894
+ c.desc 'Show elapsed time on entries without @done tag'
1895
+ c.switch [:duration]
1896
+
1881
1897
  c.desc 'Show time totals at the end of output'
1882
1898
  c.switch [:totals], default_value: false, negatable: false
1883
1899
 
@@ -1917,7 +1933,7 @@ command :on do |c|
1917
1933
  options[:sort_tags] = options[:tag_sort] =~ /^n/i
1918
1934
 
1919
1935
  Doing::Pager.page wwid.list_date([start, finish], options[:section], options[:times], options[:output],
1920
- { totals: options[:totals], sort_tags: options[:sort_tags] }).chomp
1936
+ { duration: options[:duration], totals: options[:totals], sort_tags: options[:sort_tags] }).chomp
1921
1937
  end
1922
1938
  end
1923
1939
 
@@ -1936,6 +1952,9 @@ command :since do |c|
1936
1952
  c.desc 'Show time intervals on @done tasks'
1937
1953
  c.switch %i[t times], default_value: true, negatable: true
1938
1954
 
1955
+ c.desc 'Show elapsed time on entries without @done tag'
1956
+ c.switch [:duration]
1957
+
1939
1958
  c.desc 'Show time totals at the end of output'
1940
1959
  c.switch [:totals], default_value: false, negatable: false
1941
1960
 
@@ -1970,7 +1989,7 @@ command :since do |c|
1970
1989
  options[:sort_tags] = options[:tag_sort] =~ /^n/i
1971
1990
 
1972
1991
  Doing::Pager.page wwid.list_date([start, finish], options[:section], options[:times], options[:output],
1973
- { totals: options[:totals], sort_tags: options[:sort_tags] }).chomp
1992
+ { duration: options[:duration], totals: options[:totals], sort_tags: options[:sort_tags] }).chomp
1974
1993
  end
1975
1994
  end
1976
1995
 
@@ -1991,6 +2010,9 @@ command :yesterday do |c|
1991
2010
  c.desc 'Show time intervals on @done tasks'
1992
2011
  c.switch %i[t times], default_value: true, negatable: true
1993
2012
 
2013
+ c.desc 'Show elapsed time on entries without @done tag'
2014
+ c.switch [:duration]
2015
+
1994
2016
  c.desc 'Show time totals at the end of output'
1995
2017
  c.switch [:totals], default_value: false, negatable: false
1996
2018
 
@@ -2031,6 +2053,7 @@ command :yesterday do |c|
2031
2053
  opt = {
2032
2054
  after: options[:after],
2033
2055
  before: options[:before],
2056
+ duration: options[:duration],
2034
2057
  from: options[:from],
2035
2058
  sort_tags: options[:sort_tags],
2036
2059
  tag_order: options[:tag_order].normalize_order,
@@ -2070,6 +2093,9 @@ command :last do |c|
2070
2093
  c.arg_name 'QUERY'
2071
2094
  c.flag [:search]
2072
2095
 
2096
+ c.desc 'Show elapsed time if entry is not tagged @done'
2097
+ c.switch [:duration]
2098
+
2073
2099
  # c.desc '[DEPRECATED] Use alternative fuzzy matching for search string'
2074
2100
  # c.switch [:fuzzy], default_value: false, negatable: false
2075
2101
 
@@ -2115,7 +2141,15 @@ command :last do |c|
2115
2141
  wwid.edit_last(section: options[:section], options: { search: search, fuzzy: options[:fuzzy], case: options[:case], tag: tags, tag_bool: options[:bool], not: options[:not] })
2116
2142
  else
2117
2143
  Doing::Pager::page wwid.last(times: true, section: options[:section],
2118
- options: { search: search, fuzzy: options[:fuzzy], case: options[:case], negate: options[:not], tag: tags, tag_bool: options[:bool] }).strip
2144
+ options: {
2145
+ duration: options[:duration],
2146
+ search: search,
2147
+ fuzzy: options[:fuzzy],
2148
+ case: options[:case],
2149
+ negate: options[:not],
2150
+ tag: tags,
2151
+ tag_bool: options[:bool]
2152
+ }).strip
2119
2153
  end
2120
2154
  end
2121
2155
  end
@@ -2239,6 +2273,9 @@ command :view do |c|
2239
2273
  c.desc 'Show time intervals on @done tasks'
2240
2274
  c.switch %i[t times], default_value: true, negatable: true
2241
2275
 
2276
+ c.desc 'Show elapsed time on entries without @done tag'
2277
+ c.switch [:duration]
2278
+
2242
2279
  c.desc 'Show intervals with totals at the end of output'
2243
2280
  c.switch [:totals], default_value: false, negatable: false
2244
2281
 
@@ -2391,7 +2428,7 @@ command :view do |c|
2391
2428
  false
2392
2429
  end
2393
2430
 
2394
- %w[before after from].each { |k| options[k.to_sym] = view[k] if view.key?(k) && !options[k.to_sym] }
2431
+ %w[before after from duration].each { |k| options[k.to_sym] = view[k] if view.key?(k) && !options[k.to_sym] }
2395
2432
 
2396
2433
  options[:case] = options[:case].normalize_case
2397
2434
 
@@ -2845,9 +2882,20 @@ command :config do |c|
2845
2882
 
2846
2883
  value = options[:remove] ? nil : args.pop
2847
2884
  keypath = args.join('.')
2848
- old_value = config.value_for_key(keypath).map { |k, v| v.to_s }
2849
- real_path = config.resolve_key_path(keypath)
2850
- raise InvalidArgument, 'Invalid key path' if real_path.empty?
2885
+ real_path = config.resolve_key_path(keypath, create: true)
2886
+
2887
+ old_value = settings.dig(*real_path) || nil
2888
+
2889
+ if old_value.is_a?(Hash) && !options[:remove]
2890
+ Doing.logger.log_now(:warn, 'Config:', "Config key must point to a single value, #{real_path.join('->').boldwhite} is a mapping")
2891
+ didyou = 'Did you mean:'
2892
+ old_value.keys.each do |k|
2893
+ Doing.logger.log_now(:warn, "#{didyou}", "#{keypath}.#{k}?")
2894
+ didyou = '..........or:'
2895
+ end
2896
+ raise InvalidArgument, 'Config value is a mapping, can not be set to a single value'
2897
+
2898
+ end
2851
2899
 
2852
2900
  config_file = config.choose_config
2853
2901
  cfg = YAML.safe_load_file(config_file) || {}
@@ -2858,10 +2906,12 @@ command :config do |c|
2858
2906
  cfg.deep_set(real_path, nil)
2859
2907
  $stderr.puts "#{'Deleting key:'.yellow} #{real_path.join('->').boldwhite}"
2860
2908
  else
2861
- old_value = cfg.dig(*real_path) || 'empty'
2909
+
2910
+ p real_path
2862
2911
  cfg.deep_set(real_path, value.set_type)
2912
+
2863
2913
  $stderr.puts "#{'Key path:'.yellow} #{real_path.join('->').boldwhite}"
2864
- $stderr.puts "#{'Previous:'.yellow} #{old_value.to_s.boldwhite}"
2914
+ $stderr.puts "#{'Previous:'.yellow} #{(old_value ? old_value .to_s : 'empty').boldwhite}"
2865
2915
  $stderr.puts "#{' New:'.yellow} #{value.set_type.to_s.boldwhite}"
2866
2916
  end
2867
2917
 
data/doc/Array.html CHANGED
@@ -478,7 +478,7 @@ with</p>
478
478
  </div>
479
479
 
480
480
  <div id="footer">
481
- Generated on Sat Nov 27 13:57:12 2021 by
481
+ Generated on Sun Nov 28 05:27:33 2021 by
482
482
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
483
483
  0.9.26 (ruby-3.0.1).
484
484
  </div>
data/doc/Doing/Color.html CHANGED
@@ -508,7 +508,7 @@ ANSI-sequences are stripped from the string.</p>
508
508
  </div>
509
509
 
510
510
  <div id="footer">
511
- Generated on Sat Nov 27 13:57:12 2021 by
511
+ Generated on Sun Nov 28 05:27:33 2021 by
512
512
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
513
513
  0.9.26 (ruby-3.0.1).
514
514
  </div>
@@ -206,7 +206,7 @@ stdout</p>
206
206
  </div>
207
207
 
208
208
  <div id="footer">
209
- Generated on Sat Nov 27 13:57:12 2021 by
209
+ Generated on Sun Nov 28 05:27:33 2021 by
210
210
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
211
211
  0.9.26 (ruby-3.0.1).
212
212
  </div>
@@ -147,28 +147,29 @@
147
147
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>never_finish</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span>
148
148
 
149
149
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>timer_format</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>text</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
150
+ <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>interval_format</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>text</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
150
151
 
151
152
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>templates</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
152
153
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>default</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
153
154
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>date_format</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%Y-%m-%d %H:%M</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
154
- <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>template</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%date | %title%note</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
155
+ <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>template</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%date | %title %interval%duration%note</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
155
156
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>wrap_width</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='int'>0</span><span class='comma'>,</span>
156
157
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>order</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>asc</span><span class='tstring_end'>&#39;</span></span>
157
158
  <span class='rbrace'>}</span><span class='comma'>,</span>
158
159
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>today</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
159
160
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>date_format</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%_I:%M%P</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
160
- <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>template</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%date: %title %interval%note</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
161
+ <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>template</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%date: %title %interval%duration%note</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
161
162
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>wrap_width</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='int'>0</span><span class='comma'>,</span>
162
163
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>order</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>asc</span><span class='tstring_end'>&#39;</span></span>
163
164
  <span class='rbrace'>}</span><span class='comma'>,</span>
164
165
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>last</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
165
166
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>date_format</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%-I:%M%P on %a</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
166
- <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>template</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%title (at %date)%odnote</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
167
+ <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>template</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%title (at %date) %interval%duration%odnote</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
167
168
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>wrap_width</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='int'>88</span>
168
169
  <span class='rbrace'>}</span><span class='comma'>,</span>
169
170
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>recent</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
170
171
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>date_format</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%_I:%M%P</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
171
- <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>template</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%shortdate: %title (%section)</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
172
+ <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>template</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%shortdate: %title (%section) %interval%duration%note</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
172
173
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>wrap_width</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='int'>88</span><span class='comma'>,</span>
173
174
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>count</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='int'>10</span><span class='comma'>,</span>
174
175
  <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>order</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>asc</span><span class='tstring_end'>&#39;</span></span>
@@ -489,7 +490,7 @@
489
490
  <li class="public ">
490
491
  <span class="summary_signature">
491
492
 
492
- <a href="#resolve_key_path-instance_method" title="#resolve_key_path (instance method)">#<strong>resolve_key_path</strong>(keypath) &#x21d2; Array </a>
493
+ <a href="#resolve_key_path-instance_method" title="#resolve_key_path (instance method)">#<strong>resolve_key_path</strong>(keypath, create: false) &#x21d2; Array </a>
493
494
 
494
495
 
495
496
 
@@ -855,7 +856,7 @@
855
856
  <div class="method_details ">
856
857
  <h3 class="signature " id="resolve_key_path-instance_method">
857
858
 
858
- #<strong>resolve_key_path</strong>(keypath) &#x21d2; <tt><span class='object_link'><a href="../Array.html" title="Array (class)">Array</a></span></tt>
859
+ #<strong>resolve_key_path</strong>(keypath, create: false) &#x21d2; <tt><span class='object_link'><a href="../Array.html" title="Array (class)">Array</a></span></tt>
859
860
 
860
861
 
861
862
 
@@ -1005,7 +1006,7 @@ matched, first match wins)</p>
1005
1006
  </div>
1006
1007
 
1007
1008
  <div id="footer">
1008
- Generated on Sat Nov 27 13:57:12 2021 by
1009
+ Generated on Sun Nov 28 05:27:33 2021 by
1009
1010
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1010
1011
  0.9.26 (ruby-3.0.1).
1011
1012
  </div>
@@ -176,7 +176,7 @@
176
176
  </div>
177
177
 
178
178
  <div id="footer">
179
- Generated on Sat Nov 27 13:57:12 2021 by
179
+ Generated on Sun Nov 28 05:27:33 2021 by
180
180
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
181
181
  0.9.26 (ruby-3.0.1).
182
182
  </div>
@@ -176,7 +176,7 @@
176
176
  </div>
177
177
 
178
178
  <div id="footer">
179
- Generated on Sat Nov 27 13:57:12 2021 by
179
+ Generated on Sun Nov 28 05:27:33 2021 by
180
180
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
181
181
  0.9.26 (ruby-3.0.1).
182
182
  </div>
@@ -176,7 +176,7 @@
176
176
  </div>
177
177
 
178
178
  <div id="footer">
179
- Generated on Sat Nov 27 13:57:12 2021 by
179
+ Generated on Sun Nov 28 05:27:33 2021 by
180
180
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
181
181
  0.9.26 (ruby-3.0.1).
182
182
  </div>
@@ -176,7 +176,7 @@
176
176
  </div>
177
177
 
178
178
  <div id="footer">
179
- Generated on Sat Nov 27 13:57:12 2021 by
179
+ Generated on Sun Nov 28 05:27:33 2021 by
180
180
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
181
181
  0.9.26 (ruby-3.0.1).
182
182
  </div>
@@ -176,7 +176,7 @@
176
176
  </div>
177
177
 
178
178
  <div id="footer">
179
- Generated on Sat Nov 27 13:57:12 2021 by
179
+ Generated on Sun Nov 28 05:27:33 2021 by
180
180
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
181
181
  0.9.26 (ruby-3.0.1).
182
182
  </div>
@@ -238,7 +238,7 @@
238
238
  </div>
239
239
 
240
240
  <div id="footer">
241
- Generated on Sat Nov 27 13:57:12 2021 by
241
+ Generated on Sun Nov 28 05:27:33 2021 by
242
242
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
243
243
  0.9.26 (ruby-3.0.1).
244
244
  </div>
@@ -176,7 +176,7 @@
176
176
  </div>
177
177
 
178
178
  <div id="footer">
179
- Generated on Sat Nov 27 13:57:12 2021 by
179
+ Generated on Sun Nov 28 05:27:33 2021 by
180
180
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
181
181
  0.9.26 (ruby-3.0.1).
182
182
  </div>
@@ -176,7 +176,7 @@
176
176
  </div>
177
177
 
178
178
  <div id="footer">
179
- Generated on Sat Nov 27 13:57:12 2021 by
179
+ Generated on Sun Nov 28 05:27:33 2021 by
180
180
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
181
181
  0.9.26 (ruby-3.0.1).
182
182
  </div>
@@ -181,7 +181,7 @@
181
181
  </div>
182
182
 
183
183
  <div id="footer">
184
- Generated on Sat Nov 27 13:57:12 2021 by
184
+ Generated on Sun Nov 28 05:27:33 2021 by
185
185
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
186
186
  0.9.26 (ruby-3.0.1).
187
187
  </div>
data/doc/Doing/Hooks.html CHANGED
@@ -354,7 +354,7 @@
354
354
  </div>
355
355
 
356
356
  <div id="footer">
357
- Generated on Sat Nov 27 13:57:12 2021 by
357
+ Generated on Sun Nov 28 05:27:33 2021 by
358
358
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
359
359
  0.9.26 (ruby-3.0.1).
360
360
  </div>
data/doc/Doing/Item.html CHANGED
@@ -264,6 +264,29 @@
264
264
  <li class="public ">
265
265
  <span class="summary_signature">
266
266
 
267
+ <a href="#duration-instance_method" title="#duration (instance method)">#<strong>duration</strong> &#x21d2; Object </a>
268
+
269
+
270
+
271
+ </span>
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+ <span class="summary_desc"><div class='inline'><p>If the entry doesn&#39;t have a @done date, return the elapsed time.</p>
282
+ </div></span>
283
+
284
+ </li>
285
+
286
+
287
+ <li class="public ">
288
+ <span class="summary_signature">
289
+
267
290
  <a href="#end_date-instance_method" title="#end_date (instance method)">#<strong>end_date</strong> &#x21d2; Time </a>
268
291
 
269
292
 
@@ -830,7 +853,29 @@ the item belongs</p>
830
853
 
831
854
 
832
855
  <div class="method_details first">
833
- <h3 class="signature first" id="end_date-instance_method">
856
+ <h3 class="signature first" id="duration-instance_method">
857
+
858
+ #<strong>duration</strong> &#x21d2; <tt>Object</tt>
859
+
860
+
861
+
862
+
863
+
864
+ </h3><div class="docstring">
865
+ <div class="discussion">
866
+ <p>If the entry doesn&#39;t have a @done date, return the elapsed time</p>
867
+
868
+
869
+ </div>
870
+ </div>
871
+ <div class="tags">
872
+
873
+
874
+ </div>
875
+ </div>
876
+
877
+ <div class="method_details ">
878
+ <h3 class="signature " id="end_date-instance_method">
834
879
 
835
880
  #<strong>end_date</strong> &#x21d2; <tt><span class='object_link'><a href="../Time.html" title="Time (class)">Time</a></span></tt>
836
881
 
@@ -1663,7 +1708,7 @@ type (:sensitive,
1663
1708
  </div>
1664
1709
 
1665
1710
  <div id="footer">
1666
- Generated on Sat Nov 27 13:57:12 2021 by
1711
+ Generated on Sun Nov 28 05:27:33 2021 by
1667
1712
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1668
1713
  0.9.26 (ruby-3.0.1).
1669
1714
  </div>
data/doc/Doing/Items.html CHANGED
@@ -792,7 +792,7 @@ specified section</p>
792
792
  </div>
793
793
 
794
794
  <div id="footer">
795
- Generated on Sat Nov 27 13:57:12 2021 by
795
+ Generated on Sun Nov 28 05:27:33 2021 by
796
796
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
797
797
  0.9.26 (ruby-3.0.1).
798
798
  </div>
@@ -1728,7 +1728,7 @@ message (optional)</p>
1728
1728
  </div>
1729
1729
 
1730
1730
  <div id="footer">
1731
- Generated on Sat Nov 27 13:57:12 2021 by
1731
+ Generated on Sun Nov 28 05:27:33 2021 by
1732
1732
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1733
1733
  0.9.26 (ruby-3.0.1).
1734
1734
  </div>
data/doc/Doing/Note.html CHANGED
@@ -756,7 +756,7 @@ newlines will be split</p>
756
756
  </div>
757
757
 
758
758
  <div id="footer">
759
- Generated on Sat Nov 27 13:57:12 2021 by
759
+ Generated on Sun Nov 28 05:27:33 2021 by
760
760
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
761
761
  0.9.26 (ruby-3.0.1).
762
762
  </div>
data/doc/Doing/Pager.html CHANGED
@@ -296,7 +296,7 @@ STDOUT</p>
296
296
  </div>
297
297
 
298
298
  <div id="footer">
299
- Generated on Sat Nov 27 13:57:12 2021 by
299
+ Generated on Sun Nov 28 05:27:33 2021 by
300
300
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
301
301
  0.9.26 (ruby-3.0.1).
302
302
  </div>
@@ -839,7 +839,7 @@
839
839
  </div>
840
840
 
841
841
  <div id="footer">
842
- Generated on Sat Nov 27 13:57:12 2021 by
842
+ Generated on Sun Nov 28 05:27:33 2021 by
843
843
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
844
844
  0.9.26 (ruby-3.0.1).
845
845
  </div>
@@ -664,7 +664,7 @@ response if no input</p>
664
664
  </div>
665
665
 
666
666
  <div id="footer">
667
- Generated on Sat Nov 27 13:57:12 2021 by
667
+ Generated on Sun Nov 28 05:27:33 2021 by
668
668
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
669
669
  0.9.26 (ruby-3.0.1).
670
670
  </div>