Module: Validatable::ClassMethods

Defined in:
lib/validatable/validatable_class_methods.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#add_error(instance, attribute, msg) ⇒ Object



49
50
51
# File 'lib/validatable/validatable_class_methods.rb', line 49

def add_error(instance, attribute, msg)
  instance.errors.add(attribute, msg)
end

#all_before_validationsObject



27
28
29
30
31
32
# File 'lib/validatable/validatable_class_methods.rb', line 27

def all_before_validations
  if self.superclass.respond_to? :all_before_validations
    return before_validations + self.superclass.all_before_validations 
  end
  before_validations
end

#all_validationsObject



38
39
40
41
42
43
# File 'lib/validatable/validatable_class_methods.rb', line 38

def all_validations
  if self.respond_to?(:superclass) && self.superclass.respond_to?(:all_validations)
    return validations + self.superclass.all_validations 
  end
  validations
end

#before_validationsObject



34
35
36
# File 'lib/validatable/validatable_class_methods.rb', line 34

def before_validations
  @before_validations ||= []
end

#validate_children(instance, group) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/validatable/validatable_class_methods.rb', line 4

def validate_children(instance, group)
  self.children_to_validate.each do |child_validation|
    next unless child_validation.should_validate?(instance)
    child_or_children = instance.send child_validation.attribute
    [child_or_children].flatten.each do |child|
      if (child.respond_to?(:valid_for_group?))
        child.valid_for_group?(group)
      else
        child.valid?
      end
      child.errors.each do |attribute, messages|
        if messages.is_a?(String)
          add_error(instance, child_validation.map[attribute.to_sym] || attribute, messages)
        else
          messages.each do |message|
            add_error(instance, child_validation.map[attribute.to_sym] || attribute, message)
          end
        end
      end
    end
  end
end

#validation_keys_include?(key) ⇒ Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/validatable/validatable_class_methods.rb', line 53

def validation_keys_include?(key)
  validations.map { |validation| validation.key }.include?(key)
end

#validationsObject



45
46
47
# File 'lib/validatable/validatable_class_methods.rb', line 45

def validations
  @validations ||= []
end

#validations_to_includeObject



57
58
59
# File 'lib/validatable/validatable_class_methods.rb', line 57

def validations_to_include
  @validations_to_include ||= []
end