Sha256: 998708e69175589cbf9e6aada6560d57fc5ff48760afcff9f35af427c747f31c

Contents?: true

Size: 542 Bytes

Versions: 13

Compression:

Stored size: 542 Bytes

Contents

class BazaModels::Validators::UniquenessValidator < BazaModels::Validators::BaseValidator
  def validate(model, value)
    query_same = model.class.where(attribute_name => value)

    if scope
      scope.each do |scope_part|
        query_same = query_same.where(scope_part => model.__send__(scope_part))
      end
    end

    model.errors.add(attribute_name, "isn't unique") if query_same.any?
  end

private

  def scope
    scope = @args.fetch(:uniqueness)[:scope]
    scope = [scope] if scope && !scope.is_a?(Array)
    scope
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
baza_models-0.0.13 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.12 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.11 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.10 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.9 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.8 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.7 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.6 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.5 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.4 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.3 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.2 lib/baza_models/validators/uniqueness_validator.rb
baza_models-0.0.1 lib/baza_models/validators/uniqueness_validator.rb