class Validation::Validator

Attributes

errors[R]
rules[R]

Public Class Methods

new() click to toggle source
# File lib/validation/validator.rb, line 10
def initialize
  @rules = {}
  @errors = {}
end

Public Instance Methods

add_rule(field, rule, message) click to toggle source
# File lib/validation/validator.rb, line 15
def add_rule(field, rule, message)
  @rules[field] ||= []
  @rules[field].push({'rule' => rule, 'message' => message})
end
reset_errors() click to toggle source
# File lib/validation/validator.rb, line 39
def reset_errors
  @errors = {}
end
valid?() click to toggle source
# File lib/validation/validator.rb, line 35
def valid?
  @errors.empty?
end
validate(params) click to toggle source
# File lib/validation/validator.rb, line 20
def validate(params)
  reset_errors
  @rules.each do |field, rules|
    rules.each do |rule|
      method, *args = rule['rule'].split(',').map(&:strip)
      args = [params, field] + args
      unless send("validates_#{method}", *args)
        @errors[field] ||= []
        @errors[field].push(rule['message'])
      end
    end
  end
  valid?
end