module SimpleValidate::ClassMethods

Public Instance Methods

add_validations(args, klass) click to toggle source
# File lib/simple_validate.rb, line 57
def add_validations(args, klass)
  options = Utils.extract_options! args
  args.each do |attr|
    validations << klass.new(attr, options)
  end
end
method_missing(method, *args, &block) click to toggle source
Calls superclass method
# File lib/simple_validate.rb, line 38
def method_missing(method, *args, &block)
  if respond_to?(method)
    add_validations(args, const_get(Utils.camelize(method)))
  else
    super
  end
end
respond_to_missing?(method, include_private = false) click to toggle source
Calls superclass method
# File lib/simple_validate.rb, line 46
def respond_to_missing?(method, include_private = false)
  method.to_s =~ /(validates_
                   (format|
                    presence|
                    type|
                    inclusion|
                    exclusion|
                    length)_of)
  /x || super
end
validate(instance) click to toggle source
# File lib/simple_validate.rb, line 68
def validate(instance)
  instance.errors.clear!

  validations.each do |validation|
    if validation.condition.call && !validation.valid?(instance)
      instance.errors.add(validation.attribute, validation.message)
    end
  end
  instance.errors.empty?
end
validations() click to toggle source
# File lib/simple_validate.rb, line 64
def validations
  @validations ||= []
end