rdf-hamster-repo 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/VERSION +1 -1
- data/lib/rdf/hamster_repo.rb +1 -76
- metadata +16 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ca5e2130108572d007d357e8dbe01023ec93ce0e1ac5e2fefaa7490b857383b
|
4
|
+
data.tar.gz: 937736ffb0a20d968d7dc2b74ebaacd3e95108bcd1808b6e6f6fa92a34cea04b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fabcb01f0331de9898302f8861d857e865ba386d676beb48eac94b124c60e755aac1b6698b7e13a676780c023368d8c011703506f4699ec3ea9a5e519bf8d90d
|
7
|
+
data.tar.gz: 0d2c6adae6fc73b93702dcd10a77a592bc6a284ceae027b2e71ed037d44bc50f9820c2aaed68167460f2c2377b6ab72dc8e1f1f7e5435caec9789739e1331244
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# RDF::HamsterRepo
|
2
2
|
An RDF repository implementation using an in-memory Hamster Hash.
|
3
3
|
|
4
|
-
[](https://badge.fury.io/rb/rdf-hamster-repo)
|
5
5
|
[](https://github.com/ruby-rdf/rdf-hamster-repo/actions?query=workflow%3ACI)
|
6
6
|
[](https://coveralls.io/github/ruby-rdf/rdf-hamster-repo?branch=develop)
|
7
7
|
[](https://gitter.im/ruby-rdf/rdf)
|
@@ -14,12 +14,12 @@ An in-memory implementation of RDF::Repository using an efficient, immutable, an
|
|
14
14
|
|
15
15
|
require 'rdf/hamster_repo'
|
16
16
|
require 'rdf/nquads'
|
17
|
-
repo = RDF::HamsterRepo.load("https://ruby-rdf.github.
|
17
|
+
repo = RDF::HamsterRepo.load("https://ruby-rdf.github.io/rdf/etc/doap.nq")
|
18
18
|
|
19
19
|
## Dependencies
|
20
20
|
|
21
|
-
* [Ruby](https://ruby-lang.org/) (>=
|
22
|
-
* [RDF.rb][] (~> 3.
|
21
|
+
* [Ruby](https://ruby-lang.org/) (>= 3.0)
|
22
|
+
* [RDF.rb][] (~> 3.3)
|
23
23
|
* [Hamster][] (~> 3.0)
|
24
24
|
|
25
25
|
## Mailing List
|
@@ -55,7 +55,7 @@ This repository uses [Git Flow](https://github.com/nvie/gitflow) to mange develo
|
|
55
55
|
This is free and unencumbered public domain software. For more information,
|
56
56
|
see <https://unlicense.org/> or the accompanying {file:UNLICENSE} file.
|
57
57
|
|
58
|
-
[RDF.rb]: https://ruby-rdf.github.
|
58
|
+
[RDF.rb]: https://ruby-rdf.github.io/
|
59
59
|
[YARD]: https://yardoc.org/
|
60
60
|
[YARD-GS]: https://rubydoc.info/docs/yard/file/docs/GettingStarted.md
|
61
61
|
[PDD]: https://unlicense.org/#unlicensing-contributions
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.3.0
|
data/lib/rdf/hamster_repo.rb
CHANGED
@@ -14,7 +14,7 @@ module RDF
|
|
14
14
|
Hamster::Hash.new)
|
15
15
|
obj.instance_variable_set(:@tx_class,
|
16
16
|
obj.options.delete(:transaction_class) ||
|
17
|
-
SerializedTransaction)
|
17
|
+
RDF::Transaction::SerializedTransaction)
|
18
18
|
super
|
19
19
|
end
|
20
20
|
|
@@ -340,81 +340,6 @@ module RDF
|
|
340
340
|
data
|
341
341
|
end
|
342
342
|
|
343
|
-
##
|
344
|
-
# A transaction for the Hamster-based `RDF::Repository::Implementation`
|
345
|
-
# with full serializability.
|
346
|
-
#
|
347
|
-
# @todo refactor me!
|
348
|
-
# @see RDF::Transaction
|
349
|
-
class SerializedTransaction < Transaction
|
350
|
-
##
|
351
|
-
# @see Transaction#initialize
|
352
|
-
def initialize(*args, **options, &block)
|
353
|
-
super(*args, **options, &block)
|
354
|
-
@base_snapshot = @snapshot
|
355
|
-
end
|
356
|
-
|
357
|
-
##
|
358
|
-
# Inserts the statement to the transaction's working snapshot.
|
359
|
-
#
|
360
|
-
# @see Transaction#insert_statement
|
361
|
-
def insert_statement(statement)
|
362
|
-
@snapshot = @snapshot.class
|
363
|
-
.new(data: @snapshot.send(:insert_to,
|
364
|
-
@snapshot.send(:data),
|
365
|
-
process_statement(statement)))
|
366
|
-
end
|
367
|
-
|
368
|
-
##
|
369
|
-
# Deletes the statement from the transaction's working snapshot.
|
370
|
-
#
|
371
|
-
# @see Transaction#insert_statement
|
372
|
-
def delete_statement(statement)
|
373
|
-
@snapshot = @snapshot.class
|
374
|
-
.new(data: @snapshot.send(:delete_from,
|
375
|
-
@snapshot.send(:data),
|
376
|
-
process_statement(statement)))
|
377
|
-
end
|
378
|
-
|
379
|
-
##
|
380
|
-
# @see RDF::Dataset#isolation_level
|
381
|
-
def isolation_level
|
382
|
-
:serializable
|
383
|
-
end
|
384
|
-
|
385
|
-
##
|
386
|
-
# @note this is a simple object equality check.
|
387
|
-
#
|
388
|
-
# @see RDF::Transaction#mutated?
|
389
|
-
def mutated?
|
390
|
-
!@snapshot.send(:data).equal?(repository.send(:data))
|
391
|
-
end
|
392
|
-
|
393
|
-
##
|
394
|
-
# Replaces repository data with the transaction's snapshot in a safely
|
395
|
-
# serializable fashion.
|
396
|
-
#
|
397
|
-
# @note this transaction uses a pessimistic merge strategy which
|
398
|
-
# fails the transaction if any data has changed in the repository
|
399
|
-
# since transaction start time. However, the specific guarantee is
|
400
|
-
# softer: multiple concurrent conflicting transactions will not
|
401
|
-
# succeed. We may choose to implement a less pessimistic merge
|
402
|
-
# strategy as a non-breaking change.
|
403
|
-
#
|
404
|
-
# @raise [TransactionError] when the transaction can't be merged.
|
405
|
-
# @see Transaction#execute
|
406
|
-
def execute
|
407
|
-
raise TransactionError, 'Cannot execute a rolled back transaction. ' \
|
408
|
-
'Open a new one instead.' if instance_variable_defined?(:@rolledback) && @rolledback
|
409
|
-
|
410
|
-
raise TransactionError, 'Error merging transaction. Repository' \
|
411
|
-
'has changed during transaction time.' unless
|
412
|
-
repository.send(:data).equal? @base_snapshot.send(:data)
|
413
|
-
|
414
|
-
repository.send(:data=, @snapshot.send(:data))
|
415
|
-
end
|
416
|
-
end
|
417
|
-
|
418
343
|
module VERSION
|
419
344
|
VERSION_FILE = File.expand_path("../../../VERSION", __FILE__)
|
420
345
|
MAJOR, MINOR, TINY, EXTRA = File.read(VERSION_FILE).chop.split(".")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf-hamster-repo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregg Kellogg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdf
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '3.
|
19
|
+
version: '3.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '3.
|
26
|
+
version: '3.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: hamster
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,28 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '3.
|
47
|
+
version: '3.3'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '3.
|
54
|
+
version: '3.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '3.
|
61
|
+
version: '3.12'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '3.
|
68
|
+
version: '3.12'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: yard
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,7 +96,12 @@ files:
|
|
96
96
|
homepage: https://github.com/ruby-rdf/rdf-hamster-repo
|
97
97
|
licenses:
|
98
98
|
- Unlicense
|
99
|
-
metadata:
|
99
|
+
metadata:
|
100
|
+
documentation_uri: https://ruby-rdf.github.io/rdf-hamster-repo
|
101
|
+
bug_tracker_uri: https://github.com/ruby-rdf/rdf-hamster-repo/issues
|
102
|
+
homepage_uri: https://github.com/ruby-rdf/rdf-hamster-repo
|
103
|
+
mailing_list_uri: https://lists.w3.org/Archives/Public/public-rdf-ruby/
|
104
|
+
source_code_uri: https://github.com/ruby-rdf/rdf-hamster-repo
|
100
105
|
post_install_message:
|
101
106
|
rdoc_options: []
|
102
107
|
require_paths:
|
@@ -105,14 +110,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
105
110
|
requirements:
|
106
111
|
- - ">="
|
107
112
|
- !ruby/object:Gem::Version
|
108
|
-
version: '
|
113
|
+
version: '3.0'
|
109
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
115
|
requirements:
|
111
116
|
- - ">="
|
112
117
|
- !ruby/object:Gem::Version
|
113
118
|
version: '0'
|
114
119
|
requirements: []
|
115
|
-
rubygems_version: 3.
|
120
|
+
rubygems_version: 3.2.33
|
116
121
|
signing_key:
|
117
122
|
specification_version: 4
|
118
123
|
summary: An RDF repository implementation using an in-memory Hamster Hash.
|