Module: SimpleValidate::ClassMethods

Defined in:
lib/simple_validate.rb

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/simple_validate.rb', line 28

def method_missing(method, *args, &block)
  if respond_to_missing?(method)
    add_validations(args, const_get("#{method}".classify))
  else
    super
  end
end

Instance Method Details

#add_validations(args, klass) ⇒ Object



45
46
47
48
49
50
# File 'lib/simple_validate.rb', line 45

def add_validations(args, klass)
  options = args.extract_options!
  args.each do |attr|
    validations << klass.new(attr, options)
  end
end

#respond_to_missing?(method, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
39
40
41
42
43
# File 'lib/simple_validate.rb', line 36

def respond_to_missing?(method, include_private = false)
  "#{method}" =~ /(validates_
                   (format|
                    presence|
                    numericality|
                    length)_of)
  /x || super
end

#validate(instance) ⇒ Object



56
57
58
59
60
61
62
63
# File 'lib/simple_validate.rb', line 56

def validate(instance)
  validations.each do |validation|
    unless validation.valid?(instance)
      instance.errors.add(validation.attribute, validation.message)
    end
  end
  instance.errors.empty?
end

#validationsObject



52
53
54
# File 'lib/simple_validate.rb', line 52

def validations
  @validations ||= []
end