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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +61 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/Rakefile +7 -1
- data/bin/commands/config.rb +43 -34
- data/bin/commands/done.rb +1 -18
- data/bin/commands/finish.rb +30 -25
- data/bin/commands/grep.rb +3 -14
- data/bin/commands/last.rb +2 -8
- data/bin/commands/meanwhile.rb +13 -6
- data/bin/commands/now.rb +2 -4
- data/bin/commands/on.rb +4 -15
- data/bin/commands/recent.rb +2 -8
- data/bin/commands/reset.rb +24 -1
- data/bin/commands/select.rb +1 -1
- data/bin/commands/show.rb +8 -16
- data/bin/commands/since.rb +1 -12
- data/bin/commands/today.rb +2 -13
- data/bin/commands/view.rb +1 -1
- data/bin/commands/yesterday.rb +2 -13
- data/bin/doing +41 -36
- data/docs/doc/Array.html +1 -1
- 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 +166 -20
- data/docs/doc/Doing/Completion.html +1 -1
- data/docs/doc/Doing/Configuration.html +1 -1
- data/docs/doc/Doing/Errors/DoingNoTraceError.html +7 -3
- data/docs/doc/Doing/Errors/DoingRuntimeError.html +7 -3
- data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
- data/docs/doc/Doing/Errors/EmptyInput.html +10 -2
- data/docs/doc/Doing/Errors/HistoryLimitError.html +194 -0
- data/docs/doc/Doing/Errors/InvalidPlugin.html +194 -0
- data/docs/doc/Doing/Errors/MissingBackupFile.html +194 -0
- data/docs/doc/Doing/Errors/NoResults.html +10 -2
- data/docs/doc/Doing/Errors/PluginException.html +1 -1
- data/docs/doc/Doing/Errors/UserCancelled.html +10 -2
- data/docs/doc/Doing/Errors/WrongCommand.html +10 -2
- data/docs/doc/Doing/Errors.html +9 -9
- data/docs/doc/Doing/Hooks.html +1 -1
- data/docs/doc/Doing/Item.html +114 -1576
- data/docs/doc/Doing/Items.html +121 -5
- data/docs/doc/Doing/Logger.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 +2 -2
- data/docs/doc/Doing/Section.html +1 -1
- data/docs/doc/Doing/TemplateString.html +2 -2
- data/docs/doc/Doing/Types.html +1 -1
- data/docs/doc/Doing/Util/Backup.html +5 -5
- data/docs/doc/Doing/Util.html +1 -1
- data/docs/doc/Doing/WWID.html +197 -4033
- data/docs/doc/Doing.html +2 -2
- data/docs/doc/FalseClass.html +1 -1
- data/docs/doc/GLI/Commands/Help.html +1 -1
- data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
- data/docs/doc/GLI/Commands.html +1 -1
- data/docs/doc/GLI.html +1 -1
- data/docs/doc/Hash.html +1 -1
- data/docs/doc/Object.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 +1 -1
- data/docs/doc/Symbol.html +1 -1
- data/docs/doc/Time.html +1 -1
- data/docs/doc/TrueClass.html +1 -1
- data/docs/doc/_index.html +26 -5
- 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 +237 -709
- data/docs/doc/top-level-namespace.html +3 -3
- data/docs/index.md +1 -1
- data/doing.rdoc +54 -7
- data/lib/completion/_doing.zsh +6 -6
- data/lib/completion/doing.bash +10 -10
- data/lib/completion/doing.fish +8 -2
- data/lib/doing/add_options.rb +31 -1
- data/lib/doing/chronify/array.rb +68 -18
- data/lib/doing/chronify/string.rb +3 -1
- data/lib/doing/colors.rb +77 -30
- data/lib/doing/completion.rb +4 -5
- data/lib/doing/errors.rb +51 -35
- data/lib/doing/hooks.rb +3 -3
- data/lib/doing/item/dates.rb +112 -0
- data/lib/doing/item/query.rb +433 -0
- data/lib/doing/item/state.rb +59 -0
- data/lib/doing/item/tags.rb +87 -0
- data/lib/doing/item.rb +6 -537
- data/lib/doing/items.rb +39 -14
- data/lib/doing/plugin_manager.rb +3 -3
- data/lib/doing/plugins/export/template_export.rb +4 -4
- data/lib/doing/plugins/import/cal_to_json.scpt +0 -0
- data/lib/doing/prompt.rb +6 -8
- data/lib/doing/string/tags.rb +8 -2
- data/lib/doing/util_backup.rb +6 -8
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid/display.rb +399 -0
- data/lib/doing/wwid/editor.rb +214 -0
- data/lib/doing/wwid/filetools.rb +186 -0
- data/lib/doing/wwid/filter.rb +218 -0
- data/lib/doing/wwid/guess.rb +87 -0
- data/lib/doing/wwid/interactive.rb +385 -0
- data/lib/doing/wwid/modify.rb +618 -0
- data/lib/doing/wwid/tags.rb +54 -0
- data/lib/doing/wwid/timers.rb +345 -0
- data/lib/doing/wwid/wwidutil.rb +104 -0
- data/lib/doing/wwid.rb +31 -2308
- metadata +19 -2
data/bin/commands/reset.rb
CHANGED
|
@@ -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
|
|
data/bin/commands/select.rb
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
|
54
|
+
raise InvalidPlugin.new('output', options[:output])
|
|
63
55
|
|
|
64
56
|
end
|
|
65
57
|
|
data/bin/commands/since.rb
CHANGED
|
@@ -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
|
-
|
|
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)
|
data/bin/commands/today.rb
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
62
|
+
raise InvalidPlugin.new('output', options[:output])
|
|
63
63
|
|
|
64
64
|
end
|
|
65
65
|
|
data/bin/commands/yesterday.rb
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
|
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
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
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.
|
|
236
|
-
|
|
237
|
-
|
|
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 |
|
|
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,
|
|
262
|
+
around do |global, command, _options, _arguments, code|
|
|
255
263
|
Doing.logger.benchmark("command_#{command.name}".to_sym, :start)
|
|
256
|
-
#
|
|
257
|
-
|
|
258
|
-
|
|
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)
|
|
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.
|
|
290
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 "clause" node is added to the parse
|
|
|
125
125
|
</div>
|
|
126
126
|
|
|
127
127
|
<div id="footer">
|
|
128
|
-
Generated on
|
|
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
|
|
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
|
|
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>
|