lab42_rgxargs 0.1.6 → 0.1.11
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 +20 -3
- data/lib/lab42/rgxargs/version.rb +5 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca14ba075655f11152e54ca1f077ccf458ae6b7ef833c623e6ed3d0f965f85ff
|
4
|
+
data.tar.gz: 39a9961deed3864e5a9c08e2222de1e0aba559a5266cbcf4975667d9057700be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2db1a82994ad767dd2448cbab0a5d42020187870918eff982ddd8a66066976e36a1ecd650ae3eae4c1f18c5c403b170240364c00d8732f7db631b92e9efb785e
|
7
|
+
data.tar.gz: 4d06c452ea7638e194ea9e50e704675748e08dbfb5ec96df9a3227cdc377f9151aeee542c345701fab6028458ec9d25c2a93b1cd5b30c188904640203222df89
|
data/lib/lab42/rgxargs.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'forwardable'
|
2
2
|
require 'ostruct'
|
3
3
|
require 'lab42/enumerable'
|
4
|
+
require 'set'
|
4
5
|
module Lab42
|
5
6
|
|
6
7
|
class Rgxargs
|
@@ -20,10 +21,12 @@ module Lab42
|
|
20
21
|
attr_reader :allowed, :args, :conversions, :defaults, :defined_rules, :errors, :options, :required, :syntaxes
|
21
22
|
|
22
23
|
|
23
|
-
def add_conversion(param, conversion, required=nil, &block)
|
24
|
+
def add_conversion(param, conversion=nil, required=nil, &block)
|
24
25
|
case conversion
|
25
26
|
when Symbol
|
26
27
|
_add_symbolic_conversion(param, conversion, required)
|
28
|
+
when NilClass
|
29
|
+
_add_simple_conversion(param, block)
|
27
30
|
else
|
28
31
|
_add_proc_conversion(param, conversion, block, required)
|
29
32
|
end
|
@@ -53,6 +56,14 @@ module Lab42
|
|
53
56
|
end
|
54
57
|
|
55
58
|
|
59
|
+
def allows name, matcher=nil, &converter
|
60
|
+
add_conversion(name, matcher, &converter)
|
61
|
+
end
|
62
|
+
|
63
|
+
def needs name, matcher=nil, &converter
|
64
|
+
add_conversion(name, matcher, :required, &converter)
|
65
|
+
end
|
66
|
+
|
56
67
|
private
|
57
68
|
|
58
69
|
def initialize &blk
|
@@ -62,11 +73,11 @@ module Lab42
|
|
62
73
|
@defaults = {}
|
63
74
|
@defined_rules = []
|
64
75
|
@errors = []
|
65
|
-
@required = Set.new
|
76
|
+
@required = ::Set.new
|
66
77
|
@syntaxes = []
|
67
78
|
|
68
79
|
instance_exec(&blk) if blk
|
69
|
-
@options = OpenStruct.new(defaults)
|
80
|
+
@options = ::OpenStruct.new(defaults)
|
70
81
|
end
|
71
82
|
|
72
83
|
def _convert(value, name:)
|
@@ -95,6 +106,12 @@ module Lab42
|
|
95
106
|
end
|
96
107
|
end
|
97
108
|
|
109
|
+
def _add_simple_conversion(param, block)
|
110
|
+
Array(param).each do |para|
|
111
|
+
conversions[para] = block
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
98
115
|
def _add_symbolic_conversion(param, conversion, required)
|
99
116
|
Array(param).each do |para|
|
100
117
|
@required.add para if required == :required
|
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.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Dober
|
@@ -81,6 +81,7 @@ files:
|
|
81
81
|
- lib/lab42/rgxargs/predefined_matchers.rb
|
82
82
|
- lib/lab42/rgxargs/syntax.rb
|
83
83
|
- lib/lab42/rgxargs/syntax_definer.rb
|
84
|
+
- lib/lab42/rgxargs/version.rb
|
84
85
|
homepage: https://github.com/robertdober/lab42_rgxargs
|
85
86
|
licenses:
|
86
87
|
- Apache-2.0
|