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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 76fe6f2be9dd10050ee5f0749f341d7fd839f5bc
4
- data.tar.gz: a5594be4a8b3226ba320c8ade4a84e672a92dc97
3
+ metadata.gz: 4c2c555f4c77e6938803fc5b9831d8bd311084d2
4
+ data.tar.gz: 5889c94d61d3e643d14c39b26a2183641c69e0ed
5
5
  SHA512:
6
- metadata.gz: ed8ad2f475604a05ee620885ca083463825fd26a0449f049e70146a14458764109bef90bf0f766fa9664e39b38c6c766755a35718f9194ba92ab7ad31e9d1024
7
- data.tar.gz: 5f86ba4facefae42b5b95c5ee2e9039c794985c3df951ad7ecb0789a43015a6e23a0a7da7ec1eaf063bd429962b1e98f66b9123c8d739bcc2b14b709ab812a0d
6
+ metadata.gz: c9d9b8ab542d19b2a39a9d8e67864c2bce0c863e4ee6205885f3c0ee7fb51209826ac1686d9743cb09f25513d120e2f97e9b3ff6b7f93e532cafd79f7b8b8263
7
+ data.tar.gz: ba6a86a480b8f002965c9693513b2b5918d215774b46ff49c206209d1c960bc0555196d5d0f6c599d84d6524e5801e30c5032afc23495855a40b0c90c0b6345e
@@ -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 then new_par[v.name.to_sym] = v.default.call(self)
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).call
86
+ when Proc then value && !!self.validator.call(value)
87
87
  else
88
88
  true
89
89
  end
@@ -1,3 +1,3 @@
1
1
  module Parametron
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.2"
3
3
  end
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.0
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-05-30 00:00:00.000000000 Z
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.3
95
+ rubygems_version: 2.1.0
96
96
  signing_key:
97
97
  specification_version: 4
98
98
  summary: DSL for method arguments validation