Module: Parametron::ClassMethods

Defined in:
lib/parametron.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#params_validatorObject (readonly)

Returns the value of attribute params_validator.



11
12
13
# File 'lib/parametron.rb', line 11

def params_validator
  @params_validator
end

Instance Method Details

#method_added(name) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# 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={}|
    new_params = _rename_params!(_cast!(_validate!(_set_defaults!(params))))
    original.bind(self).call(new_params)
  end
end

#params_for(method_name, opts = {}, &block) ⇒ Object

Declare known parameter keys opts [Hash]

:strict => false ; Raise exception on unknown key
:reject => true  ; Reject unknown keys


16
17
18
19
20
21
22
# 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