shellopts 2.1.2 → 2.1.4

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
2
  SHA256:
3
- metadata.gz: a3a9ad6ee2f65a71851c58d346666cc4120c60e3f6b7c4c13b2fa7e3424273c4
4
- data.tar.gz: 2ef59f2fecdf4d76053d111c77af1b991465a73bb882e27b77adeea7807a9e7b
3
+ metadata.gz: 8e35f8f74b401892334c494a767678b724049a9e77c275884591718d7903bfdf
4
+ data.tar.gz: bec330c7546466bc6e25f74fd2d3e9ae94247db5e048515a5b342cbf9cee31a1
5
5
  SHA512:
6
- metadata.gz: 2516249fedcc9f64e065dff3f46cc60783e5381207a36d1b4f185adea62dfa786bc067c7f3d2e0834a2160e34a46e20b8ee7de51f00b535d2d2d4ce32c340d02
7
- data.tar.gz: 643a49483fcafb4d5d281f200288781a597623f98cce4a7ed5a96dda42fe77c4968632f23a15bdc14f403160d892493150f95dbaa336b10b863febcb2835e163
6
+ metadata.gz: 49f17500a669a195ba1ccd75b14f9b8417e7640c2ae54dd704a5a0995e01a644fb860a93f0d645829e3d34859955eafd58b96528226b79c57326ff8692976114
7
+ data.tar.gz: b6e29046a96b36c68a088fa43f2ee2f25ad1c0fd9da5b5741035f7cae1be9030c731e1a3491fb47b2a51730e385388e8bc373bfd7986413b954ac3be929ac22c
@@ -26,6 +26,7 @@ module ShellOpts
26
26
  # #extract raise a ShellOpts::Error exception if there's is not enough
27
27
  # elements in the array to satisfy the request
28
28
  #
29
+ # TODO: Better handling of ranges. Allow: 2..-1, -2..-4, etc.
29
30
  def extract(count_or_range, message = nil)
30
31
  case count_or_range
31
32
  when Range
@@ -52,6 +53,7 @@ module ShellOpts
52
53
  # #expect raise a ShellOpts::Error exception if the array is not emptied
53
54
  # by the operation
54
55
  #
56
+ # TODO: Better handling of ranges. Allow: 2..-1, -2..-4, etc.
55
57
  def expect(count_or_range, message = nil)
56
58
  case count_or_range
57
59
  when Range
@@ -266,6 +266,14 @@ module ShellOpts
266
266
  end
267
267
  )
268
268
  end
269
+
270
+ if opt.argument?
271
+ self.instance_eval %(
272
+ def #{opt.attr}=(value)
273
+ @__option_values__[:#{opt.attr}] = value
274
+ end
275
+ )
276
+ end
269
277
  }
270
278
 
271
279
  @__grammar__.commands.each { |cmd|
@@ -1,3 +1,3 @@
1
1
  module ShellOpts
2
- VERSION = "2.1.2"
2
+ VERSION = "2.1.4"
3
3
  end
data/lib/shellopts.rb CHANGED
@@ -212,15 +212,15 @@ module ShellOpts
212
212
  @argv = argv.dup
213
213
  @program, @args = Interpreter.interpret(grammar, argv, float: float, exception: exception)
214
214
 
215
- # Process standard options (that may have been renamed)
216
- if @program.__send__(:"#{@help_option.ident}?")
215
+ # Process standard options that may have been renamed or be deactivated
216
+ if @help && @program.__send__(:"#{@help_option.ident}?")
217
217
  if @program[:help].name =~ /^--/
218
218
  ShellOpts.help
219
219
  else
220
220
  ShellOpts.brief
221
221
  end
222
222
  exit
223
- elsif @program.__send__(:"#{@version_option.ident}?")
223
+ elsif @version && @program.__send__(:"#{@version_option.ident}?")
224
224
  puts version_number
225
225
  exit
226
226
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shellopts
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-03 00:00:00.000000000 Z
11
+ date: 2024-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: forward_to