class JsonValidation::Validators::Items

Public Instance Methods

inner_validator() click to toggle source
# File lib/json_validation/validators/items.rb, line 19
def inner_validator
  raise unless fragment["items"].is_a?(Hash)
  @inner_validator ||= build_validator(fragment["items"])
end
inner_validators() click to toggle source
# File lib/json_validation/validators/items.rb, line 24
def inner_validators
  raise unless fragment["items"].is_a?(Array)
  @inner_validators ||= fragment["items"].map {|f|
    build_validator(f)
  }
end
validate(record) click to toggle source
# File lib/json_validation/validators/items.rb, line 6
def validate(record)
  case fragment['items']
  when Hash
    record.all? {|item| inner_validator.validate(item)}
  when Array
    inner_validators.zip(record).all? {|validator, item|
      validator.validate(item)
    }
  else
    raise "Unexpected type for fragment['items']"
  end
end