sinatra-params-validator 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +21 -0
  2. data/VERSION +1 -1
  3. data/lib/rack/validator/sinatra.rb +13 -13
  4. metadata +1 -1
data/README.md CHANGED
@@ -84,6 +84,27 @@ __NOTE__ Every parameter that is used for that particular request needs to be me
84
84
  array. Every parameter that hasn't been mentioned will be delete and won't be available in the sinatra
85
85
  `params` variable when your sinatra code block is invoked.
86
86
 
87
+ ## Error Messages
88
+
89
+ Once an error occurs during validation, all the errors are kept in 3 environmental variables `@env['validator.messages']`,
90
+ `@env['validator.invalid']` and `@env['validator.missing']`. All 3 variables are arrays. Check them out
91
+
92
+ Error Format inside the 'validator.messages' variable looks something like this:
93
+
94
+ ```
95
+ {
96
+ :name => "private", :error => :NOT_BOOLEAN
97
+ }
98
+
99
+ or
100
+
101
+ {
102
+ :name => "age", :error => :NOT_IN_RANGE, :value => [ 0, 120 ]
103
+ }
104
+ ```
105
+
106
+ You can catch these errors and warp them around your own custom responses.
107
+
87
108
  ## Validator class
88
109
 
89
110
  A class with several methods to validate and clean data from sinatra params holder.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -36,7 +36,7 @@ module Rack
36
36
  unless @params.has_key?(k) && !@params[k].empty?
37
37
  @invalid_params.push(k)
38
38
  @missing_params.push(k)
39
- @messages.push("#{k} is required")
39
+ @messages.push(:name => k, :error => :REQUIRED)
40
40
  end
41
41
  }
42
42
  end
@@ -48,7 +48,7 @@ module Rack
48
48
  value = @params[key]
49
49
  unless is_valid_integer(value)
50
50
  @invalid_params.push(key)
51
- @messages.push("#{key} is not an integer")
51
+ @messages.push(:name => key, :error => :NOT_INTEGER)
52
52
  end
53
53
  end
54
54
  end
@@ -59,7 +59,7 @@ module Rack
59
59
  value = @params[key]
60
60
  unless is_valid_float(value)
61
61
  @invalid_params.push(key)
62
- @messages.push("#{key} is not a float")
62
+ @messages.push(:name => key, :error => :NOT_FLOAT)
63
63
  end
64
64
  end
65
65
  end
@@ -70,13 +70,13 @@ module Rack
70
70
  if !is_valid_float(@params[key])
71
71
  if !@params[key] || @params[key].length < min
72
72
  @invalid_params.push(key)
73
- @messages.push("#{key} length is less than #{min}")
73
+ @messages.push(:name => key, :error => :LESS_THAN, :value => min)
74
74
  end
75
75
  else
76
76
  value = is_valid_integer(@params[key]) ? @params[key].to_i : @params[key].to_f
77
77
  if !value || value < min
78
78
  @invalid_params.push(key)
79
- @messages.push("#{key} is less than #{min}")
79
+ @messages.push(:name => key, :error => :LESS_THAN, :value => min)
80
80
  end
81
81
  end
82
82
  end
@@ -88,13 +88,13 @@ module Rack
88
88
  unless is_valid_float(@params[key])
89
89
  if !@params[key] || @params[key].length < min || @params[key].length > max
90
90
  @invalid_params.push(key)
91
- @messages.push("#{key} length is not in range #{min},#{max}")
91
+ @messages.push(:name => key, :error => :NOT_IN_RANGE, :value => [ min, max ])
92
92
  end
93
93
  else
94
94
  value = is_valid_integer(@params[key]) ? @params[key].to_i : @params[key].to_f
95
95
  if !value || value < min || value > max
96
96
  @invalid_params.push(key)
97
- @messages.push("#{key} is not in range #{min},#{max}")
97
+ @messages.push(:name => key, :error => :NOT_IN_RANGE, :value => [ min, max ])
98
98
  end
99
99
  end
100
100
  end
@@ -106,13 +106,13 @@ module Rack
106
106
  unless is_valid_float(@params[key])
107
107
  if !@params[key] || @params[key].length > max
108
108
  @invalid_params.push(key)
109
- @messages.push("#{key} length is greater than #{max}")
109
+ @messages.push(:name => key, :error => :GREATER_THAN, :value => max)
110
110
  end
111
111
  else
112
112
  value = is_valid_integer(@params[key]) ? @params[key].to_i : @params[key].to_f
113
113
  if !value || value > max
114
114
  @invalid_params.push(key)
115
- @messages.push("#{key} is greater than #{max}")
115
+ @messages.push(:name => key, :error => :GREATER_THAN, :value => max)
116
116
  end
117
117
  end
118
118
  end
@@ -123,7 +123,7 @@ module Rack
123
123
  key = key.to_s
124
124
  unless @params[key].to_s[/^\S+@\S+\.\S+$/]
125
125
  @invalid_params.push(key)
126
- @messages.push("#{key} is not a valid email")
126
+ @messages.push(:name => key, :error => :NOT_VALID_EMAIL)
127
127
  end
128
128
  end
129
129
  end
@@ -133,7 +133,7 @@ module Rack
133
133
  key = key.to_s
134
134
  unless array.include? @params[key]
135
135
  @invalid_params.push(key)
136
- @messages.push("#{key} does not match #{array}")
136
+ @messages.push(:name => key, :error => :NOT_IN_SET, :value => array)
137
137
  end
138
138
  end
139
139
  end
@@ -143,7 +143,7 @@ module Rack
143
143
  key = key.to_s
144
144
  unless @params[key] == 'true' || @params[key] == 'false'
145
145
  @invalid_params.push(key)
146
- @messages.push("#{key} is not a boolean")
146
+ @messages.push(:name => key, :error => :NOT_BOOLEAN)
147
147
  end
148
148
  end
149
149
  end
@@ -153,7 +153,7 @@ module Rack
153
153
  key = key.to_s
154
154
  unless @params[key] =~ regexp
155
155
  @invalid_params.push(key)
156
- @messages.push("#{key} is not a valid expression")
156
+ @messages.push(:name => key, :error => :NOT_MATCHED, :value => regexp)
157
157
  end
158
158
  end
159
159
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-params-validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: