rdf-ordered-repo 3.1.1 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -3
- data/VERSION +1 -1
- data/etc/doap.ttl +1 -2
- data/lib/rdf/ordered_repo.rb +55 -19
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb8d7a4252659d073d36fe704be60b62b0aff55dfae646c75a38f6cfb38743cd
|
4
|
+
data.tar.gz: 5f58fc30cd2a5fa368edf75d5c39b5769176ca46d652927e394a1757ae6291a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd1df97330d99e8c99c03176d810e889f50ab1f1fd4e5f5697107a389a3e3d52451256d4418721e7396fc6c8b2c7cbf144bcb7ed2f4accc75251ac3d50cef037
|
7
|
+
data.tar.gz: '011816332e445274b75221754e57927137d88ebaa80821cd05cc5188069a9869e0f4e8e0ec8d8e2406e8134d016dddbf3ec09d92e684fbfe261109209d68cd6c'
|
data/README.md
CHANGED
@@ -3,7 +3,9 @@
|
|
3
3
|
An order-preserving repository for RDF.rb.
|
4
4
|
|
5
5
|
[![Gem Version](https://badge.fury.io/rb/rdf-ordered-repo.png)](https://badge.fury.io/rb/rdf-ordered-repo)
|
6
|
-
[![Build Status](https://
|
6
|
+
[![Build Status](https://github.com/ruby-rdf/rdf-ordered-repo/workflows/CI/badge.svg?branch=develop)](https://github.com/ruby-rdf/rdf-ordered-repo/actions?query=workflow%3ACI)
|
7
|
+
[![Coverage Status](https://coveralls.io/repos/ruby-rdf/rdf-ordered-repo/badge.svg?branch=develop)](https://coveralls.io/github/ruby-rdf/rdf-ordered-repo?branch=develop)
|
8
|
+
[![Gitter chat](https://badges.gitter.im/ruby-rdf/rdf.png)](https://gitter.im/ruby-rdf/rdf)
|
7
9
|
|
8
10
|
## Description
|
9
11
|
|
@@ -17,8 +19,8 @@ An in-memory implementation of RDF::Repository using native Ruby Hashes having i
|
|
17
19
|
|
18
20
|
## Dependencies
|
19
21
|
|
20
|
-
* [Ruby](https://ruby-lang.org/) (>= 2.
|
21
|
-
* [RDF.rb][] (~> 3.
|
22
|
+
* [Ruby](https://ruby-lang.org/) (>= 2.6)
|
23
|
+
* [RDF.rb][] (~> 3.2)
|
22
24
|
|
23
25
|
## Mailing List
|
24
26
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.2.0
|
data/etc/doap.ttl
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
doap:homepage <https://github.com/ruby-rdf/rdf-ordered-repo> ;
|
13
13
|
doap:license <https://unlicense.org/1.0/> ;
|
14
14
|
doap:shortdesc "An order-preserving repository for RDF.rb."@en ;
|
15
|
-
doap:description "An in-memory implementation of RDF::Repository using native Ruby Hashes having insert-order preserving properties."@en ;
|
15
|
+
doap:description "An in-memory implementation of RDF::Repository using native Ruby Hashes having insert-order preserving properties for the Ruby RDF.rb library suite."@en ;
|
16
16
|
doap:created "2020-09-22"^^xsd:date;
|
17
17
|
doap:programming-language "Ruby" ;
|
18
18
|
doap:implements <http://www.w3.org/TR/rdf11-concepts/> ;
|
@@ -23,7 +23,6 @@
|
|
23
23
|
doap:bug-database <https://github.com/ruby-rdf/rdf-ordered-repo/issues> ;
|
24
24
|
doap:blog <https://greggkellogg.net/> ;
|
25
25
|
doap:developer <https://greggkellogg.net/foaf#me> ;
|
26
|
-
doap:helper <http://njh.me/> ;
|
27
26
|
doap:maintainer <https://greggkellogg.net/foaf#me> ;
|
28
27
|
doap:documenter <https://greggkellogg.net/foaf#me> ;
|
29
28
|
foaf:maker <https://greggkellogg.net/foaf#me> ;
|
data/lib/rdf/ordered_repo.rb
CHANGED
@@ -40,7 +40,7 @@ module RDF
|
|
40
40
|
def supports?(feature)
|
41
41
|
case feature.to_sym
|
42
42
|
when :rdfstar then true
|
43
|
-
when :snapshots then
|
43
|
+
when :snapshots then true
|
44
44
|
else super
|
45
45
|
end
|
46
46
|
end
|
@@ -71,11 +71,24 @@ module RDF
|
|
71
71
|
end
|
72
72
|
|
73
73
|
##
|
74
|
-
# @
|
75
|
-
#
|
76
|
-
|
77
|
-
|
74
|
+
# @overload graph?
|
75
|
+
# Returns `false` to indicate that this is not a graph.
|
76
|
+
#
|
77
|
+
# @return [Boolean]
|
78
|
+
# @overload graph?(name)
|
79
|
+
# Returns `true` if `self` contains the given RDF graph_name.
|
80
|
+
#
|
81
|
+
# @param [RDF::Resource, false] graph_name
|
82
|
+
# Use value `false` to query for the default graph_name
|
83
|
+
# @return [Boolean]
|
84
|
+
def graph?(*args)
|
85
|
+
case args.length
|
86
|
+
when 0 then false
|
87
|
+
when 1 then @data.key?(args.first)
|
88
|
+
else raise ArgumentError("wrong number of arguments (given #{args.length}, expected 0 or 1)")
|
89
|
+
end
|
78
90
|
end
|
91
|
+
alias_method :has_graph?, :graph?
|
79
92
|
|
80
93
|
##
|
81
94
|
# @private
|
@@ -97,11 +110,21 @@ module RDF
|
|
97
110
|
end
|
98
111
|
|
99
112
|
##
|
100
|
-
# @
|
101
|
-
#
|
102
|
-
|
103
|
-
|
113
|
+
# @overload statement?
|
114
|
+
# Returns `false` indicating this is not an RDF::Statemenet.
|
115
|
+
# @return [Boolean]
|
116
|
+
# @see RDF::Value#statement?
|
117
|
+
# @overload statement?(statement)
|
118
|
+
# @private
|
119
|
+
# @see RDF::Enumerable#statement?
|
120
|
+
def statement?(*args)
|
121
|
+
case args.length
|
122
|
+
when 0 then false
|
123
|
+
when 1 then args.first && statement_in?(@data, args.first)
|
124
|
+
else raise ArgumentError("wrong number of arguments (given #{args.length}, expected 0 or 1)")
|
125
|
+
end
|
104
126
|
end
|
127
|
+
alias_method :has_statement?, :statement?
|
105
128
|
|
106
129
|
##
|
107
130
|
# @private
|
@@ -141,7 +164,18 @@ module RDF
|
|
141
164
|
##
|
142
165
|
# @see RDF::Dataset#isolation_level
|
143
166
|
def isolation_level
|
144
|
-
:
|
167
|
+
:snapshot
|
168
|
+
end
|
169
|
+
|
170
|
+
##
|
171
|
+
# A readable & queryable snapshot of the repository for isolated reads.
|
172
|
+
#
|
173
|
+
# @return [Dataset] an immutable Dataset containing a current snapshot of
|
174
|
+
# the Repository contents.
|
175
|
+
#
|
176
|
+
# @see Mutable#snapshot
|
177
|
+
def snapshot
|
178
|
+
self.class.new(data: @data).freeze
|
145
179
|
end
|
146
180
|
|
147
181
|
protected
|
@@ -157,13 +191,14 @@ module RDF
|
|
157
191
|
# @private
|
158
192
|
# @see RDF::Queryable#query_pattern
|
159
193
|
def query_pattern(pattern, **options, &block)
|
194
|
+
snapshot = @data
|
160
195
|
if block_given?
|
161
196
|
graph_name = pattern.graph_name
|
162
197
|
subject = pattern.subject
|
163
198
|
predicate = pattern.predicate
|
164
199
|
object = pattern.object
|
165
200
|
|
166
|
-
cs =
|
201
|
+
cs = snapshot.has_key?(graph_name) ? { graph_name => snapshot[graph_name] } : snapshot
|
167
202
|
|
168
203
|
cs.each do |c, ss|
|
169
204
|
next unless graph_name.nil? ||
|
@@ -221,7 +256,7 @@ module RDF
|
|
221
256
|
# @private
|
222
257
|
# @see RDF::Mutable#clear
|
223
258
|
def clear_statements
|
224
|
-
@data = @data.
|
259
|
+
@data = @data.class.new
|
225
260
|
end
|
226
261
|
|
227
262
|
##
|
@@ -242,16 +277,17 @@ module RDF
|
|
242
277
|
|
243
278
|
##
|
244
279
|
# @private
|
245
|
-
# @see #
|
246
|
-
def
|
280
|
+
# @see #statement?
|
281
|
+
def statement_in?(data, statement)
|
247
282
|
s, p, o, g = statement.to_quad
|
248
283
|
g ||= DEFAULT_GRAPH
|
249
284
|
|
250
|
-
data.
|
251
|
-
data[g].
|
252
|
-
data[g][s].
|
253
|
-
data[g][s][p].
|
285
|
+
data.key?(g) &&
|
286
|
+
data[g].key?(s) &&
|
287
|
+
data[g][s].key?(p) &&
|
288
|
+
data[g][s][p].key?(o)
|
254
289
|
end
|
290
|
+
alias_method :has_statement_in?, :statement_in?
|
255
291
|
|
256
292
|
##
|
257
293
|
# @private
|
@@ -259,7 +295,7 @@ module RDF
|
|
259
295
|
def insert_to(data, statement)
|
260
296
|
raise ArgumentError, "Statement #{statement.inspect} is incomplete" if statement.incomplete?
|
261
297
|
|
262
|
-
unless
|
298
|
+
unless statement_in?(data, statement)
|
263
299
|
s, p, o, c = statement.to_quad
|
264
300
|
c ||= DEFAULT_GRAPH
|
265
301
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf-ordered-repo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.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: 2021-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdf
|
@@ -16,56 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '3.
|
19
|
+
version: '3.2'
|
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.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rdf-spec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '3.
|
33
|
+
version: '3.2'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '3.
|
40
|
+
version: '3.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '3.
|
47
|
+
version: '3.10'
|
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.10'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: yard
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.9
|
61
|
+
version: '0.9'
|
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: 0.9
|
68
|
+
version: '0.9'
|
69
69
|
description: An in-memory implementation of RDF::Repository using native Ruby Hashes
|
70
70
|
having insert-order preserving properties.
|
71
71
|
email: public-rdf-ruby@w3.org
|
@@ -91,14 +91,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
91
|
requirements:
|
92
92
|
- - ">="
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version: '2.
|
94
|
+
version: '2.6'
|
95
95
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
97
|
- - ">="
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: '0'
|
100
100
|
requirements: []
|
101
|
-
rubygems_version: 3.
|
101
|
+
rubygems_version: 3.3.3
|
102
102
|
signing_key:
|
103
103
|
specification_version: 4
|
104
104
|
summary: An order-preserving repository for RDF.rb.
|