class HashValidator::Validator::ManyValidator
Public Class Methods
new()
click to toggle source
Calls superclass method
HashValidator::Validator::Base::new
# File lib/hash_validator/validators/many_validator.rb, line 4 def initialize super('_many') # The name of the validator, underscored as it won't usually be directly invoked (invoked through use of validator) end
Public Instance Methods
presence_error_message()
click to toggle source
# File lib/hash_validator/validators/many_validator.rb, line 12 def presence_error_message "enumerable required" end
should_validate?(validation)
click to toggle source
# File lib/hash_validator/validators/many_validator.rb, line 8 def should_validate?(validation) validation.is_a?(Validations::Many) end
validate(key, value, validations, errors)
click to toggle source
# File lib/hash_validator/validators/many_validator.rb, line 16 def validate(key, value, validations, errors) unless value.is_a?(Enumerable) errors[key] = presence_error_message return end element_errors = Array.new value.each_with_index do |element, i| ::HashValidator.validator_for(validations.validation).validate(i, element, validations.validation, element_errors) end element_errors.each_with_index do |e, i| if e.respond_to?(:empty?) && e.empty? element_errors[i] = nil end end errors[key] = element_errors unless element_errors.all?(&:nil?) end