toys 0.13.1 → 0.14.2

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.
@@ -51,6 +51,19 @@ module Toys
51
51
  # thrown during tool execution.
52
52
  #
53
53
  class ContextualError < ::StandardError
54
+ ##
55
+ # Construct a ContextualError. This exception type is thrown from
56
+ # {ContextualError.capture} and {ContextualError.capture_path} and should
57
+ # not be constructed directly.
58
+ #
59
+ # @private This interface is internal and subject to change without warning.
60
+ #
61
+ def initialize(cause, banner,
62
+ config_path: nil, config_line: nil,
63
+ tool_name: nil, tool_args: nil)
64
+ # Source available in the toys-core gem
65
+ end
66
+
54
67
  ##
55
68
  # The underlying exception
56
69
  # @return [::StandardError]
@@ -88,6 +101,26 @@ module Toys
88
101
  attr_reader :tool_args
89
102
 
90
103
  class << self
104
+ ##
105
+ # Execute the given block, and wrap any exceptions thrown with a
106
+ # ContextualError. This is intended for loading a config file from the
107
+ # given path, and wraps any Ruby parsing errors.
108
+ #
109
+ # @private This interface is internal and subject to change without warning.
110
+ #
111
+ def capture_path(banner, path, **opts)
112
+ # Source available in the toys-core gem
113
+ end
114
+
115
+ ##
116
+ # Execute the given block, and wrap any exceptions thrown with a
117
+ # ContextualError.
118
+ #
119
+ # @private This interface is internal and subject to change without warning.
120
+ #
121
+ def capture(banner, **opts)
122
+ # Source available in the toys-core gem
123
+ end
91
124
  end
92
125
  end
93
126
  end
@@ -77,6 +77,7 @@ module Toys
77
77
  # The type of flag (`:boolean` or `:value`)
78
78
  # @return [:boolean] if this is a boolean flag (i.e. no value)
79
79
  # @return [:value] if this flag takes a value (even if optional)
80
+ # @return [nil] if this flag is indeterminate
80
81
  #
81
82
  attr_reader :flag_type
82
83
 
@@ -111,6 +112,16 @@ module Toys
111
112
  # @return [String]
112
113
  #
113
114
  attr_reader :canonical_str
115
+
116
+ ##
117
+ # This method is accessible for testing only.
118
+ #
119
+ # @private This interface is internal and subject to change without warning.
120
+ #
121
+ def configure_canonical(canonical_flag_type, canonical_value_type,
122
+ canonical_value_label, canonical_value_delim)
123
+ # Source available in the toys-core gem
124
+ end
114
125
  end
115
126
 
116
127
  ##
@@ -5,4 +5,10 @@
5
5
  # is parsed, a module is created under this parent for that file's constants.
6
6
  #
7
7
  module Toys::InputFile # rubocop:disable Style/ClassAndModuleChildren
8
+ ##
9
+ # @private This interface is internal and subject to change without warning.
10
+ #
11
+ def self.evaluate(tool_class, words, priority, remaining_words, source, loader)
12
+ # Source available in the toys-core gem
13
+ end
8
14
  end
@@ -183,22 +183,31 @@ module Toys
183
183
 
184
184
  ##
185
185
  # Returns a list of subtools for the given path, loading from the
186
- # configuration if necessary.
186
+ # configuration if necessary. The list will be sorted by name.
187
187
  #
188
188
  # @param words [Array<String>] The name of the parent tool
189
189
  # @param recursive [Boolean] If true, return all subtools recursively
190
190
  # rather than just the immediate children (the default)
191
191
  # @param include_hidden [Boolean] If true, include hidden subtools,
192
- # e.g. names beginning with underscores.
192
+ # i.e. names beginning with underscores. Defaults to false.
193
+ # @param include_namespaces [Boolean] If true, include namespaces,
194
+ # i.e. tools that are not runnable but have descendents that would have
195
+ # been listed by the current filters. Defaults to false.
196
+ # @param include_non_runnable [Boolean] If true, include tools that have
197
+ # no children and are not runnable. Defaults to false.
193
198
  # @return [Array<Toys::ToolDefinition>] An array of subtools.
194
199
  #
195
- def list_subtools(words, recursive: false, include_hidden: false)
200
+ def list_subtools(words,
201
+ recursive: false,
202
+ include_hidden: false,
203
+ include_namespaces: false,
204
+ include_non_runnable: false)
196
205
  # Source available in the toys-core gem
197
206
  end
198
207
 
199
208
  ##
200
- # Returns true if the given path has at least one subtool. Loads from the
201
- # configuration if necessary.
209
+ # Returns true if the given path has at least one subtool, even if they are
210
+ # hidden or non-runnable. Loads from the configuration if necessary.
202
211
  #
203
212
  # @param words [Array<String>] The name of the parent tool
204
213
  # @return [Boolean]
@@ -218,5 +227,137 @@ module Toys
218
227
  def split_path(str)
219
228
  # Source available in the toys-core gem
220
229
  end
230
+
231
+ #### INTERNAL METHODS ####
232
+
233
+ ##
234
+ # Get or create the tool definition for the given name and priority.
235
+ #
236
+ # @private This interface is internal and subject to change without warning.
237
+ #
238
+ def get_tool(words, priority, tool_class = nil)
239
+ # Source available in the toys-core gem
240
+ end
241
+
242
+ ##
243
+ # Returns the active tool specified by the given words, with the given
244
+ # priority, without doing any loading. If the given priority matches the
245
+ # currently active tool, returns it. If the given priority is lower than
246
+ # the active priority, returns `nil`. If the given priority is higher than
247
+ # the active priority, returns and activates a new tool.
248
+ #
249
+ # @private This interface is internal and subject to change without warning.
250
+ #
251
+ def activate_tool(words, priority)
252
+ # Source available in the toys-core gem
253
+ end
254
+
255
+ ##
256
+ # Returns true if the given tool name currently exists in the loader.
257
+ # Does not load the tool if not found.
258
+ #
259
+ # @private This interface is internal and subject to change without warning.
260
+ #
261
+ def tool_defined?(words)
262
+ # Source available in the toys-core gem
263
+ end
264
+
265
+ ##
266
+ # Build a new tool.
267
+ # Called only from ToolData.
268
+ #
269
+ # @private This interface is internal and subject to change without warning.
270
+ #
271
+ def build_tool(words, priority, tool_class = nil)
272
+ # Source available in the toys-core gem
273
+ end
274
+
275
+ ##
276
+ # Stop search at the given priority. Returns true if successful.
277
+ # Called only from the DSL.
278
+ #
279
+ # @private This interface is internal and subject to change without warning.
280
+ #
281
+ def stop_loading_at_priority(priority)
282
+ # Source available in the toys-core gem
283
+ end
284
+
285
+ ##
286
+ # Loads the subtree under the given prefix.
287
+ #
288
+ # @private This interface is internal and subject to change without warning.
289
+ #
290
+ def load_for_prefix(prefix)
291
+ # Source available in the toys-core gem
292
+ end
293
+
294
+ ##
295
+ # Attempt to get a well-known mixin module for the given symbolic name.
296
+ #
297
+ # @private This interface is internal and subject to change without warning.
298
+ #
299
+ def resolve_standard_mixin(name)
300
+ # Source available in the toys-core gem
301
+ end
302
+
303
+ ##
304
+ # Attempt to get a well-known template class for the given symbolic name.
305
+ #
306
+ # @private This interface is internal and subject to change without warning.
307
+ #
308
+ def resolve_standard_template(name)
309
+ # Source available in the toys-core gem
310
+ end
311
+
312
+ ##
313
+ # Load configuration from the given path. This is called from the `load`
314
+ # directive in the DSL.
315
+ #
316
+ # @private This interface is internal and subject to change without warning.
317
+ #
318
+ def load_path(parent_source, path, words, remaining_words, priority)
319
+ # Source available in the toys-core gem
320
+ end
321
+
322
+ ##
323
+ # Load configuration from the given git remote. This is called from the
324
+ # `load_git` directive in the DSL.
325
+ #
326
+ # @private This interface is internal and subject to change without warning.
327
+ #
328
+ def load_git(parent_source, git_remote, git_path, git_commit, words, remaining_words, priority,
329
+ update: false)
330
+ # Source available in the toys-core gem
331
+ end
332
+
333
+ ##
334
+ # Load a subtool block. Called from the `tool` directive in the DSL.
335
+ #
336
+ # @private This interface is internal and subject to change without warning.
337
+ #
338
+ def load_block(parent_source, block, words, remaining_words, priority)
339
+ # Source available in the toys-core gem
340
+ end
341
+
342
+ @git_cache_mutex = ::Monitor.new
343
+ @default_git_cache = nil
344
+
345
+ ##
346
+ # Get a global default GitCache.
347
+ #
348
+ # @private This interface is internal and subject to change without warning.
349
+ #
350
+ def self.default_git_cache
351
+ # Source available in the toys-core gem
352
+ end
353
+
354
+ ##
355
+ # Determine the next setting for remaining_words, given a word.
356
+ #
357
+ # @private This interface is internal and subject to change without warning.
358
+ #
359
+ def self.next_remaining_words(remaining_words, word)
360
+ # Source available in the toys-core gem
361
+ end
221
362
  end
222
363
  end
@@ -123,12 +123,21 @@ module Toys
123
123
  def stack(input)
124
124
  # Source available in the toys-core gem
125
125
  end
126
+
127
+ ##
128
+ # Create a spec from an array specification.
129
+ #
130
+ # @private This interface is internal and subject to change without warning.
131
+ #
132
+ def spec_from_array(array)
133
+ # Source available in the toys-core gem
134
+ end
126
135
  end
127
136
 
128
137
  ##
129
138
  # **_Defined in the toys-core gem_**
130
139
  #
131
- # A base class that provides default NOP implementations of the middleware
140
+ # A base class that provides default no-op implementation of the middleware
132
141
  # interface. This base class may optionally be subclassed by a middleware
133
142
  # implementation.
134
143
  #
@@ -214,12 +223,34 @@ module Toys
214
223
  def hash
215
224
  # Source available in the toys-core gem
216
225
  end
226
+
227
+ ##
228
+ # Internal constructor. Use {Toys::Middleware.spec} instead.
229
+ #
230
+ # @private This interface is internal and subject to change without warning.
231
+ #
232
+ def initialize(object, name, args, kwargs, block)
233
+ # Source available in the toys-core gem
234
+ end
217
235
  end
218
236
 
219
237
  ##
220
238
  # **_Defined in the toys-core gem_**
221
239
  #
222
- # A stack of middleware specs.
240
+ # A stack of middleware specs, which can be applied in order to a tool.
241
+ #
242
+ # A middleware stack is separated into three groups:
243
+ #
244
+ # * {#pre_specs}, which are applied first.
245
+ # * {#default_specs}, which are applied next. The default specs are set
246
+ # when the stack is created and are generally not modified.
247
+ # * {#post_specs}, which are applied third.
248
+ #
249
+ # When adding middleware to a stack, you should normally add them to the
250
+ # pre or post specs. By default, {Stack#add} appends to the pre specs,
251
+ # inserting new middleware just before the defaults.
252
+ #
253
+ # Use {Toys::Middleware.stack} to create a middleware stack.
223
254
  #
224
255
  class Stack
225
256
  ##
@@ -290,6 +321,15 @@ module Toys
290
321
  def hash
291
322
  # Source available in the toys-core gem
292
323
  end
324
+
325
+ ##
326
+ # Internal constructor. Use {Toys::Middleware.stack} instead.
327
+ #
328
+ # @private This interface is internal and subject to change without warning.
329
+ #
330
+ def initialize(default_specs: nil, pre_specs: nil, post_specs: nil)
331
+ # Source available in the toys-core gem
332
+ end
293
333
  end
294
334
  end
295
335
  end
@@ -332,6 +332,13 @@ module Toys
332
332
  # @return [String, nil]
333
333
  #
334
334
  attr_reader :type_description
335
+
336
+ ##
337
+ # @private This interface is internal and subject to change without warning.
338
+ #
339
+ def initialize(value, settings_class, field_name, type_description)
340
+ # Source available in the toys-core gem
341
+ end
335
342
  end
336
343
 
337
344
  ##
@@ -502,6 +509,16 @@ module Toys
502
509
  def settings_group(name, klass = nil, &block)
503
510
  # Source available in the toys-core gem
504
511
  end
512
+
513
+ ##
514
+ # @private This interface is internal and subject to change without warning.
515
+ #
516
+ # Returns the fields hash. This is shared between the settings class and
517
+ # all its instances.
518
+ #
519
+ def fields
520
+ # Source available in the toys-core gem
521
+ end
505
522
  end
506
523
  end
507
524
  end
@@ -123,5 +123,100 @@ module Toys
123
123
  def apply_lib_paths
124
124
  # Source available in the toys-core gem
125
125
  end
126
+
127
+ ##
128
+ # Create a SourceInfo.
129
+ #
130
+ # @private This interface is internal and subject to change without warning.
131
+ #
132
+ def initialize(parent, priority, context_directory, source_type, source_path, source_proc,
133
+ git_remote, git_path, git_commit, source_name, data_dir_name, lib_dir_name)
134
+ # Source available in the toys-core gem
135
+ end
136
+
137
+ ##
138
+ # Create a child SourceInfo relative to the parent path.
139
+ #
140
+ # @private This interface is internal and subject to change without warning.
141
+ #
142
+ def relative_child(filename, source_name: nil)
143
+ # Source available in the toys-core gem
144
+ end
145
+
146
+ ##
147
+ # Create a child SourceInfo with an absolute path.
148
+ #
149
+ # @private This interface is internal and subject to change without warning.
150
+ #
151
+ def absolute_child(child_path, source_name: nil)
152
+ # Source available in the toys-core gem
153
+ end
154
+
155
+ ##
156
+ # Create a child SourceInfo with a git source.
157
+ #
158
+ # @private This interface is internal and subject to change without warning.
159
+ #
160
+ def git_child(child_git_remote, child_git_path, child_git_commit, child_path,
161
+ source_name: nil)
162
+ # Source available in the toys-core gem
163
+ end
164
+
165
+ ##
166
+ # Create a proc child SourceInfo
167
+ #
168
+ # @private This interface is internal and subject to change without warning.
169
+ #
170
+ def proc_child(child_proc, source_name: nil)
171
+ # Source available in the toys-core gem
172
+ end
173
+
174
+ ##
175
+ # Create a root source info for a file path.
176
+ #
177
+ # @private This interface is internal and subject to change without warning.
178
+ #
179
+ def self.create_path_root(source_path, priority,
180
+ context_directory: nil,
181
+ data_dir_name: nil,
182
+ lib_dir_name: nil,
183
+ source_name: nil)
184
+ # Source available in the toys-core gem
185
+ end
186
+
187
+ ##
188
+ # Create a root source info for a cached git repo.
189
+ #
190
+ # @private This interface is internal and subject to change without warning.
191
+ #
192
+ def self.create_git_root(git_remote, git_path, git_commit, source_path, priority,
193
+ context_directory: nil,
194
+ data_dir_name: nil,
195
+ lib_dir_name: nil,
196
+ source_name: nil)
197
+ # Source available in the toys-core gem
198
+ end
199
+
200
+ ##
201
+ # Create a root source info for a proc.
202
+ #
203
+ # @private This interface is internal and subject to change without warning.
204
+ #
205
+ def self.create_proc_root(source_proc, priority,
206
+ context_directory: nil,
207
+ data_dir_name: nil,
208
+ lib_dir_name: nil,
209
+ source_name: nil)
210
+ # Source available in the toys-core gem
211
+ end
212
+
213
+ ##
214
+ # Check a path and determine the canonical path and type.
215
+ #
216
+ # @private This interface is internal and subject to change without warning.
217
+ #
218
+ def self.check_path(path, lenient)
219
+ # Source available in the toys-core gem
220
+ end
126
221
  end
127
222
  end
@@ -8,7 +8,7 @@ module Toys
8
8
  # in a string. Also provides an interface for controlling a spawned
9
9
  # process's streams.
10
10
  #
11
- # You may make these methods available to your tool by including the
11
+ # You can make these methods available to your tool by including the
12
12
  # following directive in your tool configuration:
13
13
  #
14
14
  # include :exec
@@ -54,54 +54,88 @@ module Toys
54
54
  # options.
55
55
  #
56
56
  # Three general strategies are available for custom stream handling. First,
57
- # you may redirect to other streams such as files, IO objects, or Ruby
57
+ # you can redirect to other streams such as files, IO objects, or Ruby
58
58
  # strings. Some of these options map directly to options provided by the
59
- # `Process#spawn` method. Second, you may use a controller to manipulate
60
- # the streams programmatically. Third, you may capture output stream data
59
+ # `Process#spawn` method. Second, you can use a controller to manipulate
60
+ # the streams programmatically. Third, you can capture output stream data
61
61
  # and make it available in the result.
62
62
  #
63
63
  # Following is a full list of the stream handling options, along with how
64
64
  # to specify them using the `:in`, `:out`, and `:err` options.
65
65
  #
66
- # * **Inherit parent stream:** You may inherit the corresponding stream
66
+ # * **Inherit parent stream:** You can inherit the corresponding stream
67
67
  # in the parent process by passing `:inherit` as the option value. This
68
68
  # is the default if the subprocess is *not* run in the background.
69
- # * **Redirect to null:** You may redirect to a null stream by passing
69
+ #
70
+ # * **Redirect to null:** You can redirect to a null stream by passing
70
71
  # `:null` as the option value. This connects to a stream that is not
71
72
  # closed but contains no data, i.e. `/dev/null` on unix systems. This
72
73
  # is the default if the subprocess is run in the background.
73
- # * **Close the stream:** You may close the stream by passing `:close` as
74
+ #
75
+ # * **Close the stream:** You can close the stream by passing `:close` as
74
76
  # the option value. This is the same as passing `:close` to
75
77
  # `Process#spawn`.
76
- # * **Redirect to a file:** You may redirect to a file. This reads from
78
+ #
79
+ # * **Redirect to a file:** You can redirect to a file. This reads from
77
80
  # an existing file when connected to `:in`, and creates or appends to a
78
81
  # file when connected to `:out` or `:err`. To specify a file, use the
79
- # setting `[:file, "/path/to/file"]`. You may also, when writing a
82
+ # setting `[:file, "/path/to/file"]`. You can also, when writing a
80
83
  # file, append an optional mode and permission code to the array. For
81
84
  # example, `[:file, "/path/to/file", "a", 0644]`.
82
- # * **Redirect to an IO object:** You may redirect to an IO object in the
83
- # parent process, by passing the IO object as the option value. You may
85
+ #
86
+ # * **Redirect to an IO object:** You can redirect to an IO object in the
87
+ # parent process, by passing the IO object as the option value. You can
84
88
  # use any IO object. For example, you could connect the child's output
85
89
  # to the parent's error using `out: $stderr`, or you could connect to
86
90
  # an existing File stream. Unlike `Process#spawn`, this works for IO
87
91
  # objects that do not have a corresponding file descriptor (such as
88
92
  # StringIO objects). In such a case, a thread will be spawned to pipe
89
93
  # the IO data through to the child process.
90
- # * **Combine with another child stream:** You may redirect one child
94
+ #
95
+ # * **Redirect to a pipe:** You can redirect to a pipe created using
96
+ # `IO.pipe` (i.e. a two-element array of read and write IO objects) by
97
+ # passing the array as the option value. This will connect the
98
+ # appropriate IO (either read or write), and close it in the parent.
99
+ # Thus, you can connect only one process to each end. If you want more
100
+ # direct control over IO closing behavior, pass the IO object (i.e. the
101
+ # element of the pipe array) directly.
102
+ #
103
+ # * **Combine with another child stream:** You can redirect one child
91
104
  # output stream to another, to combine them. To merge the child's error
92
105
  # stream into its output stream, use `err: [:child, :out]`.
93
- # * **Read from a string:** You may pass a string to the input stream by
106
+ #
107
+ # * **Read from a string:** You can pass a string to the input stream by
94
108
  # setting `[:string, "the string"]`. This works only for `:in`.
95
- # * **Capture output stream:** You may capture a stream and make it
109
+ #
110
+ # * **Capture output stream:** You can capture a stream and make it
96
111
  # available on the {Toys::Utils::Exec::Result} object, using the
97
112
  # setting `:capture`. This works only for the `:out` and `:err`
98
113
  # streams.
99
- # * **Use the controller:** You may hook a stream to the controller using
114
+ #
115
+ # * **Use the controller:** You can hook a stream to the controller using
100
116
  # the setting `:controller`. You can then manipulate the stream via the
101
117
  # controller. If you pass a block to {Toys::StandardMixins::Exec#exec},
102
118
  # it yields the {Toys::Utils::Exec::Controller}, giving you access to
103
119
  # streams.
104
120
  #
121
+ # * **Make copies of an output stream:** You can "tee," or duplicate the
122
+ # `:out` or `:err` stream and redirect those copies to various
123
+ # destinations. To specify a tee, use the setting `[:tee, ...]` where
124
+ # the additional array elements include two or more of the following.
125
+ # See the corresponding documentation above for more detail.
126
+ # * `:inherit` to direct to the parent process's stream.
127
+ # * `:capture` to capture the stream and store it in the result.
128
+ # * `:controller` to direct the stream to the controller.
129
+ # * `[:file, "/path/to/file"]` to write to a file.
130
+ # * An `IO` or `StringIO` object.
131
+ # * An array of two `IO` objects representing a pipe
132
+ #
133
+ # Additionally, the last element of the array can be a hash of options.
134
+ # Supported options include:
135
+ # * `:buffer_size` The size of the memory buffer for each element of
136
+ # the tee. Larger buffers may allow higher throughput. The default
137
+ # is 65536.
138
+ #
105
139
  # ### Result handling
106
140
  #
107
141
  # A subprocess result is represented by a {Toys::Utils::Exec::Result}
@@ -191,7 +225,7 @@ module Toys
191
225
  # not present, the command is not logged.
192
226
  #
193
227
  # * `:log_level` (Integer,false) Level for logging the actual command.
194
- # Defaults to Logger::INFO if not present. You may also pass `false` to
228
+ # Defaults to Logger::INFO if not present. You can also pass `false` to
195
229
  # disable logging of the command.
196
230
  #
197
231
  # * `:log_cmd` (String) The string logged for the actual command.
@@ -243,7 +277,7 @@ module Toys
243
277
  end
244
278
 
245
279
  ##
246
- # Execute a command. The command may be given as a single string to pass
280
+ # Execute a command. The command can be given as a single string to pass
247
281
  # to a shell, or an array of strings indicating a posix command.
248
282
  #
249
283
  # If the process is not set to run in the background, and a block is
@@ -347,7 +381,7 @@ module Toys
347
381
  ##
348
382
  # Execute a tool in the current CLI in a forked process.
349
383
  #
350
- # The command may be given as a single string or an array of strings,
384
+ # The command can be given as a single string or an array of strings,
351
385
  # representing the tool to run and the arguments to pass.
352
386
  #
353
387
  # If the process is not set to run in the background, and a block is
@@ -382,7 +416,7 @@ module Toys
382
416
  ##
383
417
  # Execute a tool in a separately spawned process.
384
418
  #
385
- # The command may be given as a single string or an array of strings,
419
+ # The command can be given as a single string or an array of strings,
386
420
  # representing the tool to run and the arguments to pass.
387
421
  #
388
422
  # If the process is not set to run in the background, and a block is
@@ -425,7 +459,7 @@ module Toys
425
459
  end
426
460
 
427
461
  ##
428
- # Execute a command. The command may be given as a single string to pass
462
+ # Execute a command. The command can be given as a single string to pass
429
463
  # to a shell, or an array of strings indicating a posix command.
430
464
  #
431
465
  # Captures standard out and returns it as a string.
@@ -527,7 +561,7 @@ module Toys
527
561
  # Captures standard out and returns it as a string.
528
562
  # Cannot be run in the background.
529
563
  #
530
- # The command may be given as a single string or an array of strings,
564
+ # The command can be given as a single string or an array of strings,
531
565
  # representing the tool to run and the arguments to pass.
532
566
  #
533
567
  # If a block is provided, a {Toys::Utils::Exec::Controller} will be
@@ -563,7 +597,7 @@ module Toys
563
597
  # Captures standard out and returns it as a string.
564
598
  # Cannot be run in the background.
565
599
  #
566
- # The command may be given as a single string or an array of strings,
600
+ # The command can be given as a single string or an array of strings,
567
601
  # representing the tool to run and the arguments to pass.
568
602
  #
569
603
  # If a block is provided, a {Toys::Utils::Exec::Controller} will be
@@ -640,6 +674,19 @@ module Toys
640
674
  def exit_on_nonzero_status(status)
641
675
  # Source available in the toys-core gem
642
676
  end
677
+
678
+ ##
679
+ # Returns an array of standard verbosity flags needed to replicate the
680
+ # current verbosity level. This is useful when you want to spawn tools
681
+ # with the same verbosity level as the current tool.
682
+ #
683
+ # @param short [Boolean] Whether to emit short rather than long flags.
684
+ # Default is false.
685
+ # @return [Array<String>]
686
+ #
687
+ def verbosity_flags(short: false)
688
+ # Source available in the toys-core gem
689
+ end
643
690
  end
644
691
  end
645
692
  end