yawpa 1.1.0 → 1.2.0
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/Gemfile.lock +25 -22
- data/README.md +4 -0
- data/lib/yawpa/version.rb +1 -1
- data/lib/yawpa.rb +161 -150
- data/spec/yawpa_spec.rb +31 -4
- metadata +5 -25
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
Y2ViMTM4ZWVlZDBjNTNjMDUyMjEwNWJjZDMzMzhmODUxYTg4Y2I1YQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZThmNmVjMDYzZTg4NjYxNDVlNjIwODgxYjRiZjc4N2NhYmUwMGY3Yw==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NjU4MDQwOWQ0ODk2MmEyMjVkZWI5NDQxMDg4OTI5NmY3MzcxZDNiNjJkMzNl
|
10
|
+
NDE1ZjFlMDYwYTA0NzA3ODY5M2JjZDBmYTljNjY0MjJhYzA3MzExNDYzYWU2
|
11
|
+
NzdhOGFkYTQ5YWQwMjcxNWE1MWRlOGYzYzFlMWRlNTczZjkyMGU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YWRhNGM2MTZhMzljODM1Njc0YWE1ZGU4NDgxODMzYzBiYzdmMjA2ZWQ3M2Zm
|
14
|
+
OTFmNjZhNjM4NmRhOWE5YTRiYTY1YzczZWNiN2RkODk3ZGE5MzQ3OGIyYTdi
|
15
|
+
Y2Q3ZmI2N2Y4ZTM1ZWQyNDNiZmI0NzI2OTllMGYxYTMwNDIwMDk=
|
data/Gemfile.lock
CHANGED
@@ -1,37 +1,37 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
yawpa (1.
|
4
|
+
yawpa (1.2.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
9
|
diff-lcs (1.2.5)
|
10
10
|
docile (1.1.5)
|
11
|
-
json (1.8.
|
12
|
-
|
13
|
-
|
14
|
-
rdoc (4.1.1)
|
11
|
+
json (1.8.3)
|
12
|
+
rake (10.4.2)
|
13
|
+
rdoc (4.2.2)
|
15
14
|
json (~> 1.4)
|
16
|
-
redcarpet (3.
|
17
|
-
rspec (3.
|
18
|
-
rspec-core (~> 3.
|
19
|
-
rspec-expectations (~> 3.
|
20
|
-
rspec-mocks (~> 3.
|
21
|
-
rspec-core (3.
|
22
|
-
rspec-support (~> 3.
|
23
|
-
rspec-expectations (3.0
|
15
|
+
redcarpet (3.3.4)
|
16
|
+
rspec (3.4.0)
|
17
|
+
rspec-core (~> 3.4.0)
|
18
|
+
rspec-expectations (~> 3.4.0)
|
19
|
+
rspec-mocks (~> 3.4.0)
|
20
|
+
rspec-core (3.4.4)
|
21
|
+
rspec-support (~> 3.4.0)
|
22
|
+
rspec-expectations (3.4.0)
|
24
23
|
diff-lcs (>= 1.2.0, < 2.0)
|
25
|
-
rspec-support (~> 3.
|
26
|
-
rspec-mocks (3.
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
rspec-support (~> 3.4.0)
|
25
|
+
rspec-mocks (3.4.1)
|
26
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
27
|
+
rspec-support (~> 3.4.0)
|
28
|
+
rspec-support (3.4.1)
|
29
|
+
simplecov (0.11.2)
|
30
30
|
docile (~> 1.1.0)
|
31
|
-
|
32
|
-
simplecov-html (~> 0.
|
33
|
-
simplecov-html (0.
|
34
|
-
yard (0.8.7.
|
31
|
+
json (~> 1.8)
|
32
|
+
simplecov-html (~> 0.10.0)
|
33
|
+
simplecov-html (0.10.0)
|
34
|
+
yard (0.8.7.6)
|
35
35
|
|
36
36
|
PLATFORMS
|
37
37
|
ruby
|
@@ -44,3 +44,6 @@ DEPENDENCIES
|
|
44
44
|
simplecov
|
45
45
|
yard
|
46
46
|
yawpa!
|
47
|
+
|
48
|
+
BUNDLED WITH
|
49
|
+
1.10.6
|
data/README.md
CHANGED
data/lib/yawpa/version.rb
CHANGED
data/lib/yawpa.rb
CHANGED
@@ -13,179 +13,190 @@ require "yawpa/version"
|
|
13
13
|
# - Options can be defined with a range specifying the allowed number of
|
14
14
|
# parameters
|
15
15
|
module Yawpa
|
16
|
+
|
16
17
|
# Exception class raised when an unknown option is observed.
|
17
18
|
class ArgumentParsingException < Exception; end
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
options
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
if
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
20
|
+
class << self
|
21
|
+
|
22
|
+
# Parse input parameters looking for options according to rules given in
|
23
|
+
# flags.
|
24
|
+
# Syntax:
|
25
|
+
# opts, args = parse(params, options, flags = {})
|
26
|
+
#
|
27
|
+
# An ArgumentParsingException will be raised if an unknown option is
|
28
|
+
# observed or insufficient arguments are present for an option.
|
29
|
+
#
|
30
|
+
# Example +options+:
|
31
|
+
#
|
32
|
+
# {
|
33
|
+
# version: nil,
|
34
|
+
# verbose: {short: 'v'},
|
35
|
+
# server: {nargs: (1..2)},
|
36
|
+
# username: {nargs: 1},
|
37
|
+
# password: {nargs: 1},
|
38
|
+
# color: :boolean,
|
39
|
+
# }
|
40
|
+
#
|
41
|
+
# The keys of the +options+ Hash can be either strings or symbols.
|
42
|
+
#
|
43
|
+
#
|
44
|
+
# @param params [Array]
|
45
|
+
# List of program parameters to parse.
|
46
|
+
# @param options [Hash]
|
47
|
+
# Hash containing the long option names as keys, and values containing
|
48
|
+
# special flags for the options as values (examples above).
|
49
|
+
# Possible values:
|
50
|
+
# +nil+:: No special flags for this option (equivalent to +{}+)
|
51
|
+
# +:boolean+::
|
52
|
+
# The option is a toggleable boolean option (equivalent to
|
53
|
+
# +{boolean: true}+)
|
54
|
+
# Hash::
|
55
|
+
# Possible option flags:
|
56
|
+
# - +:short+: specify a short option letter to associate with the long
|
57
|
+
# option
|
58
|
+
# - +:nargs+: specify an exact number or range of possible numbers of
|
59
|
+
# arguments to the option
|
60
|
+
# - +:boolean+: if true, specify that the option is a toggleable
|
61
|
+
# boolean option and allow a prefix of "no" to turn it off.
|
62
|
+
# @param flags [Hash]
|
63
|
+
# Optional flags dictating how {.parse} should do its job.
|
64
|
+
# @option flags [Boolean] :posix_order
|
65
|
+
# Stop processing parameters when a non-option argument is seen.
|
66
|
+
# Set this to +true+ if you want to implement subcommands.
|
67
|
+
#
|
68
|
+
# @return [Array]
|
69
|
+
# Two-element array containing +opts+ and +args+ return values.
|
70
|
+
# +opts+::
|
71
|
+
# The returned +opts+ value will be a Hash with the observed
|
72
|
+
# options as keys and any option arguments as values.
|
73
|
+
# +args+::
|
74
|
+
# The returned +args+ will be an Array of the unprocessed
|
75
|
+
# parameters (if +:posix_order+ was passed in +flags+, this array might
|
76
|
+
# contain further options that were not processed after observing a
|
77
|
+
# non-option parameters).
|
78
|
+
def parse(params, options, flags = {})
|
79
|
+
options = _massage_options(options)
|
80
|
+
opts = {}
|
81
|
+
args = []
|
82
|
+
i = 0
|
83
|
+
while i < params.length
|
84
|
+
param = params[i]
|
85
|
+
if param =~ /^--([^=]+)(?:=(.+))?$/
|
86
|
+
param_name, val = $1, $2
|
87
|
+
bool_val = true
|
88
|
+
if options[param_name].nil?
|
89
|
+
if param_name =~ /^no(.*)$/
|
90
|
+
test_param_name = $1
|
91
|
+
if options[test_param_name]
|
92
|
+
param_name = test_param_name
|
93
|
+
bool_val = false
|
94
|
+
end
|
90
95
|
end
|
91
96
|
end
|
92
|
-
|
93
|
-
|
94
|
-
raise ArgumentParsingException.new("Unknown option '#{param_name}'") unless opt_config
|
95
|
-
param_key = opt_config[:key]
|
96
|
-
if opt_config[:boolean]
|
97
|
-
opts[param_key] = bool_val
|
98
|
-
elsif opt_config[:nargs].last == 0
|
99
|
-
opts[param_key] = true
|
100
|
-
else
|
101
|
-
opts[param_key] = []
|
102
|
-
i += _gather(opt_config[:nargs], i + 1, params, val, param_key, opts[param_key])
|
103
|
-
end
|
104
|
-
elsif param =~ /^-(.+)$/
|
105
|
-
short_flags = $1
|
106
|
-
short_idx = 0
|
107
|
-
while short_idx < short_flags.length
|
108
|
-
opt_config = _find_opt_config_by_short_name(options, short_flags[short_idx])
|
109
|
-
if opt_config.nil?
|
110
|
-
raise ArgumentParsingException.new("Unknown option '-#{short_flags[short_idx]}'")
|
111
|
-
end
|
97
|
+
opt_config = options[param_name]
|
98
|
+
raise ArgumentParsingException.new("Unknown option '#{param_name}'") unless opt_config
|
112
99
|
param_key = opt_config[:key]
|
113
|
-
if opt_config[:
|
100
|
+
if opt_config[:boolean]
|
101
|
+
opts[param_key] = bool_val
|
102
|
+
elsif opt_config[:nargs].last == 0
|
114
103
|
opts[param_key] = true
|
115
104
|
else
|
116
105
|
opts[param_key] = []
|
117
|
-
i += _gather(opt_config[:nargs], i + 1, params,
|
118
|
-
break
|
106
|
+
i += _gather(opt_config[:nargs], i + 1, params, val, param_key, opts[param_key])
|
119
107
|
end
|
120
|
-
|
108
|
+
elsif param =~ /^-(.+)$/
|
109
|
+
short_flags = $1
|
110
|
+
short_idx = 0
|
111
|
+
while short_idx < short_flags.length
|
112
|
+
opt_config = _find_opt_config_by_short_name(options, short_flags[short_idx])
|
113
|
+
if opt_config.nil?
|
114
|
+
raise ArgumentParsingException.new("Unknown option '-#{short_flags[short_idx]}'")
|
115
|
+
end
|
116
|
+
param_key = opt_config[:key]
|
117
|
+
if opt_config[:nargs].last == 0
|
118
|
+
opts[param_key] = true
|
119
|
+
else
|
120
|
+
opts[param_key] = []
|
121
|
+
i += _gather(opt_config[:nargs],
|
122
|
+
i + 1,
|
123
|
+
params,
|
124
|
+
short_flags[short_idx + 1, short_flags.length],
|
125
|
+
param_key,
|
126
|
+
opts[param_key])
|
127
|
+
break
|
128
|
+
end
|
129
|
+
short_idx += 1
|
130
|
+
end
|
131
|
+
elsif flags[:posix_order]
|
132
|
+
args = params[i, params.length].map(&:dup)
|
133
|
+
break
|
134
|
+
else
|
135
|
+
args << params[i].dup
|
121
136
|
end
|
122
|
-
|
123
|
-
args = params[i, params.length]
|
124
|
-
break
|
125
|
-
else
|
126
|
-
args << params[i]
|
137
|
+
i += 1
|
127
138
|
end
|
128
|
-
i += 1
|
129
|
-
end
|
130
139
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
140
|
+
# Condense 1-element arrays of option values to just the element itself
|
141
|
+
opts.each_key do |k|
|
142
|
+
if opts[k].is_a?(Array) and opts[k].length == 1
|
143
|
+
opts[k] = opts[k].first
|
144
|
+
end
|
135
145
|
end
|
146
|
+
|
147
|
+
return [opts, args]
|
136
148
|
end
|
137
149
|
|
138
|
-
|
139
|
-
end
|
150
|
+
private
|
140
151
|
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
152
|
+
# Internal helper method to gather arguments for an option
|
153
|
+
def _gather(nargs, start_idx, params, initial, param_key, result)
|
154
|
+
n_gathered = 0
|
155
|
+
if initial and initial != ''
|
156
|
+
result << initial
|
157
|
+
n_gathered += 1
|
158
|
+
end
|
159
|
+
num_indices_used = 0
|
160
|
+
index = start_idx
|
161
|
+
while n_gathered < nargs.last and
|
162
|
+
index < params.length and
|
163
|
+
params[index][0] != '-' do
|
164
|
+
result << params[index].dup
|
165
|
+
index += 1
|
166
|
+
num_indices_used += 1
|
167
|
+
n_gathered += 1
|
168
|
+
end
|
169
|
+
if n_gathered < nargs.first
|
170
|
+
raise ArgumentParsingException.new("Not enough arguments supplied for option '#{param_key}'")
|
171
|
+
end
|
172
|
+
num_indices_used
|
157
173
|
end
|
158
|
-
|
159
|
-
|
174
|
+
|
175
|
+
# Internal helper method to format the options in a consistent format
|
176
|
+
def _massage_options(options)
|
177
|
+
{}.tap do |newopts|
|
178
|
+
options.each_pair do |k, v|
|
179
|
+
v = {} if v.nil?
|
180
|
+
v = {boolean: true} if v == :boolean
|
181
|
+
newkey = k.to_s
|
182
|
+
newopts[newkey] = {key: k}
|
183
|
+
nargs = v[:nargs] || 0
|
184
|
+
nargs = (nargs..nargs) if nargs.is_a?(Fixnum)
|
185
|
+
newopts[newkey][:nargs] = nargs
|
186
|
+
newopts[newkey][:short] = v[:short] || ''
|
187
|
+
newopts[newkey][:boolean] = v[:boolean]
|
188
|
+
end
|
189
|
+
end
|
160
190
|
end
|
161
|
-
num_indices_used
|
162
|
-
end
|
163
|
-
private_class_method :_gather
|
164
191
|
|
165
|
-
|
166
|
-
|
167
|
-
{}.tap do |newopts|
|
192
|
+
# Internal helper method to find an option configuration by short name
|
193
|
+
def _find_opt_config_by_short_name(options, short_name)
|
168
194
|
options.each_pair do |k, v|
|
169
|
-
v
|
170
|
-
v = {boolean: true} if v == :boolean
|
171
|
-
newkey = k.to_s
|
172
|
-
newopts[newkey] = {key: k}
|
173
|
-
nargs = v[:nargs] || 0
|
174
|
-
nargs = (nargs..nargs) if nargs.is_a?(Fixnum)
|
175
|
-
newopts[newkey][:nargs] = nargs
|
176
|
-
newopts[newkey][:short] = v[:short] || ''
|
177
|
-
newopts[newkey][:boolean] = v[:boolean]
|
195
|
+
return v if v[:short] == short_name
|
178
196
|
end
|
197
|
+
nil
|
179
198
|
end
|
180
|
-
end
|
181
|
-
private_class_method :_massage_options
|
182
199
|
|
183
|
-
# Internal helper method to find an option configuration by short name
|
184
|
-
def self._find_opt_config_by_short_name(options, short_name)
|
185
|
-
options.each_pair do |k, v|
|
186
|
-
return v if v[:short] == short_name
|
187
|
-
end
|
188
|
-
nil
|
189
200
|
end
|
190
|
-
|
201
|
+
|
191
202
|
end
|
data/spec/yawpa_spec.rb
CHANGED
@@ -11,7 +11,7 @@ describe Yawpa do
|
|
11
11
|
it "raises an exception when an invalid option is passed" do
|
12
12
|
options = { }
|
13
13
|
params = ['one', '--option', 'two']
|
14
|
-
expect { Yawpa.parse(params, options) }.to raise_error
|
14
|
+
expect { Yawpa.parse(params, options) }.to raise_error(Yawpa::ArgumentParsingException, /Unknown option/)
|
15
15
|
end
|
16
16
|
|
17
17
|
it "returns boolean options which are set" do
|
@@ -53,7 +53,7 @@ describe Yawpa do
|
|
53
53
|
opt: {nargs: 2},
|
54
54
|
}
|
55
55
|
params = ['--opt', 'val']
|
56
|
-
expect { Yawpa.parse(params, options) }.to raise_error
|
56
|
+
expect { Yawpa.parse(params, options) }.to raise_error(Yawpa::ArgumentParsingException, /Not enough arguments supplied/)
|
57
57
|
end
|
58
58
|
|
59
59
|
it "uses --opt=val syntax for an option's value" do
|
@@ -179,7 +179,7 @@ describe Yawpa do
|
|
179
179
|
a: {short: 'a'},
|
180
180
|
}
|
181
181
|
params = ['-ab']
|
182
|
-
expect { Yawpa.parse(params, options) }.to raise_error
|
182
|
+
expect { Yawpa.parse(params, options) }.to raise_error(Yawpa::ArgumentParsingException, /Unknown option/)
|
183
183
|
end
|
184
184
|
|
185
185
|
it "raises an error when not enough arguments are given to short option" do
|
@@ -187,7 +187,7 @@ describe Yawpa do
|
|
187
187
|
a: {nargs: 1, short: 'a'},
|
188
188
|
}
|
189
189
|
params = ['-a']
|
190
|
-
expect { Yawpa.parse(params, options) }.to raise_error
|
190
|
+
expect { Yawpa.parse(params, options) }.to raise_error(Yawpa::ArgumentParsingException, /Not enough arguments supplied/)
|
191
191
|
end
|
192
192
|
|
193
193
|
it "overwrites option value when short option used after long" do
|
@@ -230,5 +230,32 @@ describe Yawpa do
|
|
230
230
|
expect(opts).to eq(push: false, pull: true)
|
231
231
|
expect(args).to eq(%w[arg])
|
232
232
|
end
|
233
|
+
|
234
|
+
it "returns non-frozen strings" do
|
235
|
+
options = {
|
236
|
+
o1: {nargs: 1, short: "1"},
|
237
|
+
o2: {nargs: 1, short: "2"},
|
238
|
+
o3: {nargs: 1, short: "3"},
|
239
|
+
o4: {nargs: 1, short: "4"},
|
240
|
+
}
|
241
|
+
|
242
|
+
arguments = %w[--o1=one --o2 two -3 three -4four arg].map(&:freeze)
|
243
|
+
|
244
|
+
opts, args = Yawpa.parse(arguments, options)
|
245
|
+
expect(opts[:o1].frozen?).to be_falsey
|
246
|
+
expect{opts[:o1].sub!(/./, '-')}.to_not raise_error
|
247
|
+
expect(opts[:o2].frozen?).to be_falsey
|
248
|
+
expect{opts[:o2].sub!(/./, '-')}.to_not raise_error
|
249
|
+
expect(opts[:o3].frozen?).to be_falsey
|
250
|
+
expect{opts[:o3].sub!(/./, '-')}.to_not raise_error
|
251
|
+
expect(opts[:o4].frozen?).to be_falsey
|
252
|
+
expect{opts[:o4].sub!(/./, '-')}.to_not raise_error
|
253
|
+
expect(args[0].frozen?).to be_falsey
|
254
|
+
expect{args[0].sub!(/./, '-')}.to_not raise_error
|
255
|
+
|
256
|
+
opts, args = Yawpa.parse(arguments, options, posix_order: true)
|
257
|
+
expect(args[0].frozen?).to be_falsey
|
258
|
+
expect{args[0].sub!(/./, '-')}.to_not raise_error
|
259
|
+
end
|
233
260
|
end
|
234
261
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yawpa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Josh Holtrop
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-04-19 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: simplecov
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rake
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rdoc
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: yard
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: redcarpet
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -129,33 +116,26 @@ files:
|
|
129
116
|
- yawpa.gemspec
|
130
117
|
homepage: ''
|
131
118
|
licenses: []
|
119
|
+
metadata: {}
|
132
120
|
post_install_message:
|
133
121
|
rdoc_options: []
|
134
122
|
require_paths:
|
135
123
|
- lib
|
136
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
125
|
requirements:
|
139
126
|
- - ! '>='
|
140
127
|
- !ruby/object:Gem::Version
|
141
128
|
version: '0'
|
142
|
-
segments:
|
143
|
-
- 0
|
144
|
-
hash: 77772525
|
145
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
130
|
requirements:
|
148
131
|
- - ! '>='
|
149
132
|
- !ruby/object:Gem::Version
|
150
133
|
version: '0'
|
151
|
-
segments:
|
152
|
-
- 0
|
153
|
-
hash: 77772525
|
154
134
|
requirements: []
|
155
135
|
rubyforge_project:
|
156
|
-
rubygems_version:
|
136
|
+
rubygems_version: 2.4.8
|
157
137
|
signing_key:
|
158
|
-
specification_version:
|
138
|
+
specification_version: 4
|
159
139
|
summary: Yet Another Way to Parse Arguments
|
160
140
|
test_files:
|
161
141
|
- spec/spec_helper.rb
|