class JsonValidation::Validators::AdditionalItems

Public Instance Methods

find_additional_items(fragment, record) click to toggle source
# File lib/json_validation/validators/additional_items.rb, line 29
def find_additional_items(fragment, record)
  record.drop(fragment['items'].size)
end
inner_validator() click to toggle source
# File lib/json_validation/validators/additional_items.rb, line 25
def inner_validator
  @inner_validator ||= build_validator(fragment["additionalItems"])
end
validate(record) click to toggle source
# File lib/json_validation/validators/additional_items.rb, line 6
def validate(record)
  if !fragment.has_key?('items') || fragment['items'].is_a?(Hash)
    true
  else
    case fragment['additionalItems']
    when true
      true
    when false
      find_additional_items(fragment, record).empty?
    when Hash
      find_additional_items(fragment, record).all? {|item|
        inner_validator.validate(item)
      }
    else
      raise "Unexpected type for fragment['additionalItems']"
    end
  end
end