Provided by: libjson-schema-modern-perl_0.582-2_all
NAME
JSON::Schema::Modern::Vocabulary - Base role for JSON Schema vocabulary classes
VERSION
version 0.582
SYNOPSIS
package MyApp::Vocabulary::Awesome; use Moo::Role; with 'JSON::Schema::Modern::Vocabulary';
DESCRIPTION
This package is the role which all all vocabulary classes for JSON::Schema::Modern must compose, describing the basic structure expected of a vocabulary class.
ATTRIBUTES
METHODS
vocabulary Returns the canonical URI(s) describing the vocabulary for each draft specification version, as described in JSON Schema Core Meta-specification, section 8.1.2 <https://json- schema.org/draft/2020-12/json-schema-core.html#rfc.section.8.1.2>. Must be implemented by the composing class. evaluation_order Returns a positive integer, used as a sort key for determining the evaluation order of this vocabulary. If not overridden in a custom vocabulary class, its evaluation order will be after all built-in vocabularies. You probably don't need to define this. keywords Returns the list of keywords defined by the vocabulary. Must be implemented by the composing class. traverse Traverses a subschema. Callers are expected to establish a new $state scope. traverse_subschema Recursively traverses the schema at the current keyword, as in the "not" keyword. traverse_array_schemas Recursively traverses the list of subschemas at the current keyword, as in the "allOf" keyword. traverse_object_schemas Recursively traverses the (subschema) values of the object at the current keyword, as in the $defs keyword. traverse_property_schema Recursively traverses the subschema under one property of the object at the current keyword. eval Evaluates a subschema. Callers are expected to establish a new $state scope. eval_subschema_at_uri Resolves a URI to a subschema, then evaluates that subschema (essentially the $ref keyword).
SUPPORT
Bugs may be submitted through <https://github.com/karenetheridge/JSON-Schema-Modern/issues>. I am also usually active on irc, as 'ether' at "irc.perl.org" and "irc.libera.chat". You can also find me on the JSON Schema Slack server <https://json-schema.slack.com> and OpenAPI Slack server <https://open-api.slack.com>, which are also great resources for finding help.
AUTHOR
Karen Etheridge <ether@cpan.org>
COPYRIGHT AND LICENCE
This software is copyright (c) 2020 by Karen Etheridge. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.