module DatabaseValidations::Storage

Public Instance Methods

prepare(model) click to toggle source
# File lib/database_validations/lib/storage.rb, line 5
def prepare(model)
  model.class_attribute :_db_validators, instance_writer: false
  model._db_validators = {}

  model.validators.each do |validator|
    case validator
    when DbUniquenessValidator then process(validator, UniquenessKeyExtractor, model)
    when DbPresenceValidator then process(validator, PresenceKeyExtractor, model)
    else next
    end
  end
end
prepared?(model) click to toggle source
# File lib/database_validations/lib/storage.rb, line 24
def prepared?(model)
  model.respond_to?(:_db_validators)
end
process(validator, extractor, model) click to toggle source
# File lib/database_validations/lib/storage.rb, line 18
def process(validator, extractor, model)
  extractor.attribute_by_key(validator).each do |key, attribute|
    model._db_validators[key] = AttributeValidator.new(attribute, validator)
  end
end