Class: Attribool::ValidatorService

Inherits:
Object
  • Object
show all
Defined in:
lib/attribool/validator_service.rb

Overview

A simple interface to run validators, which should implement a valid? method which returns true if conditions are valid, and an error method which returns an exception class and message to be raised when validations fail.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(validator, *args) ⇒ ValidatorService

Construct the service and inject the validator.

Parameters:

  • Validator (Class)
  • *args (Object)


26
27
28
# File 'lib/attribool/validator_service.rb', line 26

def initialize(validator, *args)
  @validator = validator.new(*args)
end

Class Method Details

.call(validator_name, *args) ⇒ Object

Run the validator.

Parameters:

  • validator_name (Symbol)
  • *args (Object)

    to be forwarded to validator



16
17
18
# File 'lib/attribool/validator_service.rb', line 16

def self.call(validator_name, *args)
  new(::Attribool::Validators.fetch(validator_name), *args).validate
end

Instance Method Details

#validateBoolean

Raises the validator’s exception unless its conditions are met.

Returns:

  • (Boolean)

Raises:

  • (Exception)

    if validation fails



36
37
38
# File 'lib/attribool/validator_service.rb', line 36

def validate
  @validator.valid? || raise(@validator.error)
end