lab42_rgxargs 0.2.3 → 0.2.4

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
2
  SHA256:
3
- metadata.gz: 46ea3cf93ac7771a551e9a10b20f186f138212ebce19c00a5083f81643d6f5aa
4
- data.tar.gz: 67228a63a2bafd4e31146ed404763f5594d04874814ceb4a305f32fbc43be2bb
3
+ metadata.gz: fa12272618cb7bd23bf218ce2405f99119f1686352b7ddfc622e5697caa22dbf
4
+ data.tar.gz: 5f6c5ebf2b1ff5bdfa3d701b493359aff5fdea521f221b78d0f5f3e3838060a9
5
5
  SHA512:
6
- metadata.gz: 6ed3a187a04077514644c693ac0e4ec39a3043da60b4bf1f89e330e09de277b87383173d4705e5b977a3f004fb9dc0c96dbe906a4e68944a78ea9e3d0db09b50
7
- data.tar.gz: 7d4e6142d636dfb485c2724ef6c55a20bef1128d025778f478feb6ce7f7ac0c2a9756e23c22c695475d24c03a2c814ed30735e7cc9eafcc8341ad4d8189b8d93
6
+ metadata.gz: bb9e676b416e06afdb02c10740026afd313f41aaf17ce60824054309327915e00dd4883901d311bb96ff15d376793fdf27a9cc6be7a1c2ee6d8074a75ff302bc
7
+ data.tar.gz: 1a40c994e1b1943c070f6b2969c1b4b59ab832e17e79908cd7218210bbf12e916c1521ea5758aa0e7330515606dd4745a18941771f8bd9e3d57d775b941791a2
@@ -1,5 +1,5 @@
1
1
  module Lab42
2
2
  class Rgxargs
3
- VERSION = "0.2.3"
3
+ VERSION = "0.2.4"
4
4
  end
5
5
  end
data/lib/lab42/rgxargs.rb CHANGED
@@ -19,7 +19,7 @@ module Lab42
19
19
  extend Forwardable
20
20
  def_delegators Predefined, :list_matcher
21
21
 
22
- attr_reader :allowed, :args, :conversions, :defaults, :defined_rules, :errors, :options, :posix, :required, :syntaxes
22
+ attr_reader :allowed, :args, :conversions, :defaults, :defined_rules, :errors, :open_struct, :options, :posix, :required, :syntaxes
23
23
 
24
24
  def predefined_matchers
25
25
  Predefined.defined_names
@@ -70,7 +70,7 @@ module Lab42
70
70
 
71
71
  private
72
72
 
73
- def initialize(posix: false, &blk)
73
+ def initialize(open_struct: true, posix: false, &blk)
74
74
  @args = []
75
75
  @allowed = nil
76
76
  @conversions = {}
@@ -78,11 +78,12 @@ module Lab42
78
78
  @defined_rules = []
79
79
  @errors = []
80
80
  @posix = posix
81
+ @open_struct = open_struct
81
82
  @required = ::Set.new
82
83
  @syntaxes = []
83
84
 
84
85
  instance_exec(&blk) if blk
85
- @options = ::OpenStruct.new(defaults)
86
+ @options = defaults
86
87
  end
87
88
 
88
89
  def _convert(value, name:)
@@ -147,7 +148,7 @@ module Lab42
147
148
  argv = _parse_next_posix argv
148
149
  end
149
150
  _check_required_kwds
150
- [options, args, errors]
151
+ _return_values
151
152
  end
152
153
 
153
154
  def _parse_posix_param first, rest
@@ -155,14 +156,14 @@ module Lab42
155
156
  when %r{\A--([-_[:alnum:]]+)=(.*)\z}
156
157
  Regexp.last_match.to_a => _, name, value
157
158
  name = name.gsub("-", "_")
158
- options[name] = _convert(value, name: name)
159
+ options[name.to_sym] = _convert(value, name: name)
159
160
  when %r{\A--([-_[:alnum:]]+)\z}
160
161
  Regexp.last_match.to_a => _, name
161
162
  name = name.gsub("-", "_")
162
- options[name] = true
163
+ options[name.to_sym] = true
163
164
  when %r{\A-([[:alnum:]]+)\z}
164
165
  $1.grapheme_clusters.each do |shopt|
165
- options[shopt]=true
166
+ options[shopt.to_sym]=true
166
167
  end
167
168
  else
168
169
  args << first
@@ -176,7 +177,7 @@ module Lab42
176
177
  argv = _parse_next_ruby_syntax argv
177
178
  end
178
179
  _check_required_kwds
179
- [options, args, errors]
180
+ _return_values
180
181
  end
181
182
 
182
183
  def _parse_symbolic first, rest
@@ -184,7 +185,7 @@ module Lab42
184
185
  when %r{\A:(.*)}
185
186
  switch = $1.gsub('-','_').to_sym
186
187
  _check_switch(switch)
187
- options[switch]=true
188
+ options[switch.to_sym]=true
188
189
  rest
189
190
  when %r{(.*):\z}
190
191
  kwd = $1.gsub('-', '_').to_sym
@@ -202,7 +203,7 @@ module Lab42
202
203
  def _parse_syntax first
203
204
  value, as = syntaxes.find_value(first){ |matcher| matcher.match(first) }
204
205
  if as
205
- options[as] = value
206
+ options[as.to_sym] = value
206
207
  else
207
208
  args << value
208
209
  end
@@ -211,12 +212,19 @@ module Lab42
211
212
  def _parse_value name, rest
212
213
  value, *rest1 = rest
213
214
  if value
214
- options[name] = _convert(value, name: name)
215
+ options[name.to_sym] = _convert(value, name: name)
215
216
  return rest1
216
217
  end
217
218
  errors << [:missing_required_value, name]
218
219
  []
219
220
  end
220
221
 
222
+ def _return_values
223
+ if open_struct
224
+ [::OpenStruct.new(options), args, errors]
225
+ else
226
+ [options, args, errors]
227
+ end
228
+ end
221
229
  end
222
230
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lab42_rgxargs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober