Releases: ruby-rdf/rdf
Releases · ruby-rdf/rdf
Release 3.1.1
Updates RDF::Changeset
to not depend on RDF::Mutable
or RDF::Writable
(from @doriantaylor).
- Creates
RDF::Util::Coercions
module with#coerce_statements
method, used withinRDF::Changeset
andRDF::Mutable
to iterate over things that can be statements. - Allows
RDf::Changeset
deletes to use a query pattern.
Release 3.1.0
- Removes support for Ruby < 2.4.
- Update calling sequences for options and keyword arguments (Ruby 2.7 compatibility)
- Calls to
Queryable#query
and similar, along withRDF::Query
where the first argument is of the form of a hash will typically need to explicitly enclose those members within{}
, so they're not confused with keyword arguments. - Fixes to URI stuff, due to confusion between arguments and options.
- Fix arguments for Reader.for and Writer.for.
- Fix URI.intern arguments.
- Calls to
- Add RDF namespace entries for string direction.
- Adds
URI.encode
andURI.decode
as these are deprecated in Ruby core.
Release 3.0.13
- Improve documentation for validate CLI command.
- Add default
User-Agent
header, and improve documentation on header defaults. - Issue deprecation notice on versions of Ruby < 2.4.
- Update language tag validation to what BCP47 requires, not RDF, which is too liberal.
- Fix
URI#join
forpath-rootless
, which goes away when merged with a relative path. - A Time should be typed as XMLSchema#dateTime
Ruby does not have a class which represents a time without date. A Tod::TimeOfDay provided by thetod
gem would justify XMLSchema#time, but the default Time class always includes a Date.
Release 3.0.12
- Make documentation link explicit in gemspec.
- Change most external URLs to HTTPS.
Release 3.0.11
- Don't define vocabulary method for 'term', in addition to 'proeprty' and 'hash'.
Release 3.0.10
-
N-Triples/N-Quads:
- Single quote (') was missing from N-Triples/Quads escaped characters.
- Change N-Triples literal output encoding to limit the number of
ECHAR
escapes used based on Canonical form of N-Triples:- Within
STRING_LITERAL_QUOTE
, only the charactersU+0022
,U+005C
,U+000A
,U+000D
are encoded usingECHAR
.ECHAR **must not** be used for characters that are allowed directly in
STRING_LITERAL_QUOTE`.
- Within
- Fix bug in
NTriples::Reader.unescape
where it was overeager; now uses a string scanner to iterate through the string buffer.
-
Query:
- Make query validation optional. (Notation-3 patterns will appear to be invalid).
- Better support for non-distinguished variables.
- Calculate pattern cost based on position of variables.
- Add
Solutions#dup
. - Add
existential
modifier to variables. Note that this is not preserved from queries, which record the binding using the variable name, without other qualities. - Have solution iterators also return enumerators.
- Guard against nil bindings in solutions.
- Add
Solutions#merge
based on JOIN semantics.
-
Miscellaneous:
- Update Repository to remember statement options along with object, and not simply the object itself. This allows inferred statements to be added to the repo, and come back as having been inferred.
- Implement URI marshaling methods to avoid issue with serializing mutex.
- Dup components of a URI to avoid freeze issues.
- Support milliseconds in dateTime and time datatyped literals.
Release 3.0.9
- Add :parameters to RemoteDocument processing all Content-Type parameters.
- Add Writer.accept? to allow writer to examine media-type and parameters before accepting.
- Add 2.6 to rvm build matrix.
Release 3.0.6
- Create a mutex instance variable in URI and synchronize when freezing.
- Guard against nil
content_type
when checking formats.
Release 3.0.5
- Verify that vocabulary terms defined in snake_case are not automatically converted to camelCase.
- Remove the ability to set the external encoding when writing N-Triples, as N-Triples requires UTF-8.
- "Fix" syntax in vocabulary.rb that Ruby versions < 2.2.5 don't parse properly. Set Travis to test on 2.2.2, not just 2.2, which defaulted to 2.2.7 at the time of this fix.
Release 3.0.4
- Tighten up rules on what makes an RDF::List valid.
- Be more forgiving on rdf:type values within a list.
- Fix issue when logging multiple invalid statements to $stderr. (@jperville)
- Cache
NTriples::Writer
instance used inNTriples::Writer.serialize
so that it does not re-instantiate each time it is called. - Reduce object allocations in
RDF::NTriples::Reader
(@jperville) - Use Regexp.match? on Ruby >= 2.4, with fallback for earlier Ruby versions (@jperville)
- Use the same DelegateClass(IO) each time we instanciate a logger (@jperville)