Skip to content

Release 2.0.1

Compare
Choose a tag to compare
@gkellogg gkellogg released this 14 Aug 19:01
· 582 commits to develop since this release

Changes for Framing:

  • Add support for @reverse in frames.
  • Add framing and keep_free_floating_nodes option to expand and use when expanding frame.

Support for pre-loaded contexts

In many cases, for small documents, processing time can be dominated by loading and parsing remote contexts. In particular, a small schema.org example may need to download a large context and turn it into an internal representation, before the actual document can be expanded for processing. Using JSON::LD::Context.add_preloaded, an implementation can perform this loading up-front, and make it available to the processor.

ctx = JSON::LD::Context.new().parse('http://schema.org/')
JSON::LD::Context.add_preloaded('http://schema.org/', ctx)

On lookup, URIs with an https prefix are normalized to http.

A context may be serialized to Ruby to speed this process using Context#to_rb. When loaded, this generated file will add entries to the JSON::LD::Context::PRELOADED.

Use json-ld-preloaded gem to have popular contexts preloaded (note, this freezes these contexts at the time the gem is built).

  • Add Context::PRELOADED, and Context.add_preloaded. When parsing an otherwise loaded context, if it exists in PRELOADED, use that instead of remotely loading it. Avoids potentially expensive context parsing for common cases.
  • Generate lazy-loaded Ruby for defining a context from a loaded context. Initializes Context::PRELOADED for the context base.

General

  • Remove a lot of expensive debugging statements.
  • Use frozen string literals
  • Minimum Ruby version 2.2.2.