class Schemacop::V2::ArrayValidator

Public Class Methods

new(*args) click to toggle source
Calls superclass method Schemacop::V2::NodeSupportingType::new
# File lib/schemacop/v2/validator/array_validator.rb, line 10
def initialize(*args)
  super
  type(:nil) if option(:nil)
end

Public Instance Methods

validate(data, collector) click to toggle source
# File lib/schemacop/v2/validator/array_validator.rb, line 15
def validate(data, collector)
  validate_custom_check(data, collector)

  if option?(:min) && data.size < option(:min)
    collector.error "Array must have more (>=) than #{option(:min)} elements."
  end
  if option?(:max) && data.size > option(:max)
    collector.error "Array must have less (<=) than #{option(:max)} elements."
  end
  data.each_with_index do |entry, index|
    collector.path("[#{index}]", index, :array) do
      validate_types(entry, collector)
    end
  end
end