module Parametron::ClassMethods
Attributes
params_validator[R]
Public Instance Methods
method_added(name)
click to toggle source
# File lib/parametron.rb, line 24 def method_added(name) return if name != @_method_name or instance_variable_get(:"@_METHOD_#{name}_WRAPPED") instance_variable_set(:"@_METHOD_#{name}_WRAPPED", true) original = instance_method(name.to_sym) remove_method(name.to_sym) define_method(name) do |params={}| begin new_params = _rename_params!(_cast!(_validate!(_set_defaults!(params)))) rescue => e if self.class.params_validator.on_exception_handler return self.class.params_validator.on_exception_handler.call(e) else raise e end end original.bind(self).call(new_params) end end
params_for(method_name, opts={}, &block)
click to toggle source
Declare known parameter keys opts [Hash]
:strict => false ; Raise exception on unknown key :reject => true ; Reject unknown keys
# File lib/parametron.rb, line 16 def params_for(method_name, opts={}, &block) instance_eval do @_method_name = method_name.to_sym @params_validator = Parametron::ParamsValidator.new(opts) @params_validator.instance_eval(&block) end end