parametron 0.4.0 → 0.5.0

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: 658e94725bd642f4c1612120ed3a42ade927dc8f
4
- data.tar.gz: f085908b94b530e83a04af25725175384c3d2f59
3
+ metadata.gz: 2ccfe49654c45aa170283c71eb6a065a6be27d54
4
+ data.tar.gz: ba1589c23d9b9b15968d1645cb58d518d01f189c
5
5
  SHA512:
6
- metadata.gz: 291b2da26f3c6dc34611dd90d5410a38b4cc6f6f801b7fabdf5c4ad8b687a2671a57f4113079338a66bdcffd7c4434bc319b059973f63791e5f8f6e20a3acaf0
7
- data.tar.gz: 49a7b0de9b23fb73a2ac9181689d94c255371f7fdadbc93a39e091e99f323a26f9511161ebe9398ab661c6df8fa1f0021a182399aa3882c5820147c2298c0d93
6
+ metadata.gz: 74b3a664939067a78f086e016b423eb16e52123305f818160496052f353a0e49f194cf7945a159983dea0674d026e0ec838caf6b69400eddbdfc887b32b4589a
7
+ data.tar.gz: d8076d8e6baa54273b7edeb1894ee6d928994355e2ba40dd0fffcc5698239d2660c67ab7c45295815fddd0fcd8eb36a780f8e0a53d3988edb3123e9216538595
@@ -1,3 +1,7 @@
1
+ 0.5.0 / 2016-03-01
2
+ ==================
3
+ * Now all `params_for` options params are immutable
4
+
1
5
  0.4.0 / 2015-12-29
2
6
  ==================
3
7
  * Implement `on_exception` handler
@@ -16,22 +16,30 @@ class Parametron::ParamsValidator
16
16
  end
17
17
 
18
18
  def optional(name, opts={})
19
- default = opts.delete(:default)
20
- validator = opts.delete(:validator)
21
- as = opts.delete(:as)
22
- cast = opts.delete(:cast)
23
-
24
- raise Parametron::ErrorMethodParams.new("Not available param: #{opts.inspect}") unless opts.empty?
19
+ default = opts[:default]
20
+ validator = opts[:validator]
21
+ as = opts[:as]
22
+ cast = opts[:cast]
23
+
24
+ diff = opts.keys - [:default, :validator, :as, :cast]
25
+ unless diff.empty?
26
+ wrong_opts = diff.inject({}) {|acc, x| acc[x] = opts[x] }
27
+ fail Parametron::ErrorMethodParams, "Unknown param given: #{wrong_opts}"
28
+ end
25
29
  self.optional_vals << OptionalParameter.new(name.to_s, default, validator, as, cast)
26
30
  end
27
31
 
28
32
  def required(name, opts={})
29
- default = opts.delete(:default)
30
- validator = opts.delete(:validator)
31
- as = opts.delete(:as)
32
- cast = opts.delete(:cast)
33
-
34
- raise Parametron::ErrorMethodParams.new("Not available param: #{opts.inspect}") unless opts.empty?
33
+ default = opts[:default]
34
+ validator = opts[:validator]
35
+ as = opts[:as]
36
+ cast = opts[:cast]
37
+
38
+ diff = opts.keys - [:default, :validator, :as, :cast]
39
+ unless diff.empty?
40
+ wrong_opts = diff.inject({}) {|acc, x| acc[x] = opts[x] }
41
+ fail Parametron::ErrorMethodParams, "Unknown param given: #{wrong_opts}"
42
+ end
35
43
  self.required_vals << RequiredParameter.new(name.to_s, default, validator, as, cast)
36
44
  end
37
45
 
@@ -60,34 +68,34 @@ class Parametron::ParamsValidator
60
68
  params.delete(key) if @reject_unexpected
61
69
  next
62
70
  end
63
- validators.find{|val| val.name == key}.tap do |curr_val|
71
+ validators.find {|val| val.name == key }.tap do |curr_val|
64
72
  unless curr_val.valid?(v)
65
73
  obj.validation_error_cause << [key, v]
66
- raise Parametron::MalformedParams.new(key)
74
+ fail Parametron::MalformedParams, key
67
75
  end
68
76
  end
69
77
  end
70
-
71
78
  end
72
79
 
73
80
  private
81
+
74
82
  def validators
75
83
  self.required_vals + self.optional_vals
76
84
  end
77
85
 
78
86
  def valid_keys
79
- validators.map{|x| x.name.to_s}.sort
87
+ validators.map {|x| x.name.to_s }.sort
80
88
  end
81
89
 
82
90
  def required_keys
83
- self.required_vals.map{|x| x.name.to_s}.sort
91
+ self.required_vals.map {|x| x.name.to_s }.sort
84
92
  end
85
93
 
86
94
  class GenericParameter < Struct.new(:name, :default, :validator, :as, :cast)
87
95
  def initialize(name, default, validator, as, cast)
88
96
  super
89
97
  unless as.nil? || String === as || Symbol === as
90
- raise ArgumentError.new("Parameter :as should be either String or Symbol!")
98
+ fail ArgumentError, 'Parameter :as should be either String or Symbol!'
91
99
  end
92
100
  end
93
101
 
@@ -1,3 +1,3 @@
1
1
  module Parametron
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
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.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yury Batenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-29 00:00:00.000000000 Z
11
+ date: 2016-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler