module Rack::Validator::Sinatra::Helpers
Public Instance Methods
missing_params!()
click to toggle source
# File lib/rack/validator/sinatra.rb, line 272 def missing_params! @response.status = 400 end
same_method?(method)
click to toggle source
# File lib/rack/validator/sinatra.rb, line 192 def same_method?(method) @env['REQUEST_METHOD'] == method.to_s end
validate_parameters(options)
click to toggle source
TODO: Needs a general cleanup!!!
# File lib/rack/validator/sinatra.rb, line 197 def validate_parameters(options) validator = Rack::Validator.new params, false all_params = [ ] required_params = [ ] integer_params = [ ] float_params = [ ] email_params = [ ] range_params = [ ] set_params = [ ] boolean_params = [ ] matches_params = [ ] default_params = [ ] action_params = [ ] options[:params].each do |param| all_params << (param[:name].to_s) required_params << (param[:name]) if param[:required] integer_params << (param) if param[:type] == :integer float_params << (param) if param[:type] == :float email_params << (param) if param[:type] == :email range_params << (param) if param[:range] set_params << (param) if param[:set] boolean_params << (param) if param[:type] == :boolean matches_params << (param) if param[:matches] default_params << (param) if param[:default] action_params << (param) if param[:action] end validator.clean_parameters all_params validator.required required_params integer_params.each do |param| validator.is_integer param[:name] unless params[param[:name].to_s].nil? end float_params.each do |param| validator.is_float param[:name] unless params[param[:name].to_s].nil? end email_params.each do |param| validator.is_email param[:name] unless params[param[:name].to_s].nil? end range_params.each do |param| validator.is_in_range param[:range].first, param[:range].last, param[:name] unless params[param[:name].to_s].nil? end set_params.each do |param| validator.is_set param[:set], param[:name] unless params[param[:name].to_s].nil? end boolean_params.each do |param| validator.is_boolean param[:name] unless params[param[:name].to_s].nil? end matches_params.each do |param| validator.matches param[:matches], param[:name] unless params[param[:name].to_s].nil? end default_params.each do |param| if params[param[:name].to_s].nil? params[param[:name].to_s] = param[:default] validator.invalid_params.delete param[:name] validator.missing_params.delete param[:name] end end action_params.each do |param| validator.downcase param[:name] if param[:action].include? :downcase validator.trim param[:name] if param[:action].include? :trim end if validator.has_errors? @env['validator.missing'] = validator.missing_params @env['validator.invalid'] = validator.invalid_params @env['validator.messages'] = validator.messages halt missing_params! end end