class Datum::FormValidator::Attribute

Attributes

errors[RW]
form[RW]
name[RW]
validations[RW]
value[RW]

Public Class Methods

new(attrs = {}) click to toggle source
# File lib/datum/form_validator/entities/attribute.rb, line 12
def initialize(attrs = {})
  @name = attrs[:name]
  @value = attrs[:value]
  @validations = attrs.fetch(:validations, [])
end

Public Instance Methods

valid?() click to toggle source
# File lib/datum/form_validator/entities/attribute.rb, line 18
def valid?
  validate!
  true
rescue ValidationError
  false
end

Private Instance Methods

validate!() click to toggle source
# File lib/datum/form_validator/entities/attribute.rb, line 27
def validate!
  @errors =
    validations
      .map { |validation| validation.call(name, value) }
      .delete_if(&:empty?)

  raise ValidationError unless errors.empty?
end