class PoroValidator::Validator::BaseClass

Public Class Methods

new() click to toggle source

Public - Initializes the base class that creates a default value for the @validations variable with an empty array

@validations - Stores all the validations intended for a Ruby object

(entity)
# File lib/poro_validator/validator/base_class.rb, line 9
def initialize
  @validations = []
end

Public Instance Methods

<<(validation) click to toggle source

Adds/appends validations to the validations array

@params - Validator Object to be stored to the array of validations.

# File lib/poro_validator/validator/base_class.rb, line 24
def <<(validation)
  @validations << validation
end
run_validations(context) click to toggle source

Public - Calls the internal #run_validations method to perform the validations stored in the @validations instance array against a validator context if the conditions are truthy.

# File lib/poro_validator/validator/base_class.rb, line 16
def run_validations(context)
  __run_validations__(context)
end
validations() click to toggle source

@return array of hashes of validations and conditions

# File lib/poro_validator/validator/base_class.rb, line 29
def validations
  @validations
end
validators() click to toggle source

@return array of validators

# File lib/poro_validator/validator/base_class.rb, line 34
def validators
  @validators
end

Private Instance Methods

__run_validations__(context) click to toggle source

@private

# File lib/poro_validator/validator/base_class.rb, line 41
def __run_validations__(context)
  validations.each do |validation|
    validator  = validation[:validator]
    conditions = validation[:conditions] || {}

    unless conditions.empty?
      next unless Conditions.matched?(conditions, context)
    end

    validator.__validate__(context)
  end
end