rdf-spec 2.0.0 → 2.2.0.pre.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/VERSION +1 -1
- data/lib/rdf/spec/enumerable.rb +26 -9
- data/lib/rdf/spec/mutable.rb +1 -1
- data/lib/rdf/spec/queryable.rb +30 -26
- data/lib/rdf/spec/repository.rb +0 -29
- data/lib/rdf/spec/transactable.rb +3 -1
- data/lib/rdf/spec/transaction.rb +20 -0
- data/lib/rdf/spec/writable.rb +3 -3
- metadata +12 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02763a4f5919a3620e632e6c5407a85ead6a31b6
|
4
|
+
data.tar.gz: e0b955d1548f7aac679dd228ef05e7b20bfa2e0c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4093900bf924b487bea8e8d8412bec0be59343b9a6a5c9ede606e3cf79bee0a40befcd53f7b08631e73edb8dd18f9e2148fe5b98a627cc042b937f43b5dc21f
|
7
|
+
data.tar.gz: af748d60323daba596933ff153b4544f474a8778bd1b9232a34d2773c64b3ea04e2263a50c7772778448f3f6c794b2cfe08e27c141e3acf226d1818e022b6299
|
data/README.md
CHANGED
@@ -31,8 +31,8 @@ Note that in most cases, if the instance is empty and mutable, the appropriate s
|
|
31
31
|
|
32
32
|
## Dependencies
|
33
33
|
|
34
|
-
* [RDF.rb](http://rubygems.org/gems/rdf) (
|
35
|
-
* [RSpec](http://rubygems.org/gems/rspec) (
|
34
|
+
* [RDF.rb](http://rubygems.org/gems/rdf) (~> 2.0)
|
35
|
+
* [RSpec](http://rubygems.org/gems/rspec) (~> 3.0)
|
36
36
|
|
37
37
|
## Installation
|
38
38
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.2.0-rc1
|
data/lib/rdf/spec/enumerable.rb
CHANGED
@@ -391,11 +391,16 @@ RSpec.shared_examples 'an RDF::Enumerable' do
|
|
391
391
|
|
392
392
|
its(:each_term) {is_expected.to be_an_enumerator}
|
393
393
|
context "#each_term" do
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
394
|
+
it 'has correct number of terms' do
|
395
|
+
expected_count = non_bnode_terms.length
|
396
|
+
expected_count = expected_count - 3 unless
|
397
|
+
subject.supports?(:literal_equality)
|
398
|
+
|
399
|
+
expect(subject.each_term.reject(&:node?).size).to eq expected_count
|
400
|
+
end
|
401
|
+
|
402
|
+
specify { expect(subject.each_term).to all(be_a_term) }
|
403
|
+
specify { subject.each_term {|value| expect(non_bnode_terms).to include(value) unless value.node?} }
|
399
404
|
end
|
400
405
|
|
401
406
|
its(:enum_term) {is_expected.to be_an_enumerator}
|
@@ -507,11 +512,23 @@ RSpec.shared_examples 'an RDF::Enumerable' do
|
|
507
512
|
|
508
513
|
|
509
514
|
context "when converting" do
|
510
|
-
it {is_expected.to respond_to(:
|
511
|
-
|
512
|
-
|
515
|
+
it {is_expected.to respond_to(:to_h)}
|
516
|
+
it {is_expected.not_to respond_to(:to_hash)}
|
517
|
+
its(:to_hash) {
|
518
|
+
expect {
|
519
|
+
is_expected.to be_instance_of(Hash)
|
520
|
+
}.to write("DEPRECATION").to(:error)
|
521
|
+
}
|
522
|
+
describe "#to_h" do
|
513
523
|
it "should have as many keys as subjects" do
|
514
|
-
expect(subject.
|
524
|
+
expect(subject.to_h.keys.size).to eq enumerable.subjects.to_a.size
|
525
|
+
end
|
526
|
+
end
|
527
|
+
describe "#to_h" do
|
528
|
+
it "should have as many keys as subjects (with deprecation)" do
|
529
|
+
expect {
|
530
|
+
expect(subject.to_hash.keys.size).to eq enumerable.subjects.to_a.size
|
531
|
+
}.to write("DEPRECATION").to(:error)
|
515
532
|
end
|
516
533
|
end
|
517
534
|
end
|
data/lib/rdf/spec/mutable.rb
CHANGED
@@ -262,7 +262,7 @@ RSpec.shared_examples 'an RDF::Mutable' do
|
|
262
262
|
it 'handles Graph names' do
|
263
263
|
if @supports_named_graphs
|
264
264
|
dels = non_bnode_statements.take(10).map do |st|
|
265
|
-
RDF::Statement.from(st.
|
265
|
+
RDF::Statement.from(st.to_h.merge(graph_name: RDF::URI('http://example.com/fake')))
|
266
266
|
end
|
267
267
|
dels.map! { |st| st.graph_name = RDF::URI('http://example.com/fake'); st }
|
268
268
|
dels.extend(RDF::Enumerable)
|
data/lib/rdf/spec/queryable.rb
CHANGED
@@ -60,18 +60,31 @@ RSpec.shared_examples 'an RDF::Queryable' do
|
|
60
60
|
|
61
61
|
context "with specific patterns" do
|
62
62
|
# Note that "01" should not match 1, per data-r2/expr-equal/sameTerm
|
63
|
-
|
64
|
-
[RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1])],
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
63
|
+
patterns =
|
64
|
+
{ [RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1])],
|
65
|
+
[RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), nil] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1])],
|
66
|
+
[RDF::URI("http://example.org/xi1"), nil, 1] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1])],
|
67
|
+
[nil, RDF::URI("http://example.org/p"), 1] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1]), RDF::Statement.from([RDF::URI("http://example.org/xi2"), RDF::URI("http://example.org/p"), 1])],
|
68
|
+
[nil, nil, 1] => [RDF::Statement.from([RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1]), RDF::Statement.from([RDF::URI("http://example.org/xi2"), RDF::URI("http://example.org/p"), 1])],
|
69
|
+
[nil, RDF::URI("http://example.org/p"), RDF::Literal::Double.new("1.0e0")] => [RDF::Statement.from([RDF::URI("http://example.org/xd1"), RDF::URI("http://example.org/p"), RDF::Literal::Double.new("1.0e0")])],
|
70
|
+
}
|
71
|
+
|
72
|
+
literal_eq_patterns =
|
73
|
+
[[nil, RDF::URI("http://example.org/p"), 1],
|
74
|
+
[nil, nil, 1],
|
75
|
+
[nil, RDF::URI("http://example.org/p"), RDF::Literal::Double.new("1.0e0")]]
|
76
|
+
|
77
|
+
patterns.each do |pattern, result|
|
72
78
|
it "returns #{result.inspect} given #{pattern.inspect}" do
|
79
|
+
unless subject.supports?(:literal_equality)
|
80
|
+
next if literal_eq_patterns.include?(pattern)
|
81
|
+
end
|
82
|
+
|
83
|
+
pattern = RDF::Query::Pattern.from(pattern)
|
73
84
|
solutions = []
|
85
|
+
|
74
86
|
subject.send(method, pattern) {|s| solutions << s}
|
87
|
+
|
75
88
|
expect(solutions).to contain_exactly(*result)
|
76
89
|
end
|
77
90
|
end
|
@@ -85,18 +98,6 @@ RSpec.shared_examples 'an RDF::Queryable' do
|
|
85
98
|
expect(solutions.size).to eq @statements.size
|
86
99
|
end
|
87
100
|
|
88
|
-
it "returns statements from unnamed graphs with false graph_name" do
|
89
|
-
pattern = RDF::Query::Pattern.new(nil, nil, nil, graph_name: false)
|
90
|
-
solutions = []
|
91
|
-
subject.send(method, pattern) {|s| solutions << s}
|
92
|
-
|
93
|
-
named_statements = subject.statements
|
94
|
-
named_statements.reject! {|st| st.has_name?} unless
|
95
|
-
subject.respond_to?(:graph_name) && !subject.graph_name.nil?
|
96
|
-
|
97
|
-
expect(solutions.size).to eq named_statements.size
|
98
|
-
end
|
99
|
-
|
100
101
|
it "returns statements from named graphs with variable graph_name" do
|
101
102
|
unless subject.graph_names.to_a.empty?
|
102
103
|
pattern = RDF::Query::Pattern.new(nil, nil, nil, graph_name: :c)
|
@@ -276,7 +277,9 @@ RSpec.shared_examples 'an RDF::Queryable' do
|
|
276
277
|
end
|
277
278
|
|
278
279
|
it 'has two solutions' do
|
279
|
-
|
280
|
+
if subject.supports?(:literal_equality)
|
281
|
+
expect(result.count).to eq 2
|
282
|
+
end
|
280
283
|
end
|
281
284
|
|
282
285
|
it "has xi1 as a solution" do
|
@@ -296,7 +299,9 @@ RSpec.shared_examples 'an RDF::Queryable' do
|
|
296
299
|
end
|
297
300
|
|
298
301
|
it 'has one solution' do
|
299
|
-
|
302
|
+
if subject.supports?(:literal_equality)
|
303
|
+
expect(result.count).to eq 1
|
304
|
+
end
|
300
305
|
end
|
301
306
|
|
302
307
|
it "has xd1 as a solution" do
|
@@ -314,8 +319,7 @@ RSpec.shared_examples 'an RDF::Queryable' do
|
|
314
319
|
before { skip unless subject.respond_to?(:query_execute, true ) }
|
315
320
|
|
316
321
|
it "defines a protected #query_execute method" do
|
317
|
-
expect(subject.
|
318
|
-
.to be_truthy
|
322
|
+
expect(subject.protected_methods).to include :query_execute
|
319
323
|
end
|
320
324
|
|
321
325
|
include_examples 'query execution', :query_execute
|
@@ -327,7 +331,7 @@ RSpec.shared_examples 'an RDF::Queryable' do
|
|
327
331
|
before { skip unless subject.respond_to?(:query_pattern, true ) }
|
328
332
|
|
329
333
|
it "defines a protected #query_pattern method" do
|
330
|
-
expect(subject.
|
334
|
+
expect(subject.protected_methods).to include :query_pattern
|
331
335
|
end
|
332
336
|
|
333
337
|
include_examples 'query pattern', :query_pattern
|
data/lib/rdf/spec/repository.rb
CHANGED
@@ -48,35 +48,6 @@ RSpec.shared_examples 'an RDF::Repository' do
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
describe "#transaction" do
|
52
|
-
it 'gives an immutable transaction' do
|
53
|
-
expect { subject.transaction { insert([]) } }.to raise_error TypeError
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'commits a successful transaction' do
|
57
|
-
statement = RDF::Statement(:s, RDF.type, :o)
|
58
|
-
expect(subject).to receive(:commit_transaction).and_call_original
|
59
|
-
|
60
|
-
expect do
|
61
|
-
subject.transaction(mutable: true) { insert(statement) }
|
62
|
-
end.to change { subject.statements }.to include(statement)
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'rolls back a failed transaction' do
|
66
|
-
original_contents = subject.statements
|
67
|
-
expect(subject).to receive(:rollback_transaction).and_call_original
|
68
|
-
|
69
|
-
expect do
|
70
|
-
subject.transaction(mutable: true) do
|
71
|
-
delete(*@statements)
|
72
|
-
raise 'my error'
|
73
|
-
end
|
74
|
-
end.to raise_error RuntimeError
|
75
|
-
|
76
|
-
expect(subject.statements).to contain_exactly(*original_contents)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
51
|
context "with snapshot support" do
|
81
52
|
|
82
53
|
describe '#snapshot' do
|
@@ -18,7 +18,9 @@ RSpec.shared_examples 'an RDF::Transactable' do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'commits a successful transaction' do
|
21
|
-
statement = RDF::Statement(
|
21
|
+
statement = RDF::Statement(RDF::URI('http://example.com/s'),
|
22
|
+
RDF.type,
|
23
|
+
RDF::URI('http://example.com/o'))
|
22
24
|
expect(subject).to receive(:commit_transaction).and_call_original
|
23
25
|
|
24
26
|
expect do
|
data/lib/rdf/spec/transaction.rb
CHANGED
@@ -250,6 +250,26 @@ shared_examples "an RDF::Transaction" do |klass|
|
|
250
250
|
end
|
251
251
|
end
|
252
252
|
|
253
|
+
describe '#mutated?' do
|
254
|
+
let(:st) { RDF::Statement(:s, RDF::URI('http://example.com/p'), 'o') }
|
255
|
+
|
256
|
+
it 'returns true after a successful insert' do
|
257
|
+
begin
|
258
|
+
expect { subject.insert(st) }
|
259
|
+
.to change { subject.mutated? }.from(false).to(true)
|
260
|
+
rescue NotImplementedError; end
|
261
|
+
end
|
262
|
+
|
263
|
+
it 'returns true after a successful delete' do
|
264
|
+
repository.insert(st)
|
265
|
+
|
266
|
+
begin
|
267
|
+
expect { subject.delete(st) }
|
268
|
+
.to change { subject.mutated? }.from(false).to(true)
|
269
|
+
rescue NotImplementedError; end
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
253
273
|
describe '#execute' do
|
254
274
|
let(:st) { RDF::Statement(:s, RDF::URI('http://example.com/p'), 'o') }
|
255
275
|
|
data/lib/rdf/spec/writable.rb
CHANGED
@@ -126,9 +126,9 @@ RSpec.shared_examples 'an RDF::Writable' do
|
|
126
126
|
end
|
127
127
|
|
128
128
|
it "should not insert an incomplete statement" do
|
129
|
-
expect {subject.insert(RDF::Statement.from(statement.
|
130
|
-
expect {subject.insert(RDF::Statement.from(statement.
|
131
|
-
expect {subject.insert(RDF::Statement.from(statement.
|
129
|
+
expect {subject.insert(RDF::Statement.from(statement.to_h.merge(subject: nil)))}.to raise_error(ArgumentError)
|
130
|
+
expect {subject.insert(RDF::Statement.from(statement.to_h.merge(predicate: nil)))}.to raise_error(ArgumentError)
|
131
|
+
expect {subject.insert(RDF::Statement.from(statement.to_h.merge(object: nil)))}.to raise_error(ArgumentError)
|
132
132
|
expect(subject.count).to eql 0
|
133
133
|
end
|
134
134
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf-spec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.2.0.pre.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arto Bendiken
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-12-31 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdf
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '2.
|
21
|
+
version: '2.1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: '2.
|
28
|
+
version: '2.1'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rdf-isomorphic
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -46,14 +46,14 @@ dependencies:
|
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '3.
|
49
|
+
version: '3.5'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: '3.
|
56
|
+
version: '3.5'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: rspec-its
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,14 +74,14 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
77
|
+
version: '2.3'
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: '
|
84
|
+
version: '2.3'
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: yard
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -167,17 +167,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
167
167
|
requirements:
|
168
168
|
- - ">="
|
169
169
|
- !ruby/object:Gem::Version
|
170
|
-
version:
|
170
|
+
version: 2.2.2
|
171
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
172
|
requirements:
|
173
|
-
- - "
|
173
|
+
- - ">"
|
174
174
|
- !ruby/object:Gem::Version
|
175
|
-
version:
|
175
|
+
version: 1.3.1
|
176
176
|
requirements: []
|
177
177
|
rubyforge_project: rdf
|
178
|
-
rubygems_version: 2.
|
178
|
+
rubygems_version: 2.6.8
|
179
179
|
signing_key:
|
180
180
|
specification_version: 4
|
181
181
|
summary: RSpec extensions for RDF.rb.
|
182
182
|
test_files: []
|
183
|
-
has_rdoc: false
|