arg-parser 0.2.2 → 0.2.3
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 +8 -8
- data/README.md +8 -1
- data/lib/arg-parser/argument.rb +13 -2
- data/lib/arg-parser/parser.rb +7 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YjVkYzMxZDYxNTUzZjdlOTEwMjY3MThiYzNmYTc1OTQ4ZWQ4MjkxZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZWI1MTc5MDc3ZDE0YjZhZmJiODFlZDBjN2Q0OTFmMjY3ODQ4YzMxZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZWQ1ZmIzODNlMDI4YjFlZDcwODQ2MDIzODI4MmMyMTg3OTE2MjA4NTZjZmYz
|
10
|
+
OTlkMzQ2NTBmM2YxNzFjOWZmMTM5NjZjM2RmZTZiYzU5MzQ2M2Y0NjVhMGMw
|
11
|
+
ZDM2Zjk4MmVkODBmMjM1YWUxNGMyODllOTgxYmRlYWMwMjMxMGY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NWMwOTk4NDU1NGQwNDNmMTc4Zjc2MGJhZGM4YmE3OWM1MDZmM2RkODQ1ZjU2
|
14
|
+
OTdkOGQxYmJiNDFjZGU3MGRmMzc3MzFhOTA2MDc0MTU3YzRhMjA3NTY2YmY4
|
15
|
+
NmJlYzdiZGVkYjc0MDY1ZTdjMTJhYjIxZTFkOTUwNWRmMWY4Mjk=
|
data/README.md
CHANGED
@@ -31,7 +31,12 @@ class MyClass
|
|
31
31
|
EOT
|
32
32
|
|
33
33
|
positional_arg :my_positional_arg, 'This is a positional arg'
|
34
|
-
keyword_arg :my_keyword_arg, 'This is a keyword arg'
|
34
|
+
keyword_arg :my_keyword_arg, 'This is a keyword arg; if not specified, returns value1',
|
35
|
+
default: 'value1'
|
36
|
+
# An optional value keyword argument. If not specified, returns false. If specified
|
37
|
+
# without a value, returns 'maybe'. If specified with a value, returns the value.
|
38
|
+
keyword_arg :val_opt, 'This is a keyword arg with optional value',
|
39
|
+
value_optional: 'maybe'
|
35
40
|
flag_arg :flag, 'This is a flag argument'
|
36
41
|
rest_arg :files, 'This is where we specify that remaining args will be collected in an array'
|
37
42
|
|
@@ -61,6 +66,8 @@ list of features:
|
|
61
66
|
* Mandatory vs Optional: All arguments your program accepts can be defined as optional or mandatory.
|
62
67
|
By default, positional arguments are considered mandatory, and all others default to optional. To change
|
63
68
|
the default, simply specify `required: true` or `required: false` when defining the argument.
|
69
|
+
* Keyword arguments can also accept an optional value, using the `value_optional` option. If a keyword
|
70
|
+
argument is supplied without a value, it returns the value of the `value_optional` option.
|
64
71
|
* Short-keys and long-keys: Arguments are defined with a long_key name which will be used to access the
|
65
72
|
parsed value in the results. However, arguments can also define a single letter or digit short-key form
|
66
73
|
which can be used as an alternate means for indicating a value. To define a short key, simply pass
|
data/lib/arg-parser/argument.rb
CHANGED
@@ -195,8 +195,18 @@ module ArgParser
|
|
195
195
|
class KeywordArgument < ValueArgument
|
196
196
|
|
197
197
|
# Whether the keyword argument must be specified with a non-missing
|
198
|
-
# value.
|
199
|
-
#
|
198
|
+
# value. The default is false, meaning the keyword argument must be
|
199
|
+
# specified together with a value. When this property is set to a
|
200
|
+
# non-falsy value (i.e. not nil or false), the keyword argument can
|
201
|
+
# be specified either with or without a value (or not at all):
|
202
|
+
# - If specified with a value, the value will be returned.
|
203
|
+
# - If specified without a value, the value of this property will be
|
204
|
+
# returned.
|
205
|
+
# - If not specified at all, the default value will be returned.
|
206
|
+
#
|
207
|
+
# @return [Object] If truthy, the argument does not require a value.
|
208
|
+
# If the argument is specified but no value is provided, the value
|
209
|
+
# of this property will be the argument value.
|
200
210
|
attr_accessor :value_optional
|
201
211
|
alias_method :value_optional?, :value_optional
|
202
212
|
|
@@ -205,6 +215,7 @@ module ArgParser
|
|
205
215
|
# on a command-line using either a long form key (i.e. --key), or
|
206
216
|
# optionally, a short-form key (i.e. -k) should one be defined for this
|
207
217
|
# argument.
|
218
|
+
#
|
208
219
|
# @param key [Symbol] the key that will be used to identify this argument
|
209
220
|
# value in the parse results.
|
210
221
|
# @param desc [String] the description of this argument, displayed in the
|
data/lib/arg-parser/parser.rb
CHANGED
@@ -185,9 +185,13 @@ module ArgParser
|
|
185
185
|
self.errors << "No value was specified for required argument '#{arg}'"
|
186
186
|
return
|
187
187
|
end
|
188
|
-
if !is_default && val.nil? && KeywordArgument === arg
|
189
|
-
|
190
|
-
|
188
|
+
if !is_default && val.nil? && KeywordArgument === arg
|
189
|
+
if arg.value_optional?
|
190
|
+
val = arg.value_optional
|
191
|
+
else
|
192
|
+
self.errors << "No value was specified for keyword argument '#{arg}'"
|
193
|
+
return
|
194
|
+
end
|
191
195
|
end
|
192
196
|
|
193
197
|
# Argument value validation
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arg-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Gardiner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: ! " ArgParser is a simple, yet powerful command-line argument
|
14
14
|
parser, with\n support for positional, keyword, flag and rest arguments,
|