- Drop support for Ruby 2.4
- Fix bug falling into recursive loop on Array/Map nodes - kevindew#13
- Fix incorrectly spelt method name on
Schema
s/disciminator/discriminator/g
- Resolve deprecation warnings for Ruby 2.7
- Resolve deprecation warnings for Psych
- Operation and Path Item objects use servers that have cascaded from parent objects if they do not have their own servers defined.
- Add
#relative_node
and#parent_node
methods toNode::Context
. - Default to a server of "/" when given an empty or null servers input for OpenAPI node.
- Set referenced data as input and source location for a PathItem with only a $ref value.
- Fix data being lost in PathItem reference merges.
- Add
#values
method toNode::Object
andNode#Map
to have a method that pairs with#keys
- Add
Node::Schema#requires?
method to simplify checking whether a property is required by a particular schema. - Add
#==
methods to Node objects. This allows checking whether two nodes are from the same source location even if they're referenced in different places. - Add
Node::Schema#name
method that looks up the name of a Schema based on it's contextual position in a document. Allows accessing thePet
value from#/components/schemas/Pet
.
- Fix bug where Node::Object and Node::Map iterated arrays rather than hashes on #each and other Enumerable methods
- Drop support for Ruby 2.3
- Re-use references for significantly faster initialisation and validation
- Only error when accessing an invalid node rather than at root
- Handle infinitely recursive references that never resolve
- Fix outputting warnings for cyclic dependencies and undefined variables - fixes: kevindew#6
- Add Date and Time to YAML safe classes so library doesn't crash on an unquoted timestamp - fixes: kevindew#7
- Bugfix for allowing maps to have extension like field names
- Support for recursive references - fixes: kevindew#4
node_at
method on nodes and document to allow looking up nodes by string paths- Refactor of the node factory classes to use simpler inheritance rather than the mixins in mixins approach.
- Determine the OpenAPI specification version and store it in document.
- Support commonmark rendering, add description_html methods to nodes which allow description to be rendered as HTML.
- Fix bug with CGI constant unresolved
- Allow opening files by URL
- Support references in different files
- Allow defaulting to empty arrays and maps
- Configure rubydoc
- Types returned documented for the nodes