shellopts 2.1.2 → 2.1.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: 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