Module: Eipiai::SequelValidator

Includes:
Validator
Defined in:
lib/eipiai/validators/sequel.rb

Overview

SequelValidator

provides default validators specific for Sequel-backed models.

This validator expects each model to have a ‘uid` attribute, which represents the “public” unique identifier of the object.

Constant Summary

Constants included from Validator

Validator::NotImplementedError

Instance Method Summary collapse

Methods included from Validator

#add_error, #errors, #invalid?, #valid?, #validate

Instance Method Details

#unique?true, false

unique?

returns ‘true` if an object with the same `uid` already exists.

Examples:

item = Item.new(uid: 'hello').extend(ItemSequelValidator)
item.unique? # => true
item.save
item.unique? # => false

Returns:

  • (true, false)

    uniqueness status of object, based on uid attribute



43
44
45
# File 'lib/eipiai/validators/sequel.rb', line 43

def unique?
  self.class.first(uid: uid).blank? || add_error(:resource_exists)
end

#valid_uid?true, false

valid_uid?

validates the presence of the object uid.

Examples:

valid uid

Item.new(uid: 'valid').extend(ItemSequelValidator).valid_uid? # => true

invalid uid

Item.new.extend(ItemSequelValidator).valid_uid? # => false

Returns:

  • (true, false)

    validation status of resource’s uid attribute



27
28
29
# File 'lib/eipiai/validators/sequel.rb', line 27

def valid_uid?
  uid.present? || add_error(:missing_uid)
end