class StandaloneValidator

Constants

VERSION

Public Class Methods

create(&block) click to toggle source
# File lib/standalone_validator.rb, line 17
def create(&block)
  Class.new(StandaloneValidator, &block)
end
register_as(name) click to toggle source
# File lib/standalone_validator.rb, line 21
def register_as(name)
  NamedValidations.create(name, self)
end
required_fields() click to toggle source
# File lib/standalone_validator.rb, line 35
def required_fields
  return @required_fields if defined?(@required_fields)

  if superclass.kind_of?(StandaloneValidator)
    @required_fields = superclass.required_fields
  else
    @required_fields = Hamster.set
  end
end
validations() click to toggle source
# File lib/standalone_validator.rb, line 25
def validations
  return @validations if defined?(@validations)

  if superclass.kind_of?(StandaloneValidator)
    @validations = superclass.validations
  else
    @validations = Hamster.set
  end
end

Private Class Methods

include_validation(*args, &block) click to toggle source
# File lib/standalone_validator.rb, line 47
def include_validation(*args, &block)
  validation = Definitions.coerce_to_validation(*args, &block)
  @validations = validations.add(validation)
end
requires_field(name) click to toggle source
# File lib/standalone_validator.rb, line 52
def requires_field(name)
  @required_fields = required_fields.add(name.to_sym)
end

Public Instance Methods

add_errors_to(object) click to toggle source
# File lib/standalone_validator.rb, line 78
def add_errors_to(object)
  validation_result = violations_of(object)
  validation_result.add_errors_to(object.errors)
  validation_result
end
call(object, appliable_validations = validations)
Alias for: violations_of
requires_field?(field, object) click to toggle source
# File lib/standalone_validator.rb, line 84
def requires_field?(field, object)
  return true if self.class.required_fields.include?(field.to_sym)

  validations.any? do |validation|
    if validation.respond_to?(:requires_field?)
      validation.requires_field?(field, object)
    end
  end
end
violations_of(object, appliable_validations = validations) click to toggle source
# File lib/standalone_validator.rb, line 59
def violations_of(object, appliable_validations = validations)
  builder = StandaloneValidator::ValidationResultBuilder.new
  builder.validated_object = object

  appliable_validations.each do |validation|
    if validation.respond_to?(:to_proc)
      result = instance_exec(object, &validation)
    else
      result = validation.call(object)
    end

    builder.merge_result(result)
  end

  builder.result
end
Also aliased as: call

Private Instance Methods

validations() click to toggle source
# File lib/standalone_validator.rb, line 96
def validations
  self.class.validations
end