parametron 0.2.0 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/parametron.rb +8 -2
- data/lib/parametron/params_validator.rb +2 -2
- data/lib/parametron/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c2c555f4c77e6938803fc5b9831d8bd311084d2
|
4
|
+
data.tar.gz: 5889c94d61d3e643d14c39b26a2183641c69e0ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9d9b8ab542d19b2a39a9d8e67864c2bce0c863e4ee6205885f3c0ee7fb51209826ac1686d9743cb09f25513d120e2f97e9b3ff6b7f93e532cafd79f7b8b8263
|
7
|
+
data.tar.gz: ba6a86a480b8f002965c9693513b2b5918d215774b46ff49c206209d1c960bc0555196d5d0f6c599d84d6524e5801e30c5032afc23495855a40b0c90c0b6345e
|
data/lib/parametron.rb
CHANGED
@@ -26,7 +26,7 @@ module Parametron
|
|
26
26
|
instance_variable_set(:"@_METHOD_#{name}_WRAPPED", true)
|
27
27
|
original = instance_method(name.to_sym)
|
28
28
|
remove_method(name.to_sym)
|
29
|
-
define_method(name) do |params|
|
29
|
+
define_method(name) do |params={}|
|
30
30
|
new_params = _rename_params!(_validate!(_set_defaults!(params)))
|
31
31
|
original.bind(self).call(new_params)
|
32
32
|
end
|
@@ -49,7 +49,13 @@ module Parametron
|
|
49
49
|
if new_par[v.name].nil? && new_par[v.name.to_sym].nil?
|
50
50
|
case v.default
|
51
51
|
when nil then next
|
52
|
-
when Proc
|
52
|
+
when Proc
|
53
|
+
case v.default.arity
|
54
|
+
when 0 then new_par[v.name.to_sym] = v.default.call()
|
55
|
+
when 1 then new_par[v.name.to_sym] = v.default.call(self)
|
56
|
+
else
|
57
|
+
raise ArgumentError.new "Too much arguments for #{v.name} default lambda"
|
58
|
+
end
|
53
59
|
else
|
54
60
|
new_par[v.name.to_sym] = v.default
|
55
61
|
end
|
@@ -69,7 +69,7 @@ class Parametron::ParamsValidator
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def required_keys
|
72
|
-
self.required_vals.map{|x| x.name.to_s}
|
72
|
+
self.required_vals.map{|x| x.name.to_s}.sort
|
73
73
|
end
|
74
74
|
|
75
75
|
class GenericParameter < Struct.new(:name, :default, :validator, :as)
|
@@ -83,7 +83,7 @@ class Parametron::ParamsValidator
|
|
83
83
|
def valid?(value)
|
84
84
|
case self.validator
|
85
85
|
when Regexp then value && !!self.validator.match(value.to_s)
|
86
|
-
when Proc then value && !!self.validator(value)
|
86
|
+
when Proc then value && !!self.validator.call(value)
|
87
87
|
else
|
88
88
|
true
|
89
89
|
end
|
data/lib/parametron/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parametron
|
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
|
- Yury Batenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
92
|
version: '0'
|
93
93
|
requirements: []
|
94
94
|
rubyforge_project:
|
95
|
-
rubygems_version: 2.0
|
95
|
+
rubygems_version: 2.1.0
|
96
96
|
signing_key:
|
97
97
|
specification_version: 4
|
98
98
|
summary: DSL for method arguments validation
|