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 +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/parametron/params_validator.rb +26 -18
- data/lib/parametron/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ccfe49654c45aa170283c71eb6a065a6be27d54
|
4
|
+
data.tar.gz: ba1589c23d9b9b15968d1645cb58d518d01f189c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74b3a664939067a78f086e016b423eb16e52123305f818160496052f353a0e49f194cf7945a159983dea0674d026e0ec838caf6b69400eddbdfc887b32b4589a
|
7
|
+
data.tar.gz: d8076d8e6baa54273b7edeb1894ee6d928994355e2ba40dd0fffcc5698239d2660c67ab7c45295815fddd0fcd8eb36a780f8e0a53d3988edb3123e9216538595
|
data/CHANGELOG.md
CHANGED
@@ -16,22 +16,30 @@ class Parametron::ParamsValidator
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def optional(name, opts={})
|
19
|
-
default = opts
|
20
|
-
validator = opts
|
21
|
-
as = opts
|
22
|
-
cast = opts
|
23
|
-
|
24
|
-
|
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
|
30
|
-
validator = opts
|
31
|
-
as = opts
|
32
|
-
cast = opts
|
33
|
-
|
34
|
-
|
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
|
-
|
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
|
-
|
98
|
+
fail ArgumentError, 'Parameter :as should be either String or Symbol!'
|
91
99
|
end
|
92
100
|
end
|
93
101
|
|
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.
|
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:
|
11
|
+
date: 2016-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|