module Sinatra::Params
Public Instance Methods
param(name, type, opts = {})
click to toggle source
# File lib/sinatra/params.rb, line 12 def param(name, type, opts = {}) params.define_singleton_method(name) { self[name] } raise ParameterNotPresentException.new(name) unless opts[:optional?] or not params[name].nil? source_type = params[name].class params[name] = params[name].send(source_type.convert_to(type)) raise ParameterOutOfRangeException.new(name, :min) unless opts[:min].nil? or params[name] >= opts[:min] raise ParameterOutOfRangeException.new(name, :max) unless opts[:max].nil? or params[name] <= opts[:max] raise ParameterOutOfRangeException.new(name, :in) unless opts[:in].nil? or opts[:in].include? params[name] end