Module: RailsParam::Param

Defined in:
lib/rails_param/param.rb

Defined Under Namespace

Classes: InvalidParameterError

Instance Method Summary collapse

Instance Method Details

#param!(name, type, options = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/rails_param/param.rb', line 8

def param!(name, type, options = {})
  name = name.to_s

  return unless params.member?(name) || options[:default].present? || options[:required]

  begin
    params[name] = coerce(params[name], type, options)
    params[name] = (options[:default].call if options[:default].respond_to?(:call)) || options[:default] if params[name].nil? and options[:default]
    params[name] = options[:transform].to_proc.call(params[name]) if params[name] and options[:transform]
    validate!(params[name], options)
  rescue InvalidParameterError => exception
    exception.param, exception.options = name, options
    raise exception
  end
end