Module: ParamsValidator::ValidParams::ClassMethods
- Defined in:
- lib/params_validator/valid_params.rb
Overview
inner module to define class methods
Instance Method Summary collapse
-
#get_rule(method) ⇒ Object
get the specified rule for a method.
-
#load_rules(rules) ⇒ Object
shortcut to validator.load_rules.
-
#validate_method(method = nil, &block) ⇒ Object
This method is used in classes to define which methods should be validated when called.
-
#validator ⇒ Object
validator object.
Instance Method Details
#get_rule(method) ⇒ Object
get the specified rule for a method
105 106 107 108 109 110 111 112 113 |
# File 'lib/params_validator/valid_params.rb', line 105 def get_rule(method) object_name = self.name key = "#{object_name}::#{method}" method_validation = validator.methods_loaded[key.to_sym] unless method_validation.nil? return method_validation.parameters end nil end |
#load_rules(rules) ⇒ Object
shortcut to validator.load_rules
121 122 123 |
# File 'lib/params_validator/valid_params.rb', line 121 def load_rules(rules) validator.load_rules(rules) end |
#validate_method(method = nil, &block) ⇒ Object
This method is used in classes to define which methods should be validated when called. i.e. validate_method :method1
validate_method [:method1, :method2]
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/params_validator/valid_params.rb', line 68 def validate_method(method=nil, &block) # get the fully qualified method name interface = self.name # cast to array if method is one symbol method.instance_of?(Symbol) and method = [method] # wrap each method method.each{|m| interface_method = [interface, m].join("::") if validator.has_method_rule?(interface_method) # already has a validation => delete it old_method = "#{m}_old" self.send :alias_method, *[m, old_method] remove_method("#{m}_old".to_sym) end # add validation rule to the specific method if a block is defined if block_given? validator.validation_rule(interface_method, &block) end # wrap old method with the previous validation old_method = "#{m}_old" self.send :alias_method, *[old_method, m] define_method(m) do |*args, &block| # validate parameters previous_validation(args, interface_method) # call method send(old_method, *args, &block) end } end |