parametron 0.2.0 → 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/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
|