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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ea3a3a04d3463032d7b2c0cd3120a8999705fd5a
4
- data.tar.gz: 8c49b1a26f92d43c712ef2caf996d48d12b16c23
2
+ SHA256:
3
+ metadata.gz: b326dad3694f081a6c88e0379f0eac45755031bb0a18699758d13a1191a5bd6e
4
+ data.tar.gz: 3f821a49c2c71552987cbae0773385da50a82ba88b9afb3733d776904b400c7f
5
5
  SHA512:
6
- metadata.gz: 9f95efa9b778a9fb9965c0d70e5fa155d7bc81a00b3acf875c43cb78d5ac9bda5137c635fec282e794216d42159eae3084a102829d694112149c3e4ac4ed649f
7
- data.tar.gz: 4ca8bfc69bfc82d4204ec470ee63cbdec94113bfbf95da78176fb775bb2c8537f305b35c330638ef6e48817527c0b30faa88c14fbc4a4c8b3421c4d4de50ede4
6
+ metadata.gz: cb51494f80e5cef1fcbcb5add02a68652ad67742521d3950e7178ff1026f46a5dad7fbe8ad9c9f505b5a653386428f6f2a70fbfc7aac12c32ad045f9611bd02f
7
+ data.tar.gz: ccbf8eb0bd9e3004f24ad98ee98236157f1a9f9f73dd4928fbb2db8945d4c6800832e00e41da42afc1f16b4efcb372380f8d10d5c45293450805806c7a74b33d
checksums.yaml.gz.sig CHANGED
Binary file
@@ -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
- puts 'after flatten 2'
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
- Polyrex.new('options/optionx[name,switch,alias,value,mandatory]/errorx[msg]').parse(s).to_xml
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
- end
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�H+�G)�rJIK7�%Z����5�ɋ�^_��LQ�[���\kQ�
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��zmw�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 8t2oS�G��۵pC�ۤ��U�E� �M�wui}_�_"6�{�Nyc�x}���{��A1�����$���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.5
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
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE1MDIwODE4MjQyN1oXDTE2MDIwODE4MjQyN1owSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAJLJE+iYKOrPhAmeZtKk4DD3mV8coX/pMgl3GExMZ3ABiGNA5wnraEeN1krx
19
- q9cRIiEgO+llV+CDGWLd2oWBjo4u6LAhpCz2eQlJIbVyHu6qouKBTy4GbgVFg8Fn
20
- 8PLiFMB7wQoLoD8bG68AxxO2/iDQud4JlafEBXyxlTGuQlq5Lw9gQvSnlGAieRQr
21
- NjuNIOw4n2HXRmivS4V+//zRPiyBGdhDbSB1zLIT7fgeIglEbDo21SQITTENRZ1h
22
- DAkd4pmpisQWQAWy2Ov5r63uD9lpxSbHRFXyfaGaX3DMWpAhu10+JCc1Bo5kI2yk
23
- hY4avOApo4rABOB/0PADod7JZ+ECAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUKuHNETC2YZlY8IaQxkLOu2+O10YwJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAPe03jlVt
27
- HJlEqi5rwIcpo18mJFtU/9jcJt/3qlxN4966cs5sSCh96nMv0jLae/Y7a46OLwZG
28
- MdF5SDcY3DCBJ7T+E+P2uuF17sx2NSZb/GDm90Z2rRhHnQCAyvCulBvE8lS8MjS8
29
- dHzhwbn8Q2WvE4MDs/h8iGD+zW8DiSK1ltc+MWgHK/s9GyetV8S2/Gq6p9ejSZn+
30
- HBHBh2QEqbXkwCsH5UllD93L2A8kyBEHzjuaO3CG1Yqj6d9xdCGzXr4vtXKVmBSd
31
- reMUqAcVi3UK52Ugibv74I27D9zJTDYgqRMX3SevcEFrJo+g8ulq9nmVLQ3T+YB/
32
- BlF5+4+5WNopaw==
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: 2015-07-10 00:00:00.000000000 Z
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.0'
46
+ version: '1.4'
43
47
  - - ">="
44
48
  - !ruby/object:Gem::Version
45
- version: 1.0.3
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.0'
56
+ version: '1.4'
53
57
  - - ">="
54
58
  - !ruby/object:Gem::Version
55
- version: 1.0.3
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: james@r0bertson.co.uk
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
- rubyforge_project:
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