class Quiver::Validators::Unique

Public Instance Methods

validate() click to toggle source
# File lib/quiver/validators/unique.rb, line 6
def validate
  errors = Quiver::ErrorCollection.new

  result = mapper.send(:query,
    filter: {
      name => {'eq' => value}
    }
  )

  if result.object.any?
    unless result.object.size == 1 &&
      result.object.first.send(adapter.class.primary_key_name) == model.send(adapter.class.primary_key_name)

      errors << Quiver::Model::ValidationError.new(name, must_be_unique)
    end
  end

  errors
end

Private Instance Methods

must_be_unique() click to toggle source
# File lib/quiver/validators/unique.rb, line 28
def must_be_unique
  'must_be_unique'
end