optparse-simple 0.4.5 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data/lib/optparse-simple.rb +38 -19
- data.tar.gz.sig +1 -4
- metadata +32 -49
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b326dad3694f081a6c88e0379f0eac45755031bb0a18699758d13a1191a5bd6e
|
4
|
+
data.tar.gz: 3f821a49c2c71552987cbae0773385da50a82ba88b9afb3733d776904b400c7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb51494f80e5cef1fcbcb5add02a68652ad67742521d3950e7178ff1026f46a5dad7fbe8ad9c9f505b5a653386428f6f2a70fbfc7aac12c32ad045f9611bd02f
|
7
|
+
data.tar.gz: ccbf8eb0bd9e3004f24ad98ee98236157f1a9f9f73dd4928fbb2db8945d4c6800832e00e41da42afc1f16b4efcb372380f8d10d5c45293450805806c7a74b33d
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/optparse-simple.rb
CHANGED
@@ -10,14 +10,16 @@ require 'table-formatter'
|
|
10
10
|
class OptParseSimple
|
11
11
|
include REXML
|
12
12
|
|
13
|
-
def initialize(s)
|
13
|
+
def initialize(s, debug: false)
|
14
|
+
|
15
|
+
@debug = debug
|
14
16
|
super()
|
15
17
|
buffer = readx(s)
|
16
18
|
|
17
19
|
@doc = Document.new(buffer)
|
18
20
|
#@doc = Rexle.new(buffer)
|
19
21
|
end
|
20
|
-
|
22
|
+
|
21
23
|
def parse(args)
|
22
24
|
|
23
25
|
@options = XPath.match(@doc.root, 'records/optionx[summary/switch!="n/a"]')
|
@@ -25,17 +27,21 @@ class OptParseSimple
|
|
25
27
|
|
26
28
|
switches = @options.map do |option|
|
27
29
|
|
30
|
+
puts 'option: ' + option.to_s.inspect if @debug
|
31
|
+
|
28
32
|
switch = option.text('summary/switch')
|
33
|
+
next if switch.nil?
|
34
|
+
|
29
35
|
switch[0] == '-' ? switch : nil
|
30
|
-
end
|
36
|
+
end
|
31
37
|
|
32
38
|
switches.compact!
|
33
|
-
|
39
|
+
|
34
40
|
# split the argument switches if grouped e.g. -ltr
|
35
41
|
args.map! do |arg|
|
36
42
|
|
37
43
|
if arg[/^\-[a-zA-Z]+$/] and switches.grep(/#{arg}/).empty? then
|
38
|
-
arg[1..-1].scan(/./).map {|x| '-' + x}
|
44
|
+
arg[1..-1].scan(/./).map {|x| '-' + x}
|
39
45
|
else
|
40
46
|
arg
|
41
47
|
end
|
@@ -50,7 +56,7 @@ class OptParseSimple
|
|
50
56
|
.map {|node| %w(switch alias)\
|
51
57
|
.map{|x| node.text(x)}.compact}\
|
52
58
|
.flatten
|
53
|
-
|
59
|
+
|
54
60
|
args.map!.with_index do |x,i|
|
55
61
|
next unless x or i < args.length - 1
|
56
62
|
(x += '=' + args[i+1]; args[i+1] = nil) if options.include?(x)
|
@@ -79,7 +85,7 @@ class OptParseSimple
|
|
79
85
|
end
|
80
86
|
|
81
87
|
a2 = args.zip(options_remaining).map(&:reverse)
|
82
|
-
|
88
|
+
|
83
89
|
if a2.map(&:first).all? then
|
84
90
|
@h = Hash[*(a1+a2).map{|x,y| [x.to_s.strip.to_sym, y || true]}.flatten]
|
85
91
|
else
|
@@ -93,8 +99,8 @@ class OptParseSimple
|
|
93
99
|
def to_h()
|
94
100
|
@h
|
95
101
|
end
|
96
|
-
|
97
|
-
def help
|
102
|
+
|
103
|
+
def help
|
98
104
|
a = XPath.match(@doc.root, "records/optionx/summary[switch != 'n/a']").map do |summary|
|
99
105
|
#a = @doc.root.xpath("records/optionx/summary[switch != 'n/a']").map do |summary|
|
100
106
|
%w(switch alias).map {|x| summary.text x}
|
@@ -103,7 +109,7 @@ class OptParseSimple
|
|
103
109
|
puts TableFormatter.new(source: a, border: false).to_s
|
104
110
|
end
|
105
111
|
|
106
|
-
private
|
112
|
+
private
|
107
113
|
|
108
114
|
def options_match(option, args)
|
109
115
|
|
@@ -116,7 +122,7 @@ class OptParseSimple
|
|
116
122
|
|
117
123
|
if switch_matched then
|
118
124
|
|
119
|
-
value_pattern = option.text('summary/value')
|
125
|
+
value_pattern = option.text('summary/value')
|
120
126
|
|
121
127
|
if value_pattern and value_pattern.downcase != 'n/a' then
|
122
128
|
|
@@ -126,7 +132,7 @@ class OptParseSimple
|
|
126
132
|
# check the next arg
|
127
133
|
if value.nil? and args.length > 0 then
|
128
134
|
|
129
|
-
next_arg = args[arg_index + 1]
|
135
|
+
next_arg = args[arg_index + 1]
|
130
136
|
|
131
137
|
# check to make sure it's not the next switch
|
132
138
|
next_option = @options[1] if @options.length > 1
|
@@ -145,7 +151,7 @@ class OptParseSimple
|
|
145
151
|
|
146
152
|
else
|
147
153
|
args.delete_at(arg_index)
|
148
|
-
end
|
154
|
+
end
|
149
155
|
|
150
156
|
else
|
151
157
|
|
@@ -153,7 +159,7 @@ class OptParseSimple
|
|
153
159
|
end
|
154
160
|
|
155
161
|
key = option.text('summary/name')
|
156
|
-
|
162
|
+
|
157
163
|
elsif option.text('summary/mandatory').to_s.downcase == 'true' then
|
158
164
|
|
159
165
|
raise option.text('records/errorx/summary/msg')
|
@@ -167,22 +173,35 @@ class OptParseSimple
|
|
167
173
|
|
168
174
|
[pair, next_pair]
|
169
175
|
end
|
170
|
-
|
176
|
+
|
171
177
|
def readx(s)
|
172
|
-
|
178
|
+
|
173
179
|
r = if s.is_a? Polyrex then
|
180
|
+
|
174
181
|
s.to_xml
|
182
|
+
|
175
183
|
elsif s[/\s/] then
|
176
|
-
|
184
|
+
|
185
|
+
puts 'before polyrex' if @debug
|
186
|
+
px = Polyrex.new('options/optionx[name,switch,alias,value,mandatory]/' +
|
187
|
+
'errorx[msg]', delimiter: ' ')
|
188
|
+
px.parse(s).to_xml
|
189
|
+
|
177
190
|
elsif s[/^https?:\/\//] then # url
|
191
|
+
|
178
192
|
Kernel.open(s, 'UserAgent' => 'Polyrex-Reader').read
|
193
|
+
|
179
194
|
elsif s[/\</] # xml
|
195
|
+
|
180
196
|
s
|
197
|
+
|
181
198
|
else # local file
|
199
|
+
|
182
200
|
File.read s
|
183
|
-
|
201
|
+
|
202
|
+
end
|
184
203
|
|
185
204
|
r
|
186
205
|
end
|
187
206
|
|
188
|
-
end
|
207
|
+
end
|
data.tar.gz.sig
CHANGED
@@ -1,4 +1 @@
|
|
1
|
-
�O�
|
2
|
-
u�|C
|
3
|
-
��(Gkp�=�>�K��b���U2n�PxL��qr�.�6��u�]M�Q�]� n��i�ׯ��0��*�w
|
4
|
-
g���=��.���(�|c�`�c�����?�v�y�zom]T�dBWEp[ې���]k��U���᰷��4�+���i�Х[��8�D�!ͨ�ؤ����E>�/�;.ݪ�D� M���O��*���
|
1
|
+
;�[�{�\Z��z�mw�R� Ō\:6#B� 7�xB��<���U�/��mj�dY��.���7���}p�p�Tf��mP����"�FA�ulj�[����4�B��l���(A�tD�����"-�Ij�*p�r1��>��x��(&�D�ß�ñ�;���Z;)Ў�,������"v��.���mx���F|���еB�״\QO�5e`9xI��-E�����k[�O}�����#��d�1�V���)-؞{a|s 8 8�t2oS�G��۵pC�ۤ��U�E��M�wui}_�_"6�{�Nyc�x}���{��A�1�����$���S��4M�vf-Yg\>)Ӟ�[Ѯ=8ߛ�;�e;}��IL �6��MC;�m5���}�
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: optparse-simple
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -10,28 +10,32 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMzE4MTcxMTA5WhcN
|
15
|
+
MjMwMzE4MTcxMTA5WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCmJrad
|
17
|
+
d/9H8k46iOy7aoFodRISFS60AtPjhclN4evl9Yoms7DNu9jJoMVz5gEk8kYTE2Ky
|
18
|
+
K2ZC8ii+m2BpdglF+sxxpZYs6AlJmg5u+2SsM37mumNHIPU1rAX/xxQ5G0M5hbQV
|
19
|
+
kMf9NW70R6fCyCRDZmpl126gEdnXhbI3CeA4NV/yG809OqbMGYZBoc4wtYV6qPRm
|
20
|
+
53pbju0IuqrDcZSEdP7wgmENgpdpPHoHUERmWqtIHQLxcCQhtZKiuF1j/oX/RE98
|
21
|
+
ByrMy46RH0CV0qYSdsuFD9r9d3UszBUx83JUnpIEdswGKH81jWqj8IvnZUcTQv9G
|
22
|
+
70UiMNgW1Pr0L+Cp8MSd6nCDJZag7dLNPjmNLe21/rOA7XqTBhbLFXqDhPmeNL6m
|
23
|
+
4CXuh675pXV8/XoJ6CHLzbkZ5pkYhq40DNgpZYy7ziJd1K2dYWlOacIK+2cuXmlz
|
24
|
+
R65EAZYwlOiXMwyPH5dfEXgKtT9Ur0UCnT6ebkDsUaVCNcVHMFERVAlE4dkCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU2XNoEI9m
|
26
|
+
73Pk9PD2zXE9sb/N/1QwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAQU2YxoKeotpocBo9hvY+DmYnFG3YBwy403xszRbk
|
29
|
+
qdDDOjWvK3rc4uo4t+1VrdSanLhsjTcy3p7ssEhWPUoJUsAnELgba8SQuoEvH5gb
|
30
|
+
Di5P3BllU0R49y1osDY45TzK2bce7w6ivx3oo9vvEImShJiB+lJZUqNEnn+Ukd8k
|
31
|
+
rM+zO5f/aNWG/pS6CKaWSpxWIdaxzPheyoARBodCT/4GklKqXU4y77/oLCHsLqBH
|
32
|
+
QDkEbD2xxq+nWiwIvjPa5pQNsMEOaC97ot7dN1fnJLpuDBKan805lL/yqDIWmmrC
|
33
|
+
H3GEyF6rM5SsbYIDb4IOrd9ss9s7ecMdB4xAd18aSEEW0m6GGp2MK94xHE+cIAvv
|
34
|
+
ajDe8lJwXY2qY5Hs7mfycsN5hiT+1l+7ZFCmeWg74IMR9d53IqVtulMRApL38r5N
|
35
|
+
SNrVD7FLc6WvFerPjJNoOEcMgRFQzocCES1YWcCBVTRqrYBuWYRSMrQmCLe/RNPE
|
36
|
+
O5mUqpUAgNSTf05RAdLMVsNz
|
33
37
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
38
|
+
date: 2022-03-18 00:00:00.000000000 Z
|
35
39
|
dependencies:
|
36
40
|
- !ruby/object:Gem::Dependency
|
37
41
|
name: polyrex
|
@@ -39,42 +43,22 @@ dependencies:
|
|
39
43
|
requirements:
|
40
44
|
- - "~>"
|
41
45
|
- !ruby/object:Gem::Version
|
42
|
-
version: '1.
|
46
|
+
version: '1.4'
|
43
47
|
- - ">="
|
44
48
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.
|
49
|
+
version: 1.4.1
|
46
50
|
type: :runtime
|
47
51
|
prerelease: false
|
48
52
|
version_requirements: !ruby/object:Gem::Requirement
|
49
53
|
requirements:
|
50
54
|
- - "~>"
|
51
55
|
- !ruby/object:Gem::Version
|
52
|
-
version: '1.
|
56
|
+
version: '1.4'
|
53
57
|
- - ">="
|
54
58
|
- !ruby/object:Gem::Version
|
55
|
-
version: 1.
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: table-formatter
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - "~>"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0.1'
|
63
|
-
- - ">="
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: 0.1.13
|
66
|
-
type: :runtime
|
67
|
-
prerelease: false
|
68
|
-
version_requirements: !ruby/object:Gem::Requirement
|
69
|
-
requirements:
|
70
|
-
- - "~>"
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: '0.1'
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 0.1.13
|
59
|
+
version: 1.4.1
|
76
60
|
description: OptParse-Simple parses command-line arguments and returns them as a hash.
|
77
|
-
email:
|
61
|
+
email: digital.robertson@gmail.com
|
78
62
|
executables: []
|
79
63
|
extensions: []
|
80
64
|
extra_rdoc_files: []
|
@@ -99,8 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
83
|
- !ruby/object:Gem::Version
|
100
84
|
version: '0'
|
101
85
|
requirements: []
|
102
|
-
|
103
|
-
rubygems_version: 2.4.8
|
86
|
+
rubygems_version: 3.2.22
|
104
87
|
signing_key:
|
105
88
|
specification_version: 4
|
106
89
|
summary: optparse-simple
|
metadata.gz.sig
CHANGED
Binary file
|