Class: JSON::SchemaDsl::Renderers::Desugar

Inherits:
Base
  • Object
show all
Defined in:
lib/json/schema_dsl/renderers/desugar.rb

Overview

By default the first renderer that visits the tree. This renderer will translate all kinds of ‘syntax sugar` to a uniform format that fits json-schema.

Instance Attribute Summary

Attributes inherited from Base

#scope

Instance Method Summary collapse

Methods inherited from Base

#initialize, #traverse

Constructor Details

This class inherits a constructor from JSON::SchemaDsl::Renderers::Base

Instance Method Details

#visit(entity) ⇒ Object

Desugars all syntax sugar in that entity. This resolves concepts like children and nullable that are not present in the json schema specification itself but are used by the builder to ease the writing of schemas. In turn it

  • Transforms children to properties

  • Translates the :required attribute to the parent if true.

  • Collapses the item attribute of arrays into a single entity.



18
19
20
# File 'lib/json/schema_dsl/renderers/desugar.rb', line 18

def visit(entity)
  traverse(expand_children(nullable(entity)))
end