doing 2.1.37 → 2.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +1 -1
  5. data/Rakefile +7 -1
  6. data/bin/commands/config.rb +43 -34
  7. data/bin/commands/done.rb +1 -18
  8. data/bin/commands/finish.rb +30 -25
  9. data/bin/commands/grep.rb +3 -14
  10. data/bin/commands/last.rb +2 -8
  11. data/bin/commands/meanwhile.rb +13 -6
  12. data/bin/commands/now.rb +2 -4
  13. data/bin/commands/on.rb +4 -15
  14. data/bin/commands/recent.rb +2 -8
  15. data/bin/commands/reset.rb +24 -1
  16. data/bin/commands/select.rb +1 -1
  17. data/bin/commands/show.rb +8 -16
  18. data/bin/commands/since.rb +1 -12
  19. data/bin/commands/today.rb +2 -13
  20. data/bin/commands/view.rb +1 -1
  21. data/bin/commands/yesterday.rb +2 -13
  22. data/bin/doing +41 -36
  23. data/docs/doc/Array.html +1 -1
  24. data/docs/doc/BooleanTermParser/Clause.html +1 -1
  25. data/docs/doc/BooleanTermParser/Operator.html +1 -1
  26. data/docs/doc/BooleanTermParser/Query.html +1 -1
  27. data/docs/doc/BooleanTermParser/QueryParser.html +1 -1
  28. data/docs/doc/BooleanTermParser/QueryTransformer.html +1 -1
  29. data/docs/doc/BooleanTermParser.html +1 -1
  30. data/docs/doc/Doing/Color.html +166 -20
  31. data/docs/doc/Doing/Completion.html +1 -1
  32. data/docs/doc/Doing/Configuration.html +1 -1
  33. data/docs/doc/Doing/Errors/DoingNoTraceError.html +7 -3
  34. data/docs/doc/Doing/Errors/DoingRuntimeError.html +7 -3
  35. data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
  36. data/docs/doc/Doing/Errors/EmptyInput.html +10 -2
  37. data/docs/doc/Doing/Errors/HistoryLimitError.html +194 -0
  38. data/docs/doc/Doing/Errors/InvalidPlugin.html +194 -0
  39. data/docs/doc/Doing/Errors/MissingBackupFile.html +194 -0
  40. data/docs/doc/Doing/Errors/NoResults.html +10 -2
  41. data/docs/doc/Doing/Errors/PluginException.html +1 -1
  42. data/docs/doc/Doing/Errors/UserCancelled.html +10 -2
  43. data/docs/doc/Doing/Errors/WrongCommand.html +10 -2
  44. data/docs/doc/Doing/Errors.html +9 -9
  45. data/docs/doc/Doing/Hooks.html +1 -1
  46. data/docs/doc/Doing/Item.html +114 -1576
  47. data/docs/doc/Doing/Items.html +121 -5
  48. data/docs/doc/Doing/Logger.html +1 -1
  49. data/docs/doc/Doing/Note.html +1 -1
  50. data/docs/doc/Doing/Pager.html +1 -1
  51. data/docs/doc/Doing/Plugins.html +1 -1
  52. data/docs/doc/Doing/Prompt.html +2 -2
  53. data/docs/doc/Doing/Section.html +1 -1
  54. data/docs/doc/Doing/TemplateString.html +2 -2
  55. data/docs/doc/Doing/Types.html +1 -1
  56. data/docs/doc/Doing/Util/Backup.html +5 -5
  57. data/docs/doc/Doing/Util.html +1 -1
  58. data/docs/doc/Doing/WWID.html +197 -4033
  59. data/docs/doc/Doing.html +2 -2
  60. data/docs/doc/FalseClass.html +1 -1
  61. data/docs/doc/GLI/Commands/Help.html +1 -1
  62. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
  63. data/docs/doc/GLI/Commands.html +1 -1
  64. data/docs/doc/GLI.html +1 -1
  65. data/docs/doc/Hash.html +1 -1
  66. data/docs/doc/Object.html +1 -1
  67. data/docs/doc/PhraseParser/Operator.html +1 -1
  68. data/docs/doc/PhraseParser/PhraseClause.html +1 -1
  69. data/docs/doc/PhraseParser/Query.html +1 -1
  70. data/docs/doc/PhraseParser/QueryParser.html +1 -1
  71. data/docs/doc/PhraseParser/QueryTransformer.html +1 -1
  72. data/docs/doc/PhraseParser/TermClause.html +1 -1
  73. data/docs/doc/PhraseParser.html +1 -1
  74. data/docs/doc/Status.html +1 -1
  75. data/docs/doc/String.html +1 -1
  76. data/docs/doc/Symbol.html +1 -1
  77. data/docs/doc/Time.html +1 -1
  78. data/docs/doc/TrueClass.html +1 -1
  79. data/docs/doc/_index.html +26 -5
  80. data/docs/doc/class_list.html +1 -1
  81. data/docs/doc/file.README.html +2 -2
  82. data/docs/doc/index.html +2 -2
  83. data/docs/doc/method_list.html +237 -709
  84. data/docs/doc/top-level-namespace.html +3 -3
  85. data/docs/index.md +1 -1
  86. data/doing.rdoc +54 -7
  87. data/lib/completion/_doing.zsh +6 -6
  88. data/lib/completion/doing.bash +10 -10
  89. data/lib/completion/doing.fish +8 -2
  90. data/lib/doing/add_options.rb +31 -1
  91. data/lib/doing/chronify/array.rb +68 -18
  92. data/lib/doing/chronify/string.rb +3 -1
  93. data/lib/doing/colors.rb +77 -30
  94. data/lib/doing/completion.rb +4 -5
  95. data/lib/doing/errors.rb +51 -35
  96. data/lib/doing/hooks.rb +3 -3
  97. data/lib/doing/item/dates.rb +112 -0
  98. data/lib/doing/item/query.rb +433 -0
  99. data/lib/doing/item/state.rb +59 -0
  100. data/lib/doing/item/tags.rb +87 -0
  101. data/lib/doing/item.rb +6 -537
  102. data/lib/doing/items.rb +39 -14
  103. data/lib/doing/plugin_manager.rb +3 -3
  104. data/lib/doing/plugins/export/template_export.rb +4 -4
  105. data/lib/doing/plugins/import/cal_to_json.scpt +0 -0
  106. data/lib/doing/prompt.rb +6 -8
  107. data/lib/doing/string/tags.rb +8 -2
  108. data/lib/doing/util_backup.rb +6 -8
  109. data/lib/doing/version.rb +1 -1
  110. data/lib/doing/wwid/display.rb +399 -0
  111. data/lib/doing/wwid/editor.rb +214 -0
  112. data/lib/doing/wwid/filetools.rb +186 -0
  113. data/lib/doing/wwid/filter.rb +218 -0
  114. data/lib/doing/wwid/guess.rb +87 -0
  115. data/lib/doing/wwid/interactive.rb +385 -0
  116. data/lib/doing/wwid/modify.rb +618 -0
  117. data/lib/doing/wwid/tags.rb +54 -0
  118. data/lib/doing/wwid/timers.rb +345 -0
  119. data/lib/doing/wwid/wwidutil.rb +104 -0
  120. data/lib/doing/wwid.rb +31 -2308
  121. metadata +19 -2
@@ -17,6 +17,17 @@ command %i[reset begin] do |c|
17
17
  c.desc 'Resume entry (remove @done)'
18
18
  c.switch %i[r resume], default_value: true
19
19
 
20
+ c.desc %(
21
+ Start and end times as a date/time range `doing done --from "1am to 8am"`.
22
+ Overrides any date argument and disables --resume.
23
+ )
24
+ c.arg_name 'TIME_RANGE'
25
+ c.flag [:from], must_match: REGEX_RANGE
26
+
27
+ c.desc %(Set completion date to start date plus interval (XX[mhd] or HH:MM). Disables --resume)
28
+ c.arg_name 'INTERVAL'
29
+ c.flag %i[t took for], type: DateIntervalString
30
+
20
31
  c.desc 'Change start date but do not remove @done (shortcut for --no-resume)'
21
32
  c.switch [:n]
22
33
 
@@ -62,9 +73,21 @@ command %i[reset begin] do |c|
62
73
 
63
74
  raise NoResults, 'No entry matching parameters was found.' unless last_entry
64
75
 
76
+ finish_date = nil
77
+
78
+ if options[:from]
79
+ options[:from] = options[:from].split(/#{REGEX_RANGE_INDICATOR}/).map do |time|
80
+ time =~ REGEX_TIME ? "today #{time.sub(/(?mi)(^.*?(?=\d+)|(?<=[ap]m).*?$)/, '')}" : time
81
+ end.join(' to ').split_date_range
82
+ reset_date, finish_date = options[:from]
83
+ options[:resume] = false if finish_date
84
+ end
85
+
86
+ finish_date = reset_date + options[:took] if options[:took]
87
+
65
88
  old_item = last_entry.clone
66
89
 
67
- @wwid.reset_item(last_entry, date: reset_date, resume: options[:resume])
90
+ @wwid.reset_item(last_entry, date: reset_date, finish_date: finish_date, resume: options[:resume])
68
91
  Doing::Hooks.trigger :post_entry_updated, @wwid, last_entry, old_item
69
92
  # new_entry = Doing::Item.new(last_entry.date, last_entry.title, last_entry.section, new_note)
70
93
 
@@ -94,7 +94,7 @@ command :select do |c|
94
94
 
95
95
  c.action do |_global_options, options, _args|
96
96
  if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)
97
- raise DoingRuntimeError, %(Invalid output type "#{options[:output]}")
97
+ raise InvalidPlugin.new('output', options[:output])
98
98
 
99
99
  end
100
100
 
data/bin/commands/show.rb CHANGED
@@ -22,35 +22,27 @@ command :show do |c|
22
22
  c.arg_name 'MAX'
23
23
  c.flag %i[c count], default_value: 0, must_match: /^\d+$/, type: Integer
24
24
 
25
+ c.desc "Highlight search matches in output. Only affects command line output"
26
+ c.switch %i[h hilite], default_value: Doing.settings.dig('search', 'highlight')
27
+
28
+ c.desc "Edit matching entries with #{Doing::Util.default_editor}"
29
+ c.switch %i[e editor], negatable: false, default_value: false
30
+
25
31
  c.desc 'Age (oldest|newest)'
26
32
  c.arg_name 'AGE'
27
33
  c.flag %i[a age], default_value: :newest, type: AgeSymbol
28
34
 
29
- c.desc "Highlight search matches in output. Only affects command line output"
30
- c.switch %i[h hilite], default_value: Doing.settings.dig('search', 'highlight')
31
-
32
35
  c.desc 'Sort order (asc/desc)'
33
36
  c.arg_name 'ORDER'
34
37
  c.flag %i[s sort], must_match: REGEX_SORT_ORDER, default_value: :asc, type: OrderSymbol
35
38
 
36
- c.desc "Output using a template from configuration"
37
- c.arg_name 'TEMPLATE_KEY'
38
- c.flag [:config_template], type: TemplateName, default_value: 'default'
39
-
40
- c.desc 'Override output format with a template string containing %placeholders'
41
- c.arg_name 'TEMPLATE_STRING'
42
- c.flag [:template]
43
-
44
39
  c.desc 'Select section or tag to display from a menu'
45
40
  c.switch %i[m menu], negatable: false, default_value: false
46
41
 
47
42
  c.desc 'Select from a menu of matching entries to perform additional operations'
48
43
  c.switch %i[i interactive], negatable: false, default_value: false
49
44
 
50
- c.desc "Output to export format (#{Doing::Plugins.plugin_names(type: :export)})"
51
- c.arg_name 'FORMAT'
52
- c.flag %i[o output]
53
-
45
+ add_options(:output_template, c)
54
46
  add_options(:time_display, c)
55
47
  add_options(:search, c)
56
48
  add_options(:tag_filter, c)
@@ -59,7 +51,7 @@ command :show do |c|
59
51
  c.action do |global_options, options, args|
60
52
  options[:fuzzy] = false
61
53
  if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)
62
- raise DoingRuntimeError, %(Invalid output type "#{options[:output]}")
54
+ raise InvalidPlugin.new('output', options[:output])
63
55
 
64
56
  end
65
57
 
@@ -11,18 +11,7 @@ command :since do |c|
11
11
  c.arg_name 'NAME'
12
12
  c.flag %i[s section], default_value: 'All'
13
13
 
14
- c.desc "Output to export format (#{Doing::Plugins.plugin_names(type: :export)})"
15
- c.arg_name 'FORMAT'
16
- c.flag %i[o output]
17
-
18
- c.desc "Output using a template from configuration"
19
- c.arg_name 'TEMPLATE_KEY'
20
- c.flag [:config_template], type: TemplateName, default_value: 'default'
21
-
22
- c.desc 'Override output format with a template string containing %placeholders'
23
- c.arg_name 'TEMPLATE_STRING'
24
- c.flag [:template]
25
-
14
+ add_options(:output_template, c)
26
15
  add_options(:time_display, c)
27
16
  add_options(:tag_filter, c)
28
17
  add_options(:search, c)
@@ -12,23 +12,12 @@ command :today do |c|
12
12
  c.arg_name 'NAME'
13
13
  c.flag %i[s section], default_value: 'All'
14
14
 
15
- c.desc "Output to export format (#{Doing::Plugins.plugin_names(type: :export)})"
16
- c.arg_name 'FORMAT'
17
- c.flag %i[o output]
18
-
19
- c.desc "Output using a template from configuration"
20
- c.arg_name 'TEMPLATE_KEY'
21
- c.flag [:config_template], type: TemplateName, default_value: 'today'
22
-
23
- c.desc 'Override output format with a template string containing %placeholders'
24
- c.arg_name 'TEMPLATE_STRING'
25
- c.flag [:template]
26
-
15
+ add_options(:output_template, c, default_template: 'today')
27
16
  add_options(:time_filter, c)
28
17
  add_options(:time_display, c)
29
18
 
30
19
  c.action do |_global_options, options, _args|
31
- raise DoingRuntimeError, %(Invalid output type "#{options[:output]}") if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)
20
+ raise InvalidPlugin.new('output', options[:output]) if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)
32
21
 
33
22
  options[:times] = true if options[:totals]
34
23
  options[:sort_tags] = options[:tag_sort]
data/bin/commands/view.rb CHANGED
@@ -59,7 +59,7 @@ command :view do |c|
59
59
  c.action do |global_options, options, args|
60
60
  options[:fuzzy] = false
61
61
  if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)
62
- raise DoingRuntimeError, %(Invalid output type "#{options[:output]}")
62
+ raise InvalidPlugin.new('output', options[:output])
63
63
 
64
64
  end
65
65
 
@@ -11,23 +11,12 @@ command :yesterday do |c|
11
11
  c.arg_name 'NAME'
12
12
  c.flag %i[s section], default_value: 'All'
13
13
 
14
- c.desc "Output to export format (#{Doing::Plugins.plugin_names(type: :export)})"
15
- c.arg_name 'FORMAT'
16
- c.flag %i[o output]
17
-
18
- c.desc "Output using a template from configuration"
19
- c.arg_name 'TEMPLATE_KEY'
20
- c.flag [:config_template], type: TemplateName, default_value: 'today'
21
-
22
- c.desc 'Override output format with a template string containing %placeholders'
23
- c.arg_name 'TEMPLATE_STRING'
24
- c.flag [:template]
25
-
14
+ add_options(:output_template, c, default_template: 'today')
26
15
  add_options(:time_filter, c)
27
16
  add_options(:time_display, c)
28
17
 
29
18
  c.action do |_global_options, options, _args|
30
- raise DoingRuntimeError, %(Invalid output type "#{options[:output]}") if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)
19
+ raise InvalidPlugin.new('output', options[:output]) if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)
31
20
 
32
21
  options[:sort_tags] = options[:tag_sort]
33
22
 
data/bin/doing CHANGED
@@ -96,22 +96,22 @@ accept TemplateName do |value|
96
96
  end
97
97
 
98
98
  accept DateBeginString do |value|
99
- if value =~ REGEX_TIME
100
- res = value
101
- else
102
- res = value.chronify(guess: :begin, future: false)
103
- end
99
+ res = if value =~ REGEX_TIME
100
+ value
101
+ else
102
+ value.chronify(guess: :begin, future: false)
103
+ end
104
104
  raise InvalidTimeExpression, 'Invalid start date' unless res
105
105
 
106
106
  res
107
107
  end
108
108
 
109
109
  accept DateEndString do |value|
110
- if value =~ REGEX_TIME
111
- res = value
112
- else
113
- res = value.chronify(guess: :end, future: false)
114
- end
110
+ res = if value =~ REGEX_TIME
111
+ value
112
+ else
113
+ value.chronify(guess: :end, future: false)
114
+ end
115
115
  raise InvalidTimeExpression, 'Invalid end date' unless res
116
116
 
117
117
  res
@@ -211,18 +211,19 @@ add_commands(%w[undo redo])
211
211
  ## Hidden commands
212
212
  add_commands(%w[commands_accepting install_fzf])
213
213
  ## Optional commands
214
- add_commands(%w[again cancel flag meanwhile reset tags today yesterday since tag_dir colors completion plugins sections template views changes])
214
+ add_commands(%w[again cancel flag meanwhile reset tags today yesterday since])
215
+ add_commands(%w[tag_dir colors completion plugins sections template views changes])
215
216
 
216
217
  pre do |global, _command, _options, _args|
217
218
  # global[:pager] ||= Doing.setting('paginate')
218
219
  Doing::Pager.paginate = global[:pager]
219
220
 
220
221
  $stdout.puts "doing v#{Doing::VERSION}" if global[:version]
221
- unless $stdout.isatty
222
- Doing::Color.coloring = global[:pager] ? global[:color] : false
223
- else
224
- Doing::Color.coloring = global[:color]
225
- end
222
+ Doing::Color.coloring = if $stdout.isatty
223
+ global[:color]
224
+ else
225
+ global[:pager] ? global[:color] : false
226
+ end
226
227
 
227
228
  # Return true to proceed; false to abort and not call the
228
229
  # chosen command
@@ -232,9 +233,16 @@ pre do |global, _command, _options, _args|
232
233
  end
233
234
 
234
235
  on_error do |exception|
235
- if exception.kind_of?(GLI::UnknownCommand) && ARGV.count > 1
236
- exit run(['now'].concat(ARGV.unshift(@command)))
237
- elsif exception.kind_of?(SystemExit)
236
+ if exception.is_a?(GLI::UnknownCommand)
237
+ if ARGV.count > 1
238
+ exit run(['now'].concat(ARGV.unshift(@command)))
239
+ else
240
+ Doing::Color.coloring = $stdout.isatty
241
+ Doing.logger.error('Unknown Command:', @command)
242
+ Doing.logger.output_results
243
+ false
244
+ end
245
+ elsif exception.is_a?(SystemExit)
238
246
  false
239
247
  else
240
248
  # Doing.logger.error('Fatal:', exception)
@@ -243,7 +251,7 @@ on_error do |exception|
243
251
  end
244
252
  end
245
253
 
246
- post do |global, _command, _options, _args|
254
+ post do |_global, _command, _options, _args|
247
255
  # Use skips_post before a command to skip this
248
256
  # block on that command only
249
257
  Doing.logger.output_results
@@ -251,23 +259,16 @@ post do |global, _command, _options, _args|
251
259
  Doing.logger.log_benchmarks
252
260
  end
253
261
 
254
- around do |global, command, options, arguments, code|
262
+ around do |global, command, _options, _arguments, code|
255
263
  Doing.logger.benchmark("command_#{command.name}".to_sym, :start)
256
- # Doing.logger.debug('Pager:', "Global: #{global[:pager]}, Config: #{Doing.setting('paginate')}, Pager: #{Doing::Pager.paginate}")
257
- if env_log_level.nil?
258
- Doing.logger.adjust_verbosity(global)
259
- end
264
+ # pager_msg = "Global: #{global[:pager]}, Config: #{Doing.setting('paginate')}, Pager: #{Doing::Pager.paginate}"
265
+ # Doing.logger.debug('Pager:', pager_msg)
266
+ Doing.logger.adjust_verbosity(global) if env_log_level.nil?
260
267
 
261
- global[:stdin] = if $stdin.stat.size.positive? || $stdin.fcntl(Fcntl::F_GETFL, 0) == 0
262
- $stdin.read.strip
263
- else
264
- nil
265
- end
268
+ global[:stdin] = $stdin.read.strip if $stdin.stat.size.positive? || $stdin.fcntl(Fcntl::F_GETFL, 0).zero?
266
269
  global[:stdin] = nil unless global[:stdin].good?
267
270
 
268
- if global[:stdout]
269
- Doing.logger.logdev = $stdout
270
- end
271
+ Doing.logger.logdev = $stdout if global[:stdout]
271
272
 
272
273
  if global[:yes]
273
274
  Doing::Prompt.force_answer = :yes
@@ -286,8 +287,12 @@ around do |global, command, options, arguments, code|
286
287
  end
287
288
 
288
289
  if global[:config_file] && global[:config_file] != Doing.config.config_file
289
- Doing.logger.warn(format('%sWARNING:%s %sThe use of --config_file is deprecated, please set the environment variable DOING_CONFIG instead.', @colors.flamingo, @colors.default, @colors.boldred))
290
- Doing.logger.warn(format('%sTo set it just for the current command, use: %sDOING_CONFIG=/path/to/doingrc doing [command]%s', @colors.red, @colors.boldwhite, @colors.default))
290
+ msg = Doing::Color.template(['{Rwb}WARNING:{x} {br}The use of --config_file is deprecated,',
291
+ 'please set the environment variable DOING_CONFIG instead.{x}'])
292
+ Doing.logger.warn(msg)
293
+ msg = Doing::Color.template(['{r}To set it just for the current command, use:',
294
+ '{bw}DOING_CONFIG=/path/to/doingrc doing [command]{x}'])
295
+ Doing.logger.warn(msg)
291
296
 
292
297
  cf = File.expand_path(global[:config_file])
293
298
  raise MissingConfigFile, "Config file not found (#{global[:config_file]})" unless File.exist?(cf)
@@ -310,7 +315,7 @@ around do |global, command, options, arguments, code|
310
315
 
311
316
  code.call
312
317
 
313
- Doing.logger.benchmark("command_#{command.name.to_s}".to_sym, :finish)
318
+ Doing.logger.benchmark("command_#{command.name}".to_sym, :finish)
314
319
  end
315
320
 
316
321
  commands_from File.expand_path(Doing.setting('plugins.command_path')) if Doing.setting('plugins.command_path')
data/docs/doc/Array.html CHANGED
@@ -195,7 +195,7 @@ has content</p>
195
195
  </div>
196
196
 
197
197
  <div id="footer">
198
- Generated on Sat Mar 12 11:56:35 2022 by
198
+ Generated on Tue Mar 15 11:14:29 2022 by
199
199
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
200
200
  0.9.27 (ruby-3.0.1).
201
201
  </div>
@@ -283,7 +283,7 @@
283
283
  </div>
284
284
 
285
285
  <div id="footer">
286
- Generated on Sat Mar 12 11:56:36 2022 by
286
+ Generated on Tue Mar 15 11:14:30 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 Sat Mar 12 11:56:36 2022 by
165
+ Generated on Tue Mar 15 11:14:30 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 Sat Mar 12 11:56:36 2022 by
410
+ Generated on Tue Mar 15 11:14:30 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 &quot;clause&quot; node is added to the parse
125
125
  </div>
126
126
 
127
127
  <div id="footer">
128
- Generated on Sat Mar 12 11:56:36 2022 by
128
+ Generated on Tue Mar 15 11:14:30 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 Sat Mar 12 11:56:36 2022 by
117
+ Generated on Tue Mar 15 11:14:30 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 Sat Mar 12 11:56:35 2022 by
108
+ Generated on Tue Mar 15 11:14:29 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>