class Datamappify::Entity::Composable::Validators

Public Class Methods

build(entity, entity_class, options) click to toggle source
# File lib/datamappify/entity/composable/validators.rb, line 6
def build(entity, entity_class, options)
  @entity       = entity
  @entity_class = entity_class
  @options      = options

  build_validators
  run_validators
end

Private Class Methods

build_validators() click to toggle source

@return (see attributes_from)

# File lib/datamappify/entity/composable/validators.rb, line 18
def build_validators
  if @options[:prefix_with]
    rename_validators(@options[:prefix_with])
  else
    @entity_class._validators.each { |k, v| @entity._validators[k] = v.dup }
  end
end
rename_validator_attributes(validator, prefix) click to toggle source

@param validator [Validator]

@param prefix (see rename_validators)

@return [void]

# File lib/datamappify/entity/composable/validators.rb, line 42
def rename_validator_attributes(validator, prefix)
  validator.instance_variable_set(
    :@attributes,
    validator.attributes.map { |name| Attribute.prefix(name, prefix) }
  )

  validator
end
rename_validators(prefix) click to toggle source

@param prefix [Symbol]

@return [void]

# File lib/datamappify/entity/composable/validators.rb, line 29
def rename_validators(prefix)
  @entity_class._validators.each do |attribute_name, validators|
    @entity._validators[Attribute.prefix(attribute_name, prefix)] = validators.map do |validator|
      rename_validator_attributes(validator.dup, prefix)
    end
  end
end
run_validators() click to toggle source

@return [void]

# File lib/datamappify/entity/composable/validators.rb, line 52
def run_validators
  @entity._validators.each do |_, validators|
    validators.each do |validator|
      @entity.validate(validator, validator.options)
    end
  end
end