Skip to content

Latest commit

 

History

History
120 lines (95 loc) · 4.25 KB

CHANGELOG.md

File metadata and controls

120 lines (95 loc) · 4.25 KB

v0.8.1

  • JSIs are immutable by default

v0.8.0

  • Immutable JSIs with new_jsi param mutable
    • JSIs are still mutable by default, but in the next release they will default to immutable
  • Base#jsi_indicated_schemas
  • Base::StringNode
  • rename metaschema modules /JSONSchemaOrgDraft0X/JSONSchemaDraft0X/
  • terminology: /Metaschema/Meta-Schema/ and /metaschema/meta-schema/ (where hyphen is allowed)
  • Base::HashNode#jsi_each_propertyName
  • new_schema and/or new_jsi params register, schema_registry, stringify_symbol_keys, to_immutable
  • new_schema block param will module_exec on schema module
  • Base#[] param use_default default false, overridable
  • SchemaModule::Connects, SchemaModule::Connection
  • rm Schema#jsi_schema_instance_modules

v0.7.0

  • JSI::Base instances include Array/Hash-like modules on subclasses rather than extending each instance; are only Enumerable when appropriate instead of always
  • PathedHashNode -> Base::HashNode, PathedArrayNode -> Base::ArrayNode, PathedNode merged with Base
  • change application of conditional schemas to instances which do not validate, always apply them
  • fix nomenclature: child is immediately below parent; descendent is anywhere at/below an ancestor
    • deprecate previous misnamed methods
  • Base#jsi_descendent_node, Base#jsi_ancestor_nodes
  • add Schema#describes_schema!, deprecate Schema#jsi_schema_instance_modules
  • Schema#keyword?
  • Base#jmespath_search
  • MetaschemaNode keeps its jsi_root_node (reducing an enormous number of unnecessary instantiations of MetaschemaNode)
  • /metaschema_instance_modules/schema_implementation_modules/
  • separate JSI::Util (public) and JSI::Util::Private
  • support ruby 3
  • Schema.default_metaschema is nil unless set by the application
  • deprecate JSI::Typelike module, merged with Util; Arraylike -> Util::Arraylike, Hashlike -> Util::Hashlike

v0.6.0

  • initial validation; remove gem json-schema dependency
  • initial schema issue collection
  • JSI.new_schema / new_schema_module
  • JSI::SchemaSet
  • JSI::SchemaRegistry
  • JSI::Schema::Ref
  • Base#jsi_each_child_node, jsi_select_children_node_first, jsi_select_children_leaf_first
  • JSI::JSON::Pointer → JSI::Ptr
  • deprecate JSI.class_for_schemas
  • remove test/development files from gem
  • remove JSI::JSON::Node
  • as always too much more to list

v0.4.0

  • a JSI::Base has multiple jsi_schemas #88
    • JSI.class_for_schemas replaces JSI.class_for_schema
  • fix uri/fragment nomenclature #89

v0.3.0

  • a schema is a JSI instance of a metaschema
  • module JSI::Schema
  • module JSI::Metaschema
  • class JSI::MetaschemaNode
  • JSI::JSON::Node breaking changes
  • module SimpleWrap #87

v0.2.1

  • bugfix JSI::Schema#described_object_property_names looks only at allOf, not oneOf/anyOf
  • rm unused Schema#default_value, #default_value?
  • misc

v0.2.0

  • JSI::PathedNode unifies interfaces of JSI::Base, JSI::JSON::Node
  • JSI::Base does not (generally) wrap a JSI::JSON::Node
  • some method renames to try to better indicate what a method applies to, and unreserve common names
    • JSI::Base
      • #instance -> #jsi_instance
      • #parents -> #parent_jsis, #parent -> #parent_jsi
    • JSI::Schema
      • #fully_validate -> #fully_validate_instance
      • #validate -> #validate_instance
      • #validate! -> #validate_instance!
  • improvements to methods which use a modified copy - #dup, #update/#merge
  • #deref on PathedNode classes uses a block form
  • JSI::PathedArrayNode, PathedHashNode
  • JSI::JSON::Pointer refactoring and improvement
  • Schema#new_jsi
  • JSI::SimpleWrap
  • more

v0.1.0

  • JSI::JSON::Pointer replaces monkey-patched-in ::JSON::Schema::Pointer
  • JSI::JSICoder replaces JSI::SchemaInstanceJSONCoder / ObjectJSONCoder
  • remove JSI::StructJSONCoder
  • misc improvements to code, doc, tests

v0.0.4

  • minor bugfixes / improvements

v0.0.3

  • JSI::Base returns an instance of the default value for the schema if applicable
  • JSI::Base instance method #class_for_schema may be overridden by subclasses
  • bugfixes and internal refactoring

v0.0.2

  • JSI::JSON::Node and other utilities duck-type better with #to_hash and #to_ary
  • much improved documentation
  • much improved test coverage
  • code improvements too numerous to list

v0.0.1

  • extracted JSI from Scorpio