sinatra-params-validator 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +8 -1
- data/VERSION +1 -1
- data/lib/rack/validator/sinatra.rb +17 -1
- metadata +1 -1
data/README.md
CHANGED
@@ -18,7 +18,12 @@ with some middleware.
|
|
18
18
|
|
19
19
|
### Examples
|
20
20
|
|
21
|
+
```
|
22
|
+
$ gem install sinatra-params-validator
|
23
|
+
```
|
24
|
+
|
21
25
|
```ruby
|
26
|
+
require 'rack/validator/sinatra'
|
22
27
|
require 'sinatra'
|
23
28
|
|
24
29
|
class App < Sinatra::Base
|
@@ -60,7 +65,8 @@ class App < Sinatra::Base
|
|
60
65
|
end
|
61
66
|
|
62
67
|
validation_required :POST, '/group', :params => [
|
63
|
-
{ :name => :name, :required => true }
|
68
|
+
{ :name => :name, :required => true },
|
69
|
+
{ :name => :private, :type => :boolean, :required => true }
|
64
70
|
]
|
65
71
|
|
66
72
|
post '/group' do
|
@@ -111,6 +117,7 @@ Available methods:
|
|
111
117
|
* is_in_range
|
112
118
|
* is_less_equal_than
|
113
119
|
* is_email
|
120
|
+
* is_boolean
|
114
121
|
* matches
|
115
122
|
|
116
123
|
To see more examples check tests/params_validator_spec.rb
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
@@ -32,7 +32,7 @@ module Rack
|
|
32
32
|
if lazy_check_disabled
|
33
33
|
keys.each { |k|
|
34
34
|
k = k.to_s
|
35
|
-
unless @params.has_key?(k)
|
35
|
+
unless @params.has_key?(k) && !@params[k].empty?
|
36
36
|
@invalid_params.push(k)
|
37
37
|
@missing_params.push(k)
|
38
38
|
@messages.push("#{k} is required")
|
@@ -127,6 +127,16 @@ module Rack
|
|
127
127
|
end
|
128
128
|
end
|
129
129
|
|
130
|
+
def is_boolean(key)
|
131
|
+
if lazy_check_disabled
|
132
|
+
key = key.to_s
|
133
|
+
unless @params[key] == 'true' || @params[key] == 'false'
|
134
|
+
@invalid_params.push(key)
|
135
|
+
@messages.push("#{key} is not a boolean")
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
130
140
|
def matches(regexp, key)
|
131
141
|
if lazy_check_disabled
|
132
142
|
key = key.to_s
|
@@ -174,6 +184,7 @@ module Rack
|
|
174
184
|
float_params = [ ]
|
175
185
|
email_params = [ ]
|
176
186
|
range_params = [ ]
|
187
|
+
boolean_params = [ ]
|
177
188
|
matches_params = [ ]
|
178
189
|
default_params = [ ]
|
179
190
|
|
@@ -183,11 +194,13 @@ module Rack
|
|
183
194
|
float_params << (param) if param[:type] == :float
|
184
195
|
email_params << (param) if param[:type] == :email
|
185
196
|
range_params << (param) if param[:range]
|
197
|
+
boolean_params << (param) if param[:type] == :boolean
|
186
198
|
matches_params << (param) if param[:matches]
|
187
199
|
default_params << (param) if param[:default]
|
188
200
|
end
|
189
201
|
|
190
202
|
validator.required required_params
|
203
|
+
|
191
204
|
integer_params.each do |param|
|
192
205
|
validator.is_integer param[:name] unless params[param[:name].to_s].nil?
|
193
206
|
end
|
@@ -200,6 +213,9 @@ module Rack
|
|
200
213
|
range_params.each do |param|
|
201
214
|
validator.is_in_range param[:range].first, param[:range].last, param[:name] unless params[param[:name].to_s].nil?
|
202
215
|
end
|
216
|
+
boolean_params.each do |param|
|
217
|
+
validator.is_boolean param[:name] unless params[param[:name].to_s].nil?
|
218
|
+
end
|
203
219
|
matches_params.each do |param|
|
204
220
|
validator.matches param[:matches], param[:name] unless params[param[:name].to_s].nil?
|
205
221
|
end
|