module Sinatra::Validations
Constants
- InvalidParameter
Public Instance Methods
validate(parameters, key, options = {})
click to toggle source
# File lib/sinatra/validations.rb, line 9 def validate(parameters, key, options = {}) default = options[:default] type = options[:type] cast = true if options.key?(:cast) cast = options[:cast] end param = parameters[key] if !param if options.key?(:default) return param = parameters[key] = default end raise InvalidParameter.new("Missing required parameter #{key}") end if cast if type == Integer param = parameters[key] = cast_into_integer(param, key) elsif type == String param = parameters[key] = cast_into_string(param, key) else raise InvalidParameter.new("Unsupported casting for #{key}") end end if type && !param.is_a?(type) raise InvalidParameter.new("Wrong type for #{key}. Expected #{type}, got #{param.class}") end end
Private Instance Methods
cast_into_integer(param, key)
click to toggle source
# File lib/sinatra/validations.rb, line 45 def cast_into_integer(param, key) begin Integer(param) rescue raise InvalidParameter.new("Unable to convert #{key} into Integer") end end
cast_into_string(param, key)
click to toggle source
# File lib/sinatra/validations.rb, line 53 def cast_into_string(param, key) begin String(param) rescue raise InvalidParameter.new("Unable to convert #{key} into String") end end