Class: JSONSchemer::Draft202012::Vocab::Core::Vocabulary
- Defined in:
- lib/json_schemer/draft202012/vocab/core.rb
Constant Summary
Constants included from Output
Instance Attribute Summary
Attributes inherited from Keyword
#parent, #parsed, #root, #value
Attributes included from Output
Instance Method Summary collapse
Methods inherited from Keyword
#absolute_keyword_location, #error_key, #fetch, #initialize, #parsed_schema, #schema_pointer, #validate
Methods included from Output
Constructor Details
This class inherits a constructor from JSONSchemer::Keyword
Instance Method Details
#parse ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/json_schemer/draft202012/vocab/core.rb', line 18 def parse value.each_with_object({}) do |(vocabulary, required), out| if VOCABULARIES.key?(vocabulary) out[vocabulary] = VOCABULARIES.fetch(vocabulary) elsif required raise UnknownVocabulary, vocabulary end end.tap do |vocabularies| schema.keywords = vocabularies.sort_by do |vocabulary, _keywords| VOCABULARY_ORDER.fetch(vocabulary, Float::INFINITY) end.each_with_object({}) do |(_vocabulary, keywords), out| out.merge!(keywords) end schema.keyword_order = schema.keywords.transform_values.with_index { |_keyword_class, index| index } end end |