shellopts 2.1.3 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/shellopts/args.rb +4 -0
- data/lib/shellopts/version.rb +1 -1
- data/lib/shellopts.rb +23 -23
- metadata +7 -7
- /data/lib/{ext → shellopts/ext}/array.rb +0 -0
- /data/lib/{ext → shellopts/ext}/follow.rb +0 -0
- /data/lib/{ext → shellopts/ext}/forward_to.rb +0 -0
- /data/lib/{ext → shellopts/ext}/lcs.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fccea78ec2de7eab1323d529055ce1875ca9ac6b966a40dcadad83e4e68594f5
|
4
|
+
data.tar.gz: 6326b0754e0c24164bdd09f0bfbe36248aa2c7b493c1b4fa5db2c65046de7c3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 400ac812870c7b51321cc360e547a43e0b3976c1e6d7b2358cbc2abd3fb0491837bb230bf386a899a08967d0ed5201c8e532bb49fb12ef7aa95050c9af8b8fd6
|
7
|
+
data.tar.gz: 115186fbd56935988bcdd1d7f37b00168e4432aa5fff889933b79b7ddbea0be5ab95f0a970c635e04c713aa4664e8333f67c43bc26ccc3e4916f419afb67d65c
|
data/lib/shellopts/args.rb
CHANGED
@@ -26,11 +26,13 @@ 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
|
32
33
|
range = count_or_range
|
33
34
|
range.min <= self.size or inoa(message)
|
35
|
+
return self.to_a if range.end.nil?
|
34
36
|
n_extract = [self.size, range.max].min
|
35
37
|
n_extend = range.max > self.size ? range.max - self.size : 0
|
36
38
|
r = self.shift(n_extract) + Array.new(n_extend)
|
@@ -52,10 +54,12 @@ module ShellOpts
|
|
52
54
|
# #expect raise a ShellOpts::Error exception if the array is not emptied
|
53
55
|
# by the operation
|
54
56
|
#
|
57
|
+
# TODO: Better handling of ranges. Allow: 2..-1, -2..-4, etc.
|
55
58
|
def expect(count_or_range, message = nil)
|
56
59
|
case count_or_range
|
57
60
|
when Range
|
58
61
|
count_or_range === self.size or inoa(message)
|
62
|
+
return self.to_a if count_or_range.end.nil?
|
59
63
|
when Integer
|
60
64
|
count_or_range >= 0 or inoa(message)
|
61
65
|
count_or_range.abs == self.size or inoa(message)
|
data/lib/shellopts/version.rb
CHANGED
data/lib/shellopts.rb
CHANGED
@@ -4,28 +4,28 @@ require 'indented_io'
|
|
4
4
|
require 'constrain'
|
5
5
|
include Constrain
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
require_relative 'shellopts/ext/array.rb'
|
8
|
+
require_relative 'shellopts/ext/follow.rb'
|
9
|
+
require_relative 'shellopts/ext/forward_to.rb' # Import into standard forward_to
|
10
|
+
require_relative 'shellopts/ext/lcs.rb'
|
11
11
|
include ForwardTo
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
13
|
+
require_relative 'shellopts/version.rb'
|
14
|
+
|
15
|
+
require_relative 'shellopts/stack.rb'
|
16
|
+
require_relative 'shellopts/token.rb'
|
17
|
+
require_relative 'shellopts/grammar.rb'
|
18
|
+
require_relative 'shellopts/program.rb'
|
19
|
+
require_relative 'shellopts/args.rb'
|
20
|
+
require_relative 'shellopts/lexer.rb'
|
21
|
+
require_relative 'shellopts/argument_type.rb'
|
22
|
+
require_relative 'shellopts/parser.rb'
|
23
|
+
require_relative 'shellopts/analyzer.rb'
|
24
|
+
require_relative 'shellopts/interpreter.rb'
|
25
|
+
require_relative 'shellopts/ansi.rb'
|
26
|
+
require_relative 'shellopts/renderer.rb'
|
27
|
+
require_relative 'shellopts/formatter.rb'
|
28
|
+
require_relative 'shellopts/dump.rb'
|
29
29
|
|
30
30
|
# TODO: Describe exception handling
|
31
31
|
#
|
@@ -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
|
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.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: forward_to
|
@@ -133,16 +133,16 @@ files:
|
|
133
133
|
- doc/stylesheet.css
|
134
134
|
- doc/syntax.rb
|
135
135
|
- doc/syntax.txt
|
136
|
-
- lib/ext/array.rb
|
137
|
-
- lib/ext/follow.rb
|
138
|
-
- lib/ext/forward_to.rb
|
139
|
-
- lib/ext/lcs.rb
|
140
136
|
- lib/shellopts.rb
|
141
137
|
- lib/shellopts/analyzer.rb
|
142
138
|
- lib/shellopts/ansi.rb
|
143
139
|
- lib/shellopts/args.rb
|
144
140
|
- lib/shellopts/argument_type.rb
|
145
141
|
- lib/shellopts/dump.rb
|
142
|
+
- lib/shellopts/ext/array.rb
|
143
|
+
- lib/shellopts/ext/follow.rb
|
144
|
+
- lib/shellopts/ext/forward_to.rb
|
145
|
+
- lib/shellopts/ext/lcs.rb
|
146
146
|
- lib/shellopts/formatter.rb
|
147
147
|
- lib/shellopts/grammar.rb
|
148
148
|
- lib/shellopts/interpreter.rb
|
@@ -173,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
173
173
|
- !ruby/object:Gem::Version
|
174
174
|
version: '0'
|
175
175
|
requirements: []
|
176
|
-
rubygems_version: 3.3.
|
176
|
+
rubygems_version: 3.3.18
|
177
177
|
signing_key:
|
178
178
|
specification_version: 4
|
179
179
|
summary: Parse command line options and arguments
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|