Module: Formidable::Validations

Included in:
Elements::Element, Elements::Select
Defined in:
lib/formidable/validations.rb,
lib/formidable/validations/class.rb,
lib/formidable/validations/format.rb,
lib/formidable/validations/length.rb,
lib/formidable/validations/equality.rb,
lib/formidable/validations/presence.rb,
lib/formidable/validations/confirmation.rb

Defined Under Namespace

Classes: ValidateClass, ValidateConfirmation, ValidateEquality, ValidateFormat, ValidateLength, ValidatePresence, Validation

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.register_validation(klass, method_name) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/formidable/validations.rb', line 21

def self.register_validation(klass, method_name)
  define_method(method_name) do |*args, &block|
    validation = klass.new(self, *args, &block)
    validations << validation
    self
  end
end

Instance Method Details

#errorsObject



29
30
31
# File 'lib/formidable/validations.rb', line 29

def errors
  @errors ||= Array.new
end

#valid?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/formidable/validations.rb', line 37

def valid?
  self.validate
end

#validateObject



41
42
43
44
45
46
47
48
49
50
# File 'lib/formidable/validations.rb', line 41

def validate
  self.errors.clear
  self.validations.inject(true) do |is_valid, validation|
    validation_passed = validation.valid?
    unless validation_passed
      self.errors.push(validation.message)
    end
    is_valid && validation_passed
  end
end

#validationsObject



33
34
35
# File 'lib/formidable/validations.rb', line 33

def validations
  @validations ||= Array.new
end