optparse-simple 0.4.5 → 0.4.6

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 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