Class: HashValidator::Validator::MultipleValidator

Inherits:
Base
  • Object
show all
Defined in:
lib/hash_validator/validators/multiple_validator.rb

Instance Attribute Summary

Attributes inherited from Base

#name

Instance Method Summary collapse

Methods inherited from Base

#presence_error_message

Constructor Details

#initializeMultipleValidator

Returns a new instance of MultipleValidator.



4
5
6
# File 'lib/hash_validator/validators/multiple_validator.rb', line 4

def initialize
  super('_multiple')  # The name of the validator, underscored as it won't usually be directly invoked (invoked through use of validator)
end

Instance Method Details

#should_validate?(validation) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/hash_validator/validators/multiple_validator.rb', line 8

def should_validate?(validation)
  validation.is_a?(Validations::Multiple)
end

#validate(key, value, validations, errors) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/hash_validator/validators/multiple_validator.rb', line 12

def validate(key, value, validations, errors)
  multiple_errors = []

  validations.validations.each do |validation|
    validation_error = {}
    ::HashValidator.validator_for(validation).validate(key, value, validation, validation_error)
    multiple_errors << validation_error[key] if validation_error[key]
  end

  errors[key] = multiple_errors.join(', ') if multiple_errors.any?
end