class DTOSchema::Validators::ListValidator

Public Class Methods

new(schema, item_validator, checks = nil) click to toggle source
# File lib/dto_schema/validators.rb, line 81
def initialize(schema, item_validator, checks = nil)
  @schema, @item_validator = schema, item_validator
  @checks = checks || []
end

Public Instance Methods

resolve() click to toggle source
# File lib/dto_schema/validators.rb, line 109
def resolve
  @item_validator.resolve
  self
end
valid?(data) click to toggle source
# File lib/dto_schema/validators.rb, line 86
def valid? (data)
  data.is_a?(Array) && data.all? { |item| @item_validator.valid? item }
end
valid_structure?(data) click to toggle source
# File lib/dto_schema/validators.rb, line 105
def valid_structure? (data)
  data.is_a?(Array) && data.all? { |item| @item_validator.valid_structure? item }
end
validate(data) click to toggle source
# File lib/dto_schema/validators.rb, line 90
def validate (data)
  return ["Must be an array"] unless data.is_a? Array
  result = {}
  data.each_with_index do |value, i|
    errors = @item_validator.validate value
    result[i] = errors unless errors.empty?
  end
  return result unless result.empty?
  @checks.each do |check|
    errors = check.validate data
    return errors unless errors.empty?
  end
  {}
end