Sha256: 5aebc5d4e2c93db0cfa86e51f10179157d1ceb850bf10c476c8eb303ef3b8728
Contents?: true
Size: 1.08 KB
Versions: 9
Compression:
Stored size: 1.08 KB
Contents
module Lurker module Json module Concerns module Validatable def validate(data) Lurker::Validator.new(to_validation_schema, data, record_errors: true).validate.map { |error| "- #{error}" } end def to_validation_schema set_additional_properties_false_on(to_hash).tap do |schema| schema[Json::ID] = "file://#{uri}" end end private def set_additional_properties_false_on(object) case object when Hash copy = object.dup if object[Json::TYPE] == Json::OBJECT || object.key?(Json::PROPERTIES) copy[Json::ADDITIONAL_PROPERTIES] ||= false end object.each do |key, value| next if key == Json::ADDITIONAL_PROPERTIES copy[key] = set_additional_properties_false_on(value) end copy when Array copy = object.map { |value| set_additional_properties_false_on(value) } else object end end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems