Adding this documentation might help clarify pattern matching within RDF::Query::Pattern, too.
do not fail with Encoding::CompatibilityError when normalizing unicode IRIs.
Fix RDF::List#== comparisons to RDF::Values
Ruby 2.3.0 changed the behavior of Comparable#== to avoid hiding errors. This led to NoMethodErrors for comparisons that return false for previous Rubies.
This introduces a custom RDF::List#== implementation for explicitly
supported comparisons between RDF::Value classes. We return false
immediately for RDF::Values which are not #list?; falling back on
Comparable for other types.
Further, RDF::Lists with three elements that happen to coincide with
the terms of an RDF::Statement would previously return true. E.g.:
RDF::List[:s, :p, :o] == RDF::Statement(:s, :p, :o). This unusual edge
case is patched by way of the changes described above.
Adjust List#<=> to avoid error cases
Using Array(other) instead of other.to_a avoids throwing errors when
comparing. This minor tweak slightly improves the solution to #304 given
in #305.
A new class RDF::Changeset has been added. This is meant to replace any
previous use of RDF::Transaction, which in fact used to in RDF.rb 1.x
represent more of a buffered changeset than a genuine transaction scope.
Instead of RDF::Transaction.execute, use RDF::Changeset.apply.
Instead of RDF::Transaction#execute, use RDF::Changeset#apply.
The RDF::Transaction class has been substantially revamped, including
some minor backwards-incompatible changes. These changes will mostly
affect repository implementors, not so much general RDF.rb users.
The changes reflect the expanded purpose of the class: instead of being a
mere buffered changeset (for which, see RDF::Changeset), transactions
are now intended to provide a proper ACID scope for repository queries and
mutations.
We always now also carefully distinguish between read-only and read/write
transactions, in order to enable repository implementations to take out the
appropriate locks for concurrency control. Note as well that transactions
are now read-only by default; mutability must be explicitly requested on
construction in order to obtain a read/write transaction.
In case repository implementations should be unable to provide actual ACID
guarantees for transactions, that must be clearly indicated in their
documentation. Similarly, implementations should throw an exception when
appropriate in case they don't provide write transaction support.
RDF::Transaction#initialize now takes the target repository as its
first argument. Transactions are now always tied to a specific
repository instance, instead of being free-floating objects as they used
to be (for that, see RDF::Changeset).
RDF::Transaction now mixes in RDF::Queryable and RDF::Enumerable,
enabling quad-pattern matches and BGP queries to execute in a proper
transaction scope.
The RDF::Transaction#context accessor, and its aliases, have been
removed. Transactions aren't necessarily scoped to a single graph only.
There is a new RDF::Transaction#repository accessor for retrieving the
target repository object that the transaction operates upon.
There is a new RDF::Transaction#buffered? predicate for testing
whether the changeset that constitutes a transaction is available for
introspection. Particular repository implementations may support both
options and permit the user the choice on transaction construction.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking Bump now in your Dependabot dashboard.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Updates the requirements on rdf to permit the latest version.
Release notes
Sourced from rdf's releases.
Changelog
Sourced from rdf's changelog.
Commits
4311460
Release 2.0.290234fa
Version 2.0.2 and update travis ruby versions.5a6e12d
Merge pull request #306 from ruby-rdf/feature/list-cmp510de0f
AdjustList#\<=>
to avoid error cases378a369
Merge pull request #305 from ruby-rdf/feature/list-value-eq9bd9cad
Fix Statement#== comparisons to RDF::List7dd3770
Fix RDF::List#== comparisons to RDF::Valuese990ded
Merge pull request #302 from ujifgc/fix-normalizingf752520
do not fail with Encoding::CompatibilityError when normalizing unicode IRIs274a0df
Merge pull request #301 from ruby-rdf/feature/statement-eq-docsDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking
Bump now
in your Dependabot dashboard.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)