Class: Skooma::Keywords::OAS31::Dialect::Discriminator
- Inherits:
-
JSONSkooma::Keywords::Base
- Object
- JSONSkooma::Keywords::Base
- Skooma::Keywords::OAS31::Dialect::Discriminator
- Defined in:
- lib/skooma/keywords/oas_3_1/dialect/discriminator.rb
Overview
Discriminator keyword is an annotation keyword, it does not affect validation of allOf/anyOf/oneOf schemas. See github.com/OAI/OpenAPI-Specification/pull/2618
Instance Method Summary collapse
Instance Method Details
#evaluate(instance, result) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/skooma/keywords/oas_3_1/dialect/discriminator.rb', line 13 def evaluate(instance, result) value = instance[json["propertyName"]] uri = mapped_uri(value) return result.failure("Could not resolve discriminator for value `#{value.inspect}`") if uri.nil? parent_schema.registry.schema( uri, metaschema_uri: parent_schema., cache_id: parent_schema.cache_id ) result.annotate(uri) rescue JSONSkooma::RegistryError => e result.failure("Could not resolve discriminator mapping: #{e.}") end |