lab42_rgxargs 0.2.1 → 0.2.2
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 +4 -4
- data/lib/lab42/rgxargs/version.rb +1 -1
- data/lib/lab42/rgxargs.rb +54 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6f5ad80ee90e6586a78c9ea98a1edbc211991425ad57779851c458270a24cdf
|
4
|
+
data.tar.gz: 424e5bd200042239c0f514dc148734a7ccfc6aa3b940d4f94ad2298e90b61e83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fa3c37dc3763b9369a530db5df60bbcecc1524e856e6a5e74bf0067a2d1838a5e4fdb53c3e5b4a09ae097c216dab484dd5490b5f717ffbfeee7db49bd4ad676
|
7
|
+
data.tar.gz: '009c8e68f9acdf6ac1ca97a06a7e06e2c17c5f64419ff417ee197b907ce0867b07eb6dfb6c330a6f80a5c924021ea532131a2a4469189a23ddbe82c7d9458519'
|
data/lib/lab42/rgxargs.rb
CHANGED
@@ -18,7 +18,7 @@ module Lab42
|
|
18
18
|
extend Forwardable
|
19
19
|
def_delegators Predefined, :list_matcher
|
20
20
|
|
21
|
-
attr_reader :allowed, :args, :conversions, :defaults, :defined_rules, :errors, :options, :required, :syntaxes
|
21
|
+
attr_reader :allowed, :args, :conversions, :defaults, :defined_rules, :errors, :options, :posix, :required, :syntaxes
|
22
22
|
|
23
23
|
def predefined_matchers
|
24
24
|
Predefined.defined_names
|
@@ -52,11 +52,11 @@ module Lab42
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def parse argv
|
55
|
-
|
56
|
-
|
55
|
+
if posix
|
56
|
+
_parse_posix argv
|
57
|
+
else
|
58
|
+
_parse_ruby_syntax argv
|
57
59
|
end
|
58
|
-
_check_required_kwds
|
59
|
-
[options, args, errors]
|
60
60
|
end
|
61
61
|
|
62
62
|
def allows name, matcher=nil, &converter
|
@@ -69,13 +69,14 @@ module Lab42
|
|
69
69
|
|
70
70
|
private
|
71
71
|
|
72
|
-
def initialize &blk
|
72
|
+
def initialize(posix: false, &blk)
|
73
73
|
@args = []
|
74
74
|
@allowed = nil
|
75
75
|
@conversions = {}
|
76
76
|
@defaults = {}
|
77
77
|
@defined_rules = []
|
78
78
|
@errors = []
|
79
|
+
@posix = posix
|
79
80
|
@required = ::Set.new
|
80
81
|
@syntaxes = []
|
81
82
|
|
@@ -122,7 +123,16 @@ module Lab42
|
|
122
123
|
end
|
123
124
|
end
|
124
125
|
|
125
|
-
def
|
126
|
+
def _parse_next_posix argv
|
127
|
+
first, *rest = argv
|
128
|
+
if first == '--'
|
129
|
+
@args += rest
|
130
|
+
return []
|
131
|
+
end
|
132
|
+
_parse_posix_param first, rest
|
133
|
+
end
|
134
|
+
|
135
|
+
def _parse_next_ruby_syntax argv
|
126
136
|
first, *rest = argv
|
127
137
|
if first == '--'
|
128
138
|
@args += rest
|
@@ -131,6 +141,43 @@ module Lab42
|
|
131
141
|
_parse_symbolic first, rest
|
132
142
|
end
|
133
143
|
|
144
|
+
def _parse_posix argv
|
145
|
+
until argv.empty?
|
146
|
+
argv = _parse_next_posix argv
|
147
|
+
end
|
148
|
+
_check_required_kwds
|
149
|
+
[options, args, errors]
|
150
|
+
end
|
151
|
+
|
152
|
+
def _parse_posix_param first, rest
|
153
|
+
case first
|
154
|
+
when %r{\A--([-_[:alnum:]]+)=(.*)\z}
|
155
|
+
Regexp.last_match.to_a => _, name, value
|
156
|
+
name = name.gsub("-", "_")
|
157
|
+
options[name] = _convert(value, name: name)
|
158
|
+
when %r{\A--([-_[:alnum:]]+)\z}
|
159
|
+
Regexp.last_match.to_a => _, name
|
160
|
+
name = name.gsub("-", "_")
|
161
|
+
options[name] = true
|
162
|
+
when %r{\A-([[:alnum:]]+)\z}
|
163
|
+
$1.grapheme_clusters.each do |shopt|
|
164
|
+
options[shopt]=true
|
165
|
+
end
|
166
|
+
else
|
167
|
+
args << first
|
168
|
+
# _parse_syntax(first)
|
169
|
+
end
|
170
|
+
rest
|
171
|
+
end
|
172
|
+
|
173
|
+
def _parse_ruby_syntax argv
|
174
|
+
until argv.empty?
|
175
|
+
argv = _parse_next_ruby_syntax argv
|
176
|
+
end
|
177
|
+
_check_required_kwds
|
178
|
+
[options, args, errors]
|
179
|
+
end
|
180
|
+
|
134
181
|
def _parse_symbolic first, rest
|
135
182
|
case first
|
136
183
|
when %r{\A:(.*)}
|
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.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Dober
|
@@ -101,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '0'
|
103
103
|
requirements: []
|
104
|
-
rubygems_version: 3.3.
|
104
|
+
rubygems_version: 3.3.7
|
105
105
|
signing_key:
|
106
106
|
specification_version: 4
|
107
107
|
summary: Parse CL args according to regexen
|