Sha256: b3d16520a8e56f17755c527a6d51a00dd9c9615e2eb5460c0d7974efb5cc431c
Contents?: true
Size: 1.59 KB
Versions: 9
Compression:
Stored size: 1.59 KB
Contents
require 'sinatra/base' module Sinatra # = Sinatra::RequiredParams # # Ensure required query parameters # # == Usage # # Set required query parameter keys in the argument. # It'll halt with 400 if requried keys don't exist. # # get '/simple_keys' do # required_params :p1, :p2 # end # # Complicated pattern is also fine. # # get '/complicated_keys' do # required_params :p1, :p2 => [:p3, :p4] # end # # === Classic Application # # In a classic application simply require the helpers, and start using them: # # require "sinatra" # require "sinatra/required_params" # # # The rest of your classic application code goes here... # # === Modular Application # # In a modular application you need to require the helpers, and then tell # the application to use them: # # require "sinatra/base" # require "sinatra/required_params" # # class MyApp < Sinatra::Base # helpers Sinatra::RequiredParams # # # The rest of your modular application code goes here... # end # module RequiredParams def required_params(*keys) _required_params(params, *keys) end private def _required_params(p, *keys) keys.each do |key| if key.is_a?(Hash) _required_params(p, *key.keys) key.each do |k, v| _required_params(p[k.to_s], v) end elsif key.is_a?(Array) _required_params(p, *key) else halt 400 unless p.has_key?(key.to_s) end end true end end helpers RequiredParams end
Version data entries
9 entries across 9 versions & 1 rubygems