module Parametron
Constants
- ErrorMethodParams
- ExcessParameter
- MalformedParams
- RequiredParamError
- VERSION
Public Class Methods
included(base)
click to toggle source
# File lib/parametron.rb, line 5 def self.included(base) base.extend(ClassMethods) base.send(:attr_accessor, :validation_error_cause) end
Private Instance Methods
_cast!(params)
click to toggle source
# File lib/parametron.rb, line 47 def _cast!(params) new_par = params.dup _validators_list.each do |v| next unless v.cast key = v.name.to_sym val = new_par[key] next if val.nil? and not v.required? new_par[key] = case when v.cast.to_s == "Integer" then Integer(val) when v.cast.to_s == "Float" then Float(val) when Proc === v.cast case v.cast.arity when 0 then v.cast.call() when 1 then v.cast.call(val) when 2 then v.cast.call(val, new_par) else v.cast.call(val, new_par, params) end else raise MalformedParams.new("Unknown cast type: '#{v.cast.inspect}'") end end new_par end
_params_validator()
click to toggle source
# File lib/parametron.rb, line 107 def _params_validator self.class.params_validator end
_rename_params!(params)
click to toggle source
# File lib/parametron.rb, line 72 def _rename_params!(params) new_par = params.dup _validators_list.each do |v| next unless v.as new_par[v.as] = new_par.delete(v.name.to_sym) || new_par.delete(v.name.to_str) end new_par end
_set_defaults!(params)
click to toggle source
# File lib/parametron.rb, line 81 def _set_defaults!(params) new_par = params.dup _validators_list.each do |v| if new_par[v.name].nil? && new_par[v.name.to_sym].nil? case v.default when nil then next when Proc case v.default.arity when 0 then new_par[v.name.to_sym] = v.default.call() when 1 then new_par[v.name.to_sym] = v.default.call(self) else raise ArgumentError.new "Too much arguments for #{v.name} default lambda" end else new_par[v.name.to_sym] = v.default end end end new_par end
_validate!(params)
click to toggle source
# File lib/parametron.rb, line 102 def _validate!(params) _params_validator.validate!(self, params) params end
_validators_list()
click to toggle source
# File lib/parametron.rb, line 111 def _validators_list _params_validator.required_vals + _params_validator.optional_vals end