lab42_rgxargs 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/lab42/rgxargs.rb +4 -1
- data/lib/lab42/rgxargs/argument_matcher.rb +1 -1
- data/lib/lab42/rgxargs/predefined_matchers.rb +5 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfe60f4e05870ad8a1766abbe5b06b0a6925276696285bb19139ef11aeee70a3
|
4
|
+
data.tar.gz: 682386ba4e34b99f53877e0826b0e10f824c3750198c1b6bf66d634de3104d46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87cba6d04bfe08e2df0b1f90ccb273e2dd37594f4b44b15814a0c6def76466e244ae164f6876a9ad83dceee3ee43ffa815a2e5aa1ad877d929d352febdafab32
|
7
|
+
data.tar.gz: 75744824c57165417049bc8415315efc29de23a3af3c88a94b4cada576652a47e54ae472097a9819020c563bea93ec0e357fa7dfc3672a65b4e7700deaa402ed
|
data/lib/lab42/rgxargs.rb
CHANGED
@@ -62,7 +62,7 @@ module Lab42
|
|
62
62
|
conv.(value)
|
63
63
|
when Array
|
64
64
|
if (match = conv.first.match(value))
|
65
|
-
conv[1].(match.captures)
|
65
|
+
conv[1].(*match.captures)
|
66
66
|
else
|
67
67
|
errors << [:syntax_error, name, "#{value} does not match #{conv.first}"]
|
68
68
|
nil
|
@@ -89,6 +89,9 @@ module Lab42
|
|
89
89
|
rest
|
90
90
|
when %r{(.*):\z}
|
91
91
|
_parse_value $1.gsub('-', '_').to_sym, rest
|
92
|
+
when %r{\A\\(.*)}
|
93
|
+
args << $1
|
94
|
+
rest
|
92
95
|
else
|
93
96
|
_parse_syntax(first)
|
94
97
|
rest
|
@@ -13,7 +13,7 @@ class Lab42::Rgxargs::ArgumentMatcher
|
|
13
13
|
case matcher
|
14
14
|
when Regexp
|
15
15
|
match = matcher.match(value)
|
16
|
-
match && [converter.(match.captures), arg_name]
|
16
|
+
match && [converter.(*match.captures), arg_name]
|
17
17
|
else
|
18
18
|
matcher.to_s == value && [converter.(), arg_name]
|
19
19
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Lab42::Rgxargs::PredefinedMatchers extend self
|
2
2
|
PREDEFINED = {
|
3
|
-
int_list: [%r{\A(-?\d+(?:,-?\d+)*)\z}, ->(groups){ groups.first.split(",").map(&:to_i)}],
|
4
|
-
int_range: [%r{\A(-?\d+)(?:-|\.\.)(-?\d+)\z}, ->(
|
5
|
-
list: [%r{(\w+)(?:,(\w+))*}, ->(groups){ groups.compact }],
|
6
|
-
range: [%r{\A(\d+)\.\.(\d+)\z}, ->(groups){ Range.new(*groups.map(&:to_i)) }]
|
3
|
+
int_list: [%r{\A(-?\d+(?:,-?\d+)*)\z}, ->(*groups){ groups.first.split(",").map(&:to_i)}],
|
4
|
+
int_range: [%r{\A(-?\d+)(?:-|\.\.)(-?\d+)\z}, ->(f, l){ Range.new(f.to_i, l.to_i) }],
|
5
|
+
list: [%r{(\w+)(?:,(\w+))*}, ->(*groups){ groups.compact }],
|
6
|
+
range: [%r{\A(\d+)\.\.(\d+)\z}, ->(*groups){ Range.new(*groups.map(&:to_i)) }]
|
7
7
|
}
|
8
8
|
|
9
9
|
def defined_names
|
@@ -22,6 +22,6 @@ module Lab42::Rgxargs::PredefinedMatchers extend self
|
|
22
22
|
|
23
23
|
# Memoized
|
24
24
|
def _list_extractor
|
25
|
-
@__list_extractor__ ||= ->(groups){ groups.first.split(",") }
|
25
|
+
@__list_extractor__ ||= ->(*groups){ groups.first.split(",") }
|
26
26
|
end
|
27
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lab42_rgxargs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Dober
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -62,7 +62,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
62
62
|
requirements:
|
63
63
|
- - ">="
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
65
|
+
version: 2.6.0
|
66
66
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - ">="
|