Module: Snails::RequiredParams

Defined in:
lib/snails.rb

Instance Method Summary collapse

Instance Method Details

#requires!(req, hash = params) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/snails.rb', line 28

def requires!(req, hash = params)
  if req.is_a?(Hash)
    req.each do |k, vals|
      if vals.is_a?(Array) or vals.is_a?(Hash)
        halt(400, "Missing: #{k} in #{hash}") if hash[k].nil?
        requires!(vals, hash[k])
      else
        requires!(k, hash)
      end
    end
  elsif req.nil? or (req.is_a?(Symbol) and hash[req].nil?) \
    or (req.is_a?(Array) and req.any? { |p| hash[p].nil? })
      halt(400, "Required parameters: #{req} (in #{hash})")
  end
end