Module: Parametron::ClassMethods
- Defined in:
- lib/parametron.rb
Instance Attribute Summary collapse
-
#params_validator ⇒ Object
readonly
Returns the value of attribute params_validator.
Instance Method Summary collapse
- #method_added(name) ⇒ Object
-
#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.
Instance Attribute Details
#params_validator ⇒ Object (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 |