xoptparse 0.5.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/xoptparse.rb +9 -7
- data/lib/xoptparse/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b67b857f7260f74d4f14c343279a3bb75002061470b49473206c95ad5cd38816
|
4
|
+
data.tar.gz: 3d7056c4e16be3b0f6b71cb85cacc39481ee9523ce427840dc960126c3ddfbba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6c00977cccfead1e09cdde9b40592a7a5ef23777c516fbd65332f2a08a50a42f94bf669c4bc89f42e5c84ed427fe61dae5544cc2c33e3c0e8db3f4147b0505c
|
7
|
+
data.tar.gz: 3f63f73775990580eb2496a7b99975d94f7d5f773acc3ae4c2cdaae1acaa5930cd24212d555ed1f59229853e2d47f0d8c7bd10368351c306ca21c0e3e9fac8b1
|
data/Gemfile.lock
CHANGED
data/lib/xoptparse.rb
CHANGED
@@ -114,7 +114,7 @@ class XOptionParser < ::OptionParser
|
|
114
114
|
val = sw.block.call(*a)
|
115
115
|
setter&.call(sw.switch_name, val)
|
116
116
|
end
|
117
|
-
elsif sw.
|
117
|
+
elsif sw.pattern =~ argv.first
|
118
118
|
argv.shift
|
119
119
|
@command_switch = sw
|
120
120
|
break
|
@@ -156,14 +156,16 @@ class XOptionParser < ::OptionParser
|
|
156
156
|
end
|
157
157
|
|
158
158
|
def command(name, desc = nil, *args, &block)
|
159
|
-
|
159
|
+
name = name.to_s
|
160
|
+
pattern = /^#{name.gsub('_', '[-_]?')}$/i
|
161
|
+
sw0 = Switch::SummarizeArgument.new(pattern, nil, nil, nil, name, desc ? [desc] : [], nil) do
|
160
162
|
self.class.new(desc, *args) do |opt|
|
161
163
|
opt.program_name = "#{program_name} #{name}"
|
162
164
|
block&.call(opt)
|
163
165
|
end
|
164
166
|
end
|
165
167
|
top.append(sw0, nil, [sw0.arg])
|
166
|
-
@commands[name
|
168
|
+
@commands[name] = sw0
|
167
169
|
nil
|
168
170
|
end
|
169
171
|
|
@@ -242,11 +244,11 @@ class XOptionParser < ::OptionParser
|
|
242
244
|
|
243
245
|
class FlagArgument < PlacedArgument
|
244
246
|
def parse(arg, argv, &error)
|
245
|
-
|
246
|
-
|
247
|
-
else
|
248
|
-
super(arg, argv, &error)
|
247
|
+
super(arg, argv, &error).tap do |val|
|
248
|
+
raise OptionParser::InvalidArgument if val[0].nil? && val[2].nil?
|
249
249
|
end
|
250
|
+
rescue OptionParser::InvalidArgument
|
251
|
+
conv_arg(arg)
|
250
252
|
end
|
251
253
|
end
|
252
254
|
end
|
data/lib/xoptparse/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xoptparse
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ofk
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|