toys 0.14.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/core-docs/toys/core.rb +1 -1
- data/core-docs/toys/dsl/tool.rb +15 -7
- data/docs/guide.md +4 -0
- data/lib/toys/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5605477c7993fad15f1c79740f8de6b90f4aef19becdc00a236e71853cb4d9a8
|
4
|
+
data.tar.gz: 1c63369d5c4302356f412e25904bd6db43ca93b9896c687c6ae5bbfd4fe24fc8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c312c18f2fa8d57f6dbeb8def6b434a611030387e289a370bcb96faadf90a49b948cfc7ac17b14f9e7b97a942a85b133d384ad37705aed9b833fca3f650517d1
|
7
|
+
data.tar.gz: 1f7125dbf036acb25b0352de30b68f95c229610572c754b8cdf3e1c633e03f5a6318eeb5de56df1d229402f4915d16aacb794d62fcd571007a604aec4ad6070f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### v0.14.2 / 2022-10-09
|
4
|
+
|
5
|
+
* ADDED: The tool directive supports the delegate_relative argument, as a preferred alternative over alias_tool.
|
6
|
+
* FIXED: The toys file reference now properly appears in error messages on Ruby 3.1.
|
7
|
+
* FIXED: Error messages show the correct toys file line number on TruffleRuby.
|
8
|
+
* FIXED: Inspect strings for tool classes are less opaque and include the tool name.
|
9
|
+
* FIXED: The presence of an acceptor forces an ambiguous flag to take a value rather than erroring.
|
10
|
+
|
3
11
|
### v0.14.1 / 2022-10-03
|
4
12
|
|
5
13
|
* FIXED: Fixed a crash due to a missing file in the gem
|
data/core-docs/toys/core.rb
CHANGED
data/core-docs/toys/dsl/tool.rb
CHANGED
@@ -263,7 +263,8 @@ module Toys
|
|
263
263
|
# end
|
264
264
|
# end
|
265
265
|
#
|
266
|
-
# The following example
|
266
|
+
# The following example uses `delegate_to` to define a tool that runs one
|
267
|
+
# of its subtools.
|
267
268
|
#
|
268
269
|
# tool "test", delegate_to: ["test", "unit"] do
|
269
270
|
# tool "unit" do
|
@@ -284,19 +285,22 @@ module Toys
|
|
284
285
|
# delegate to another tool, specified by the full path. This path may
|
285
286
|
# be given as an array of strings, or a single string possibly
|
286
287
|
# delimited by path separators.
|
288
|
+
# @param delegate_relative [String,Array<String>] Optional. Similar to
|
289
|
+
# delegate_to, but takes a delegate name relative to the context in
|
290
|
+
# which this tool is being defined.
|
287
291
|
# @param block [Proc] Defines the subtool.
|
288
292
|
# @return [self]
|
289
293
|
#
|
290
|
-
def tool(words, if_defined: :combine, delegate_to: nil, &block)
|
294
|
+
def tool(words, if_defined: :combine, delegate_to: nil, delegate_relative: nil, &block)
|
291
295
|
# Source available in the toys-core gem
|
292
296
|
end
|
293
297
|
|
294
298
|
##
|
295
299
|
# Create an alias, representing an "alternate name" for a tool.
|
296
300
|
#
|
297
|
-
# This is functionally equivalent to creating a
|
298
|
-
# `
|
299
|
-
#
|
301
|
+
# Note: This is functionally equivalent to creating a tool with the
|
302
|
+
# `:delegate_relative` option. As such, `alias_tool` is considered
|
303
|
+
# deprecated.
|
300
304
|
#
|
301
305
|
# ### Example
|
302
306
|
#
|
@@ -309,20 +313,24 @@ module Toys
|
|
309
313
|
# end
|
310
314
|
# end
|
311
315
|
# alias_tool "t", "test"
|
316
|
+
# # Note: the following is preferred over alias_tool:
|
317
|
+
# # tool "t", delegate_relative: "test"
|
312
318
|
#
|
313
319
|
# @param word [String] The name of the alias
|
314
320
|
# @param target [String,Array<String>] Relative path to the target of the
|
315
321
|
# alias. This path may be given as an array of strings, or a single
|
316
322
|
# string possibly delimited by path separators.
|
317
323
|
# @return [self]
|
324
|
+
# @deprecated Use {#tool} and pass `:delegate_relative` instead
|
318
325
|
#
|
319
326
|
def alias_tool(word, target)
|
320
327
|
# Source available in the toys-core gem
|
321
328
|
end
|
322
329
|
|
323
330
|
##
|
324
|
-
# Causes the current tool to delegate to another tool
|
325
|
-
# simply invokes the target tool with the
|
331
|
+
# Causes the current tool to delegate to another tool, specified by the
|
332
|
+
# full tool name. When run, it simply invokes the target tool with the
|
333
|
+
# same arguments.
|
326
334
|
#
|
327
335
|
# ### Example
|
328
336
|
#
|
data/docs/guide.md
CHANGED
@@ -3171,6 +3171,10 @@ a namespace to delegate to one of its subtools:
|
|
3171
3171
|
|
3172
3172
|
Now `toys test` delegates to, and thus has the same effect as `toys test unit`.
|
3173
3173
|
|
3174
|
+
It is also possible to specify the delegate via _relative_ name, using the
|
3175
|
+
`:delegate_relative` keyword argument. This can be helpful if you have a set of
|
3176
|
+
tools and delegates that are meant to be reused under different namespaces.
|
3177
|
+
|
3174
3178
|
### Applying directives to multiple tools
|
3175
3179
|
|
3176
3180
|
Sometimes a group of tools are set up similarly or share a set of flags,
|
data/lib/toys/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toys
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Azuma
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: toys-core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.14.
|
19
|
+
version: 0.14.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.14.
|
26
|
+
version: 0.14.2
|
27
27
|
description: Toys is a configurable command line tool. Write commands in Ruby using
|
28
28
|
a simple DSL, and Toys will provide the command line executable and take care of
|
29
29
|
all the details such as argument parsing, online help, and error reporting. Toys
|
@@ -120,10 +120,10 @@ homepage: https://github.com/dazuma/toys
|
|
120
120
|
licenses:
|
121
121
|
- MIT
|
122
122
|
metadata:
|
123
|
-
changelog_uri: https://dazuma.github.io/toys/gems/toys/v0.14.
|
123
|
+
changelog_uri: https://dazuma.github.io/toys/gems/toys/v0.14.2/file.CHANGELOG.html
|
124
124
|
source_code_uri: https://github.com/dazuma/toys/tree/main/toys
|
125
125
|
bug_tracker_uri: https://github.com/dazuma/toys/issues
|
126
|
-
documentation_uri: https://dazuma.github.io/toys/gems/toys/v0.14.
|
126
|
+
documentation_uri: https://dazuma.github.io/toys/gems/toys/v0.14.2
|
127
127
|
post_install_message:
|
128
128
|
rdoc_options: []
|
129
129
|
require_paths:
|