arg-parser 0.1 → 0.2.1
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 +15 -0
- data/lib/arg-parser/argument.rb +2 -1
- data/lib/arg-parser/definition.rb +1 -1
- data/lib/arg-parser/dsl.rb +21 -1
- data/lib/arg-parser/parser.rb +3 -3
- metadata +7 -9
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
M2JiZDNjZTA3NTZiNWE0ZmE2ZDI5M2VkMzY4NjEwZWEwMWMxMDRiNg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
N2QwNjcyMWE5MzQ2MTk4MDFmNmFmZGZiNjk4ZTFiMmJiODY5ZWFmNg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZjIxZWEzM2ZlNzdiMmZlODBmYWMwYzI3ODQ2MTA3NWVhYjEwZjBhYTFjNzkz
|
10
|
+
MDNhZDA5YmQzMTM4ODg4MmE2YzUyYjBmNjNmNTZiZWJiNWU2ZmViZWQ2MjJl
|
11
|
+
OTAyYjg2Njg5ZTIzZTQ3ZGM3MTg4YzM3ZjZjYzVmNGIxNzRhY2I=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MjgyMmQxMmRmMjViN2YyNWJmMGY5MTIzZDIyYTk0MzQ0N2MzYzkwYzY5NTJj
|
14
|
+
NmExMzE4Yjg4ODkxZGUyMDZmODUyYWIzZGFhYjUxZTBjNGRiYzJhMTNjNDAz
|
15
|
+
MGZjNTExNGU2MTJjZjIwODgzOTAyZTBjY2IxMzI1Yjc2MWVmZTY=
|
data/lib/arg-parser/argument.rb
CHANGED
@@ -57,7 +57,8 @@ module ArgParser
|
|
57
57
|
# @return [Symbol] the key by which an argument can be retrieved from
|
58
58
|
# the arguments definition, and the parse results.
|
59
59
|
def self.to_key(label)
|
60
|
-
label.to_s.gsub(/^-+/, '').gsub('-', '_')
|
60
|
+
k = label.to_s.gsub(/^-+/, '').gsub('-', '_')
|
61
|
+
k.length > 1 ? k.downcase.intern : k.intern
|
61
62
|
end
|
62
63
|
|
63
64
|
|
data/lib/arg-parser/dsl.rb
CHANGED
@@ -46,6 +46,12 @@ module ArgParser
|
|
46
46
|
@args_def && @args_def.args.size > 0
|
47
47
|
end
|
48
48
|
|
49
|
+
# Registers the supplied +block+ as an on_parse handler that can be
|
50
|
+
# attached to an argument using +key+.
|
51
|
+
def register_parse_handler(key, &block)
|
52
|
+
ArgParser::OnParseHandlers[key] = block
|
53
|
+
end
|
54
|
+
|
49
55
|
# Sets the title that will appear in the Usage output generated from
|
50
56
|
# the Definition.
|
51
57
|
def title(val)
|
@@ -61,27 +67,41 @@ module ArgParser
|
|
61
67
|
# Define a new positional argument.
|
62
68
|
# @see PositionalArgument#initialize
|
63
69
|
def positional_arg(key, desc, opts = {}, &block)
|
70
|
+
opts.merge!(@arg_opts){ |k, e, n| e || n } if @arg_opts
|
71
|
+
@arg_opts = nil
|
64
72
|
args_def.positional_arg(key, desc, opts, &block)
|
65
73
|
end
|
66
74
|
|
67
75
|
# Define a new positional argument.
|
68
76
|
# @see KeywordArgument#initialize
|
69
77
|
def keyword_arg(key, desc, opts = {}, &block)
|
78
|
+
opts.merge!(@arg_opts){ |k, e, n| e || n } if @arg_opts
|
79
|
+
@arg_opts = nil
|
70
80
|
args_def.keyword_arg(key, desc, opts, &block)
|
71
81
|
end
|
72
82
|
|
73
83
|
# Define a new flag argument.
|
74
84
|
# @see FlagArgument#initialize
|
75
85
|
def flag_arg(key, desc, opts = {}, &block)
|
86
|
+
opts.merge!(@arg_opts){ |k, e, n| e || n } if @arg_opts
|
87
|
+
@arg_opts = nil
|
76
88
|
args_def.flag_arg(key, desc, opts, &block)
|
77
89
|
end
|
78
90
|
|
79
91
|
# Define a rest argument.
|
80
92
|
# @see RestArgument#initialize
|
81
93
|
def rest_arg(key, desc, opts = {}, &block)
|
94
|
+
opts.merge!(@arg_opts){ |k, e, n| e || n } if @arg_opts
|
95
|
+
@arg_opts = nil
|
82
96
|
args_def.rest_arg(key, desc, opts, &block)
|
83
97
|
end
|
84
98
|
|
99
|
+
# Set a label for a usage break to be applied on the next argument
|
100
|
+
# that is defined.
|
101
|
+
def usage_break(label)
|
102
|
+
@arg_opts = {usage_break: label}
|
103
|
+
end
|
104
|
+
|
85
105
|
# Make exactly one of the specified arguments mandatory.
|
86
106
|
# @see Definition#require_one_of
|
87
107
|
def require_one_of(*keys)
|
@@ -131,7 +151,7 @@ module ArgParser
|
|
131
151
|
|
132
152
|
# Whether help should be displayed.
|
133
153
|
def show_help?
|
134
|
-
args_def.
|
154
|
+
args_def.show_help?
|
135
155
|
end
|
136
156
|
|
137
157
|
|
data/lib/arg-parser/parser.rb
CHANGED
@@ -149,8 +149,8 @@ module ArgParser
|
|
149
149
|
end
|
150
150
|
|
151
151
|
# Process rest values
|
152
|
-
if
|
153
|
-
result[
|
152
|
+
if rest_arg = @definition.rest_args
|
153
|
+
result[rest_arg.key] = process_arg_val(rest_arg, rest_vals, result)
|
154
154
|
elsif rest_vals.size > 0
|
155
155
|
self.errors << "#{rest_vals.size} rest #{rest_vals.size == 1 ? 'value' : 'values'} #{
|
156
156
|
rest_vals.size == 1 ? 'was' : 'were'} supplied, but no rest argument is defined"
|
@@ -190,7 +190,7 @@ module ArgParser
|
|
190
190
|
|
191
191
|
# Argument value validation
|
192
192
|
if ValueArgument === arg && arg.validation && val
|
193
|
-
|
193
|
+
case arg.validation
|
194
194
|
when Regexp
|
195
195
|
[val].flatten.each do |v|
|
196
196
|
add_value_error(arg, val) unless v =~ arg.validation
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arg-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Adam Gardiner
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-08-11 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
14
13
|
description: ! " ArgParser is a simple, yet powerful command-line argument
|
15
14
|
parser, with\n support for positional, keyword, flag and rest arguments,
|
@@ -19,36 +18,35 @@ executables: []
|
|
19
18
|
extensions: []
|
20
19
|
extra_rdoc_files: []
|
21
20
|
files:
|
22
|
-
- README.md
|
23
21
|
- LICENSE
|
22
|
+
- README.md
|
23
|
+
- lib/arg-parser.rb
|
24
24
|
- lib/arg-parser/argument.rb
|
25
25
|
- lib/arg-parser/definition.rb
|
26
26
|
- lib/arg-parser/dsl.rb
|
27
27
|
- lib/arg-parser/parser.rb
|
28
|
-
- lib/arg-parser.rb
|
29
28
|
- lib/arg_parser.rb
|
30
29
|
homepage: https://github.com/agardiner/arg-parser
|
31
30
|
licenses: []
|
31
|
+
metadata: {}
|
32
32
|
post_install_message:
|
33
33
|
rdoc_options: []
|
34
34
|
require_paths:
|
35
35
|
- lib
|
36
36
|
required_ruby_version: !ruby/object:Gem::Requirement
|
37
|
-
none: false
|
38
37
|
requirements:
|
39
38
|
- - ! '>='
|
40
39
|
- !ruby/object:Gem::Version
|
41
40
|
version: '0'
|
42
41
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
42
|
requirements:
|
45
43
|
- - ! '>='
|
46
44
|
- !ruby/object:Gem::Version
|
47
45
|
version: '0'
|
48
46
|
requirements: []
|
49
47
|
rubyforge_project:
|
50
|
-
rubygems_version:
|
48
|
+
rubygems_version: 2.4.1
|
51
49
|
signing_key:
|
52
|
-
specification_version:
|
50
|
+
specification_version: 4
|
53
51
|
summary: ArgParser is a simple, yet powerful, command-line argument (option) parser
|
54
52
|
test_files: []
|