parametron 0.4.0 → 0.5.0

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 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