123456789_123456789_123456789_123456789_123456789_

Module: Sinatra::RequiredParams

Relationships & Source Files
Defined in: sinatra-contrib/lib/sinatra/required_params.rb

Overview

Ensure required query parameters

Usage

Set required query parameter keys in the argument. It'll halt with 400 if required 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

Instance Method Summary

Instance Method Details

#_required_params(p, *keys) (private)

[ GitHub ]

  
# File 'sinatra-contrib/lib/sinatra/required_params.rb', line 55

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.respond_to?(:key?) && p&.key?(key.to_s)
    end
  end
  true
end

#required_params(*keys)

[ GitHub ]

  
# File 'sinatra-contrib/lib/sinatra/required_params.rb', line 49

def required_params(*keys)
  _required_params(params, *keys)
end