optparse2 0.4.4 → 0.5.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 +4 -4
- data/lib/optparse2/version.rb +1 -1
- data/lib/optparse2.rb +8 -7
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 376bbfd9fc2c5c6c0be54659a67b7348e25020e9fc127241d99572731ab3242f
|
|
4
|
+
data.tar.gz: 8e11e2b03a970cd1f1de7ef5fe546eb02e49b0c7c536ccf297bdedb4162f2238
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5f675f1b0ea86836d55639bbf4a97721b686a570a6a4c3e1b57995515f1138d925dd07c6eae266dbbedb22645b124841a33e0770d9523d27fbdeb45b5b2adc15
|
|
7
|
+
data.tar.gz: f8121ecfff0b7e7bacde7649729cdf13f828b63d146f838749184ee362839157338a2939813bad5737c0c85ba1268bb0985baebef0c18330bc6f435cf99b977a
|
data/lib/optparse2/version.rb
CHANGED
data/lib/optparse2.rb
CHANGED
|
@@ -121,7 +121,7 @@ class OptParse2
|
|
|
121
121
|
|
|
122
122
|
result = super(argv, into: already_done, **keywords, &non_options.method(:<<))
|
|
123
123
|
|
|
124
|
-
argv2 = non_options.each_with_index.flat_map { ["--*-positional-#{_2}", _1] }
|
|
124
|
+
argv2 = (non_options + result).each_with_index.flat_map { ["--*-positional-#{_2}", _1] }
|
|
125
125
|
|
|
126
126
|
old_raise, self.raise_unknown = self.raise_unknown, false
|
|
127
127
|
begin
|
|
@@ -140,8 +140,9 @@ class OptParse2
|
|
|
140
140
|
raise ParseError, "at least #{@rest[:required]} trailing arguments required (only got #{argv2.length})", caller(1)
|
|
141
141
|
end
|
|
142
142
|
|
|
143
|
-
argv2 = @rest[:block].call(argv2)
|
|
144
|
-
into[@rest[:key]] = argv2 if @rest[:key]
|
|
143
|
+
argv2 = @rest[:block] ? @rest[:block].call(argv2) : argv2
|
|
144
|
+
into[@rest[:key]] = argv2.dup if @rest[:key]
|
|
145
|
+
argv2.clear
|
|
145
146
|
elsif !argv2.empty? && self.raise_unknown && !@positional.empty?
|
|
146
147
|
raise ParseError, "got unexpected positional argument: #{argv2.first}", caller(1)
|
|
147
148
|
else
|
|
@@ -225,7 +226,7 @@ class OptParse2
|
|
|
225
226
|
@positional.append sw
|
|
226
227
|
end
|
|
227
228
|
|
|
228
|
-
def rest(name, *description, key: name, required: 0, &block)
|
|
229
|
+
def rest(name, *description, key: name.to_s.tr(' ', '-').to_sym, required: 0, &block)
|
|
229
230
|
title = "#{'[' if required.zero?}#{name} ...#{']' if required.zero?}"
|
|
230
231
|
banner.concat " #{title}" if pos_set_banner
|
|
231
232
|
title += " (#{required} arg minimum)" if required > 0
|
|
@@ -245,7 +246,7 @@ require_relative 'optparse2/pathname'
|
|
|
245
246
|
|
|
246
247
|
# $* << '-tFOO' << '--no-cache' << '-x'
|
|
247
248
|
# $*.replace %w[123 lol what -t10 is up here]
|
|
248
|
-
$*.replace %w[1 -t3
|
|
249
|
+
$*.replace %w[1 -t3 bb lol what -- is up]
|
|
249
250
|
|
|
250
251
|
OPTS={}
|
|
251
252
|
OptParse2.new do |op|
|
|
@@ -254,7 +255,7 @@ OptParse2.new do |op|
|
|
|
254
255
|
op.pos 'file', Integer, 'sets the file name', 'is also pretty cool', 1..1000, required: true do it * 2 end
|
|
255
256
|
op.pos '[start[-end]]', 'things to do', key: 'line', default: 123
|
|
256
257
|
|
|
257
|
-
op.rest '
|
|
258
|
-
op.parse! into: OPTS
|
|
258
|
+
op.rest 'branch name', 'Message to submit', 'pretty coo', required: 1 do it.join ' ' end
|
|
259
|
+
p op.parse! into: OPTS
|
|
259
260
|
p ["finish: ", OPTS, $*]
|
|
260
261
|
end
|