class Formulario::Validator

Constants

ValidationNotPerformed

Attributes

field_name[R]
object[R]
valid[R]
validated[R]
validated?[R]
value[R]

Public Class Methods

new(&validation_block) click to toggle source
# File lib/formulario/validator.rb, line 4
def initialize(&validation_block)
  @validation_block = validation_block if block_given?
end

Public Instance Methods

call(value:, field_name: nil, object: nil) click to toggle source
# File lib/formulario/validator.rb, line 8
def call(value:, field_name: nil, object: nil)
  @value      = value
  @field_name = field_name
  @object     = object
  @valid      = object.instance_exec(value, &validation_block)
  @validated  = true

  self
end
message() click to toggle source
# File lib/formulario/validator.rb, line 28
def message
  valid? ? '' : failure_text.to_s
end
on_invalid() { || ... } click to toggle source
# File lib/formulario/validator.rb, line 38
def on_invalid
  yield unless valid?

  self
end
on_valid() { || ... } click to toggle source
# File lib/formulario/validator.rb, line 32
def on_valid
  yield if valid?

  self
end
to_proc() click to toggle source
# File lib/formulario/validator.rb, line 18
def to_proc
  method(:call)
end
valid?() click to toggle source
# File lib/formulario/validator.rb, line 22
def valid?
  raise ValidationNotPerformed unless validated?

  valid
end

Private Instance Methods

failure_text() click to toggle source
# File lib/formulario/validator.rb, line 63
def failure_text
  'is invalid'
end
validate(value) click to toggle source
# File lib/formulario/validator.rb, line 54
def validate(value)
  true
end
validation_block() click to toggle source
# File lib/formulario/validator.rb, line 58
def validation_block
  @validation_block ||= method(:validate)
end