xoptparse 0.5.0 → 0.6.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/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
|