Module: Toolchain::Validations::ClassMethods

Defined in:
lib/toolchain/validations.rb

Instance Method Summary collapse

Instance Method Details

#custom_validationsArray

Returns all the custom validation operations to run.

Returns:

  • (Array)

    all the custom validation operations to run.



20
21
22
# File 'lib/toolchain/validations.rb', line 20

def custom_validations
  @custom_validations ||= []
end

#include_validations(validations) ⇒ Object

Takes a Proc that contains validation logic and applies that to this class.

Parameters:

  • validations (Proc)


69
70
71
# File 'lib/toolchain/validations.rb', line 69

def include_validations(validations)
  class_eval(&validations)
end

#validate(method) ⇒ Object

Adds the provided method name to the validations array. This method will be called during validation time and allows you to do program-specific validations.

Parameters:

  • method (Symbol, String)


60
61
62
# File 'lib/toolchain/validations.rb', line 60

def validate(method)
  custom_validations.push(method.to_sym)
end

#validates(*args) ⇒ Object

Adds the provided validator to the validations array for the provided attribute key_path.

Examples:

class Device
  validates :name, presence: true
  validates :config, :url, presence: true
end

Parameters:

  • args (Array<Symbol, Hash>)


35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/toolchain/validations.rb', line 35

def validates(*args)
  options, key_path = args.pop, args

  _if = options.delete(:if)
  _unless = options.delete(:unless)

  options.each do |key, data|
    if validator = Helpers.find_validator(key)
      validations.push(
        key_path: key_path,
        validator: validator,
        data: data,
        if: _if,
        unless: _unless
      )
    end
  end
end

#validationsArray

Returns all the standard validation operations to run.

Returns:

  • (Array)

    all the standard validation operations to run.



14
15
16
# File 'lib/toolchain/validations.rb', line 14

def validations
  @validations ||= []
end