rdf-spec 2.2.0 → 3.0.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 +5 -5
- data/README.md +2 -2
- data/VERSION +1 -1
- data/etc/doap.nt +2 -2
- data/etc/quads.nq +1 -1
- data/etc/triples.nt +1 -1
- data/lib/rdf/spec.rb +2 -0
- data/lib/rdf/spec/enumerable.rb +0 -12
- data/lib/rdf/spec/http_adapter.rb +2 -0
- data/lib/rdf/spec/matchers.rb +36 -14
- data/lib/rdf/spec/reader.rb +91 -40
- data/lib/rdf/spec/writer.rb +29 -36
- data/spec/literal_spec.rb +2 -2
- metadata +16 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 55c31bab33a2dc7cc1c62abaa30fad175fe9ef7d86fe7829a2b314b637415f10
|
|
4
|
+
data.tar.gz: 3ff601a8bc5d1805aa6ae0ccf15423ebf26e33a3c9a34ba49c539ad7096f70ad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d2c23be61c1f038c029a248e7cbf32b6ab0aca33ace482ea1c87b427db560e08fa6c72149372a2c731ded61aac3401447e7f9711e13d4344dbb97d9a4ffb8272
|
|
7
|
+
data.tar.gz: f28c1b26da93bf7959fda4fdb7e52183c1d7620fc713854000d4890d2a14eb25836daf8b5446174153806b9d80e16dea8b2e6a0d27ec69b9248c2aec61d264fe
|
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) (~> 3.
|
|
34
|
+
* [RDF.rb](http://rubygems.org/gems/rdf) (~> 3.0)
|
|
35
|
+
* [RSpec](http://rubygems.org/gems/rspec) (~> 3.7)
|
|
36
36
|
|
|
37
37
|
## Installation
|
|
38
38
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.0.0
|
data/etc/doap.nt
CHANGED
|
@@ -38,8 +38,8 @@ _:g70121455472480 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "bedbbf2451e5beb38d59
|
|
|
38
38
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/TR/rdf-concepts/> .
|
|
39
39
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://sw.deri.org/2008/07/n-quads/> .
|
|
40
40
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/2001/sw/RDFCore/ntriples/> .
|
|
41
|
-
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#download-page> <http://
|
|
42
|
-
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#bug-database> <http://github.com/ruby-rdf/rdf/issues> .
|
|
41
|
+
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#download-page> <http://rubygems.org/gems/rdf-spec/> .
|
|
42
|
+
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#bug-database> <http://github.com/ruby-rdf/rdf-spec/issues> .
|
|
43
43
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://ar.to/> .
|
|
44
44
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://blog.datagraph.org/> .
|
|
45
45
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#vendor> <http://datagraph.org/> .
|
data/etc/quads.nq
CHANGED
|
@@ -38,7 +38,7 @@ _:g70121455472480 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "bedbbf2451e5beb38d59
|
|
|
38
38
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/TR/rdf-concepts/> .
|
|
39
39
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://sw.deri.org/2008/07/n-quads/> .
|
|
40
40
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/2001/sw/RDFCore/ntriples/> .
|
|
41
|
-
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#download-page> <http://
|
|
41
|
+
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#download-page> <http://http://github.com/ruby-rdf/rdf/> .
|
|
42
42
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#bug-database> <http://github.com/ruby-rdf/rdf/issues> .
|
|
43
43
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://ar.to/> .
|
|
44
44
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://blog.datagraph.org/> .
|
data/etc/triples.nt
CHANGED
|
@@ -38,7 +38,7 @@ _:g70121455472480 <http://xmlns.com/foaf/0.1/mbox_sha1sum> "bedbbf2451e5beb38d59
|
|
|
38
38
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/TR/rdf-concepts/> .
|
|
39
39
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://sw.deri.org/2008/07/n-quads/> .
|
|
40
40
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#implements> <http://www.w3.org/2001/sw/RDFCore/ntriples/> .
|
|
41
|
-
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#download-page> <http://
|
|
41
|
+
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#download-page> <http://http://github.com/ruby-rdf/rdf/> .
|
|
42
42
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#bug-database> <http://github.com/ruby-rdf/rdf/issues> .
|
|
43
43
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://ar.to/> .
|
|
44
44
|
<http://rubygems.org/gems/rdf> <http://usefulinc.com/ns/doap#blog> <http://blog.datagraph.org/> .
|
data/lib/rdf/spec.rb
CHANGED
data/lib/rdf/spec/enumerable.rb
CHANGED
|
@@ -514,23 +514,11 @@ RSpec.shared_examples 'an RDF::Enumerable' do
|
|
|
514
514
|
context "when converting" do
|
|
515
515
|
it {is_expected.to respond_to(:to_h)}
|
|
516
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
517
|
describe "#to_h" do
|
|
523
518
|
it "should have as many keys as subjects" do
|
|
524
519
|
expect(subject.to_h.keys.size).to eq enumerable.subjects.to_a.size
|
|
525
520
|
end
|
|
526
521
|
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)
|
|
532
|
-
end
|
|
533
|
-
end
|
|
534
522
|
end
|
|
535
523
|
|
|
536
524
|
context "when dumping" do
|
|
@@ -9,6 +9,8 @@ RSpec.shared_examples 'an RDF::HttpAdapter' do
|
|
|
9
9
|
raise '`http_adapter` must be defined with `let(:http_adapter`' unless
|
|
10
10
|
defined? http_adapter
|
|
11
11
|
end
|
|
12
|
+
before(:each) {WebMock.disable_net_connect!}
|
|
13
|
+
after(:each) {WebMock.allow_net_connect!}
|
|
12
14
|
|
|
13
15
|
let(:uri) {"http://ruby-rdf.github.com/rdf/etc/doap.nt"}
|
|
14
16
|
|
data/lib/rdf/spec/matchers.rb
CHANGED
|
@@ -269,20 +269,6 @@ module RDF; module Spec
|
|
|
269
269
|
|
|
270
270
|
RSpec::Matchers.define :be_equivalent_graph do |expected, info|
|
|
271
271
|
match do |actual|
|
|
272
|
-
def normalize(graph)
|
|
273
|
-
case graph
|
|
274
|
-
when RDF::Enumerable then graph
|
|
275
|
-
when IO, StringIO
|
|
276
|
-
RDF::Repository.new(graph, base_uri: @info.action)
|
|
277
|
-
else
|
|
278
|
-
# Figure out which parser to use
|
|
279
|
-
r = RDF::Repository.new
|
|
280
|
-
reader_class = RDF::Reader.for() {graph}
|
|
281
|
-
reader_class.new(graph, base_uri: @info.action).each {|s| r << s}
|
|
282
|
-
r
|
|
283
|
-
end
|
|
284
|
-
end
|
|
285
|
-
|
|
286
272
|
@info = if (info.id rescue false)
|
|
287
273
|
info
|
|
288
274
|
elsif info.is_a?(Logger)
|
|
@@ -314,6 +300,33 @@ module RDF; module Spec
|
|
|
314
300
|
"Results:\n#{@actual.dump(format, standard_prefixes: true, literal_shorthand: false, validate: false) rescue @actual.inspect}" +
|
|
315
301
|
"\nDebug:\n#{@info.logger}"
|
|
316
302
|
end
|
|
303
|
+
|
|
304
|
+
failure_message_when_negated do |actual|
|
|
305
|
+
format = case
|
|
306
|
+
when RDF.const_defined?(:TriG) then :trig
|
|
307
|
+
when RDF.const_defined?(:Turtle) then :ttl
|
|
308
|
+
else :nquads
|
|
309
|
+
end
|
|
310
|
+
info = @info.respond_to?(:information) ? @info.information : @info.inspect
|
|
311
|
+
"Graphs identical\n" +
|
|
312
|
+
"\n#{info + "\n" unless info.empty?}" +
|
|
313
|
+
"Results:\n#{actual.dump(format, standard_prefixes: true, literal_shorthand: false, validate: false) rescue @actual.inspect}" +
|
|
314
|
+
"\nDebug:\n#{@info.logger}"
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
def normalize(graph)
|
|
318
|
+
case graph
|
|
319
|
+
when RDF::Enumerable then graph
|
|
320
|
+
when IO, StringIO
|
|
321
|
+
RDF::Repository.new(graph, base_uri: @info.action)
|
|
322
|
+
else
|
|
323
|
+
# Figure out which parser to use
|
|
324
|
+
r = RDF::Repository.new
|
|
325
|
+
reader_class = RDF::Reader.for() {graph}
|
|
326
|
+
reader_class.new(graph, base_uri: @info.action).each {|s| r << s}
|
|
327
|
+
r
|
|
328
|
+
end
|
|
329
|
+
end
|
|
317
330
|
end
|
|
318
331
|
|
|
319
332
|
require 'json'
|
|
@@ -347,6 +360,15 @@ module RDF; module Spec
|
|
|
347
360
|
"\n#{info + "\n" unless info.empty?}" +
|
|
348
361
|
"\nDebug:\n#{@info.logger}"
|
|
349
362
|
end
|
|
363
|
+
|
|
364
|
+
failure_message_when_negated do |actual|
|
|
365
|
+
info = @info.respond_to?(:information) ? @info.information : @info.inspect
|
|
366
|
+
|
|
367
|
+
"Expected not to produce the following:\n" +
|
|
368
|
+
"Actual : #{actual.is_a?(String) ? actual : actual.to_json(JSON_STATE) rescue 'malformed json'}\n" +
|
|
369
|
+
"\n#{info + "\n" unless info.empty?}" +
|
|
370
|
+
"\nDebug:\n#{@info.logger}"
|
|
371
|
+
end
|
|
350
372
|
end
|
|
351
373
|
|
|
352
374
|
end # Matchers
|
data/lib/rdf/spec/reader.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'rdf/spec'
|
|
2
|
+
require 'webmock/rspec'
|
|
2
3
|
|
|
3
4
|
RSpec.shared_examples 'an RDF::Reader' do
|
|
4
5
|
include RDF::Spec::Matchers
|
|
@@ -9,8 +10,11 @@ RSpec.shared_examples 'an RDF::Reader' do
|
|
|
9
10
|
raise 'reader_count must be defined with let(:reader_count)' unless defined? reader_count
|
|
10
11
|
# define reader_invalid_input for invalid input
|
|
11
12
|
end
|
|
13
|
+
before(:each) {WebMock.disable_net_connect!}
|
|
14
|
+
after(:each) {WebMock.allow_net_connect!}
|
|
12
15
|
|
|
13
16
|
let(:reader_class) { reader.class }
|
|
17
|
+
let(:format_class) { reader_class.format }
|
|
14
18
|
|
|
15
19
|
describe ".each" do
|
|
16
20
|
it "yields each reader" do
|
|
@@ -21,70 +25,117 @@ RSpec.shared_examples 'an RDF::Reader' do
|
|
|
21
25
|
end
|
|
22
26
|
|
|
23
27
|
describe ".open" do
|
|
24
|
-
before(:each) do
|
|
25
|
-
allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(reader_input))
|
|
26
|
-
end
|
|
27
|
-
|
|
28
28
|
it "yields reader given file_name" do
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
end
|
|
29
|
+
allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(reader_input))
|
|
30
|
+
format_class.file_extensions.each_pair do |sym, content_type|
|
|
31
|
+
reader_mock = double("reader")
|
|
32
|
+
expect(reader_mock).to receive(:got_here)
|
|
33
|
+
expect(RDF::Reader).to receive(:for).with(file_name: "foo.#{sym}").and_return(reader_class)
|
|
34
|
+
RDF::Reader.open("foo.#{sym}") do |r|
|
|
35
|
+
expect(r).to be_a(reader_class)
|
|
36
|
+
reader_mock.got_here
|
|
38
37
|
end
|
|
39
38
|
end
|
|
40
39
|
end
|
|
41
40
|
|
|
42
41
|
it "yields reader given symbol" do
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(reader_input))
|
|
43
|
+
sym = format_class.to_sym # Like RDF::NTriples::Format => :ntriples
|
|
44
|
+
reader_mock = double("reader")
|
|
45
|
+
expect(reader_mock).to receive(:got_here)
|
|
46
|
+
expect(RDF::Reader).to receive(:for).with(sym).and_return(reader_class)
|
|
47
|
+
RDF::Reader.open("foo.#{sym}", format: sym) do |r|
|
|
48
|
+
expect(r).to be_a(reader_class)
|
|
49
|
+
reader_mock.got_here
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "yields reader given {file_name: file_name}" do
|
|
54
|
+
allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(reader_input))
|
|
55
|
+
format_class.file_extensions.each_pair do |sym, content_type|
|
|
45
56
|
reader_mock = double("reader")
|
|
46
57
|
expect(reader_mock).to receive(:got_here)
|
|
47
|
-
expect(
|
|
48
|
-
|
|
49
|
-
expect(r).to be_a(
|
|
58
|
+
expect(RDF::Reader).to receive(:for).with(file_name: "foo.#{sym}").and_return(reader_class)
|
|
59
|
+
RDF::Reader.open("foo.#{sym}", file_name: "foo.#{sym}") do |r|
|
|
60
|
+
expect(r).to be_a(reader_class)
|
|
50
61
|
reader_mock.got_here
|
|
51
62
|
end
|
|
52
63
|
end
|
|
53
64
|
end
|
|
54
65
|
|
|
55
|
-
it "yields reader given {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
end
|
|
66
|
+
it "yields reader given {content_type: 'a/b'}" do
|
|
67
|
+
allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(reader_input))
|
|
68
|
+
format_class.content_types.each_pair do |content_type, formats|
|
|
69
|
+
reader_mock = double("reader")
|
|
70
|
+
expect(reader_mock).to receive(:got_here)
|
|
71
|
+
expect(RDF::Reader).to receive(:for).with(content_type: content_type, file_name: "foo").and_return(reader_class)
|
|
72
|
+
RDF::Reader.open("foo", content_type: content_type) do |r|
|
|
73
|
+
expect(r).to be_a(reader_class)
|
|
74
|
+
reader_mock.got_here
|
|
65
75
|
end
|
|
66
76
|
end
|
|
67
77
|
end
|
|
68
78
|
|
|
69
|
-
it "yields reader
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
+
it "yields reader when returned content_type matches" do
|
|
80
|
+
format_class.content_types.each_pair do |content_type, formats|
|
|
81
|
+
uri = "http://example/foo"
|
|
82
|
+
reader_mock = double("reader")
|
|
83
|
+
expect(reader_mock).to receive(:got_here)
|
|
84
|
+
expect(RDF::Reader).to receive(:for).and_return(reader_class)
|
|
85
|
+
|
|
86
|
+
WebMock.stub_request(:get, uri).
|
|
87
|
+
to_return(body: "BODY",
|
|
88
|
+
status: 200,
|
|
89
|
+
headers: { 'Content-Type' => content_type})
|
|
90
|
+
|
|
91
|
+
RDF::Reader.open(uri) do |r|
|
|
92
|
+
expect(r).to be_a(reader_class)
|
|
93
|
+
reader_mock.got_here
|
|
79
94
|
end
|
|
80
95
|
end
|
|
81
96
|
end
|
|
97
|
+
|
|
98
|
+
it "sets Accept header from reader" do
|
|
99
|
+
uri = "http://example/foo"
|
|
100
|
+
accept = (format_class.accept_type + %w(*/*;q=0.1)).join(", ")
|
|
101
|
+
reader_mock = double("reader")
|
|
102
|
+
expect(reader_mock).to receive(:got_here)
|
|
103
|
+
WebMock.stub_request(:get, uri).with do |request|
|
|
104
|
+
expect(request.headers['Accept']).to eql accept
|
|
105
|
+
end.to_return(body: "foo")
|
|
106
|
+
|
|
107
|
+
reader_class.open(uri) do |r|
|
|
108
|
+
expect(r).to be_a(reader_class)
|
|
109
|
+
reader_mock.got_here
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
it "sets Accept header from symbol" do
|
|
114
|
+
uri = "http://example/foo"
|
|
115
|
+
sym = format_class.to_sym # Like RDF::NTriples::Format => :ntriples
|
|
116
|
+
accept = (format_class.accept_type + %w(*/*;q=0.1)).join(", ")
|
|
117
|
+
reader_mock = double("reader")
|
|
118
|
+
expect(reader_mock).to receive(:got_here)
|
|
119
|
+
WebMock.stub_request(:get, uri).with do |request|
|
|
120
|
+
expect(request.headers['Accept']).to eql accept
|
|
121
|
+
end.to_return(body: "foo")
|
|
122
|
+
expect(RDF::Reader).to receive(:for).with(sym).and_return(reader_class)
|
|
123
|
+
|
|
124
|
+
RDF::Reader.open(uri, format: sym) do |r|
|
|
125
|
+
expect(r).to be_a(reader_class)
|
|
126
|
+
reader_mock.got_here
|
|
127
|
+
end
|
|
128
|
+
end
|
|
82
129
|
end
|
|
83
130
|
|
|
84
131
|
describe ".format" do
|
|
85
|
-
it "returns
|
|
132
|
+
it "returns a format class if given no format" do
|
|
133
|
+
expect(reader_class.format).not_to be_nil
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
it "returns nil if given a format" do
|
|
86
137
|
other_format = reader_class == RDF::NTriples::Reader ? :nquads : :ntriples
|
|
87
|
-
expect(reader_class.
|
|
138
|
+
expect(reader_class.format(other_format)).to be_nil
|
|
88
139
|
end
|
|
89
140
|
end
|
|
90
141
|
|
data/lib/rdf/spec/writer.rb
CHANGED
|
@@ -11,6 +11,7 @@ RSpec.shared_examples 'an RDF::Writer' do
|
|
|
11
11
|
end
|
|
12
12
|
let(:writer_class) { writer.class }
|
|
13
13
|
let(:reader_class) { writer_class.format.reader}
|
|
14
|
+
let(:format_class) { writer_class.format }
|
|
14
15
|
|
|
15
16
|
describe ".each" do
|
|
16
17
|
it "yields each writer" do
|
|
@@ -63,56 +64,48 @@ RSpec.shared_examples 'an RDF::Writer' do
|
|
|
63
64
|
end
|
|
64
65
|
|
|
65
66
|
it "yields writer given file_name" do
|
|
66
|
-
|
|
67
|
-
f.file_extensions.each_pair do |sym, content_type|
|
|
68
|
-
writer_mock = double("writer")
|
|
69
|
-
expect(writer_mock).to receive(:got_here)
|
|
70
|
-
expect(writer_class).to receive(:for).with(file_name: "#{@basename}.#{sym}").and_return(writer_class)
|
|
71
|
-
writer_class.open("#{@basename}.#{sym}") do |r|
|
|
72
|
-
expect(r).to be_a(RDF::Writer)
|
|
73
|
-
writer_mock.got_here
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
it "yields writer given symbol" do
|
|
80
|
-
writer_class.format.each do |f|
|
|
81
|
-
sym = f.to_sym # Like RDF::NTriples::Format => :ntriples
|
|
67
|
+
format_class.file_extensions.each_pair do |sym, content_type|
|
|
82
68
|
writer_mock = double("writer")
|
|
83
69
|
expect(writer_mock).to receive(:got_here)
|
|
84
|
-
expect(writer_class).to receive(:for).with(sym).and_return(writer_class)
|
|
85
|
-
writer_class.open("#{@basename}.#{sym}"
|
|
70
|
+
expect(writer_class).to receive(:for).with(file_name: "#{@basename}.#{sym}").and_return(writer_class)
|
|
71
|
+
writer_class.open("#{@basename}.#{sym}") do |r|
|
|
86
72
|
expect(r).to be_a(RDF::Writer)
|
|
87
73
|
writer_mock.got_here
|
|
88
74
|
end
|
|
89
75
|
end
|
|
90
76
|
end
|
|
91
77
|
|
|
78
|
+
it "yields writer given symbol" do
|
|
79
|
+
sym = format_class.to_sym # Like RDF::NTriples::Format => :ntriples
|
|
80
|
+
writer_mock = double("writer")
|
|
81
|
+
expect(writer_mock).to receive(:got_here)
|
|
82
|
+
expect(writer_class).to receive(:for).with(sym).and_return(writer_class)
|
|
83
|
+
writer_class.open("#{@basename}.#{sym}", format: sym) do |r|
|
|
84
|
+
expect(r).to be_a(RDF::Writer)
|
|
85
|
+
writer_mock.got_here
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
92
89
|
it "yields writer given {file_name: file_name}" do
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
writer_mock.got_here
|
|
101
|
-
end
|
|
90
|
+
format_class.file_extensions.each_pair do |sym, content_type|
|
|
91
|
+
writer_mock = double("writer")
|
|
92
|
+
expect(writer_mock).to receive(:got_here)
|
|
93
|
+
expect(writer_class).to receive(:for).with(file_name: "#{@basename}.#{sym}").and_return(writer_class)
|
|
94
|
+
writer_class.open("#{@basename}.#{sym}", file_name: "#{@basename}.#{sym}") do |r|
|
|
95
|
+
expect(r).to be_a(RDF::Writer)
|
|
96
|
+
writer_mock.got_here
|
|
102
97
|
end
|
|
103
98
|
end
|
|
104
99
|
end
|
|
105
100
|
|
|
106
101
|
it "yields writer given {content_type: 'a/b'}" do
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
writer_mock.got_here
|
|
115
|
-
end
|
|
102
|
+
format_class.content_types.each_pair do |content_type, formats|
|
|
103
|
+
writer_mock = double("writer")
|
|
104
|
+
expect(writer_mock).to receive(:got_here)
|
|
105
|
+
expect(writer_class).to receive(:for).with(content_type: content_type, file_name: @basename).and_return(writer_class)
|
|
106
|
+
writer_class.open(@basename, content_type: content_type) do |r|
|
|
107
|
+
expect(r).to be_a(RDF::Writer)
|
|
108
|
+
writer_mock.got_here
|
|
116
109
|
end
|
|
117
110
|
end
|
|
118
111
|
end
|
data/spec/literal_spec.rb
CHANGED
|
@@ -15,8 +15,8 @@ describe RDF::Literal do
|
|
|
15
15
|
%w(0 false)
|
|
16
16
|
]
|
|
17
17
|
it_behaves_like 'RDF::Literal validation', RDF::XSD.boolean,
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
%w(true false 1 0),
|
|
19
|
+
%w(foo 10) + ['true false', 'true foo', 'tRuE' 'FaLsE']
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
describe RDF::Literal::Integer do
|
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:
|
|
4
|
+
version: 3.0.0
|
|
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: 2017-
|
|
13
|
+
date: 2017-12-14 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: rdf
|
|
@@ -18,84 +18,84 @@ dependencies:
|
|
|
18
18
|
requirements:
|
|
19
19
|
- - "~>"
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: '
|
|
21
|
+
version: '3.0'
|
|
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: '
|
|
28
|
+
version: '3.0'
|
|
29
29
|
- !ruby/object:Gem::Dependency
|
|
30
30
|
name: rdf-isomorphic
|
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
|
32
32
|
requirements:
|
|
33
33
|
- - "~>"
|
|
34
34
|
- !ruby/object:Gem::Version
|
|
35
|
-
version: '
|
|
35
|
+
version: '3.0'
|
|
36
36
|
type: :runtime
|
|
37
37
|
prerelease: false
|
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
39
39
|
requirements:
|
|
40
40
|
- - "~>"
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: '
|
|
42
|
+
version: '3.0'
|
|
43
43
|
- !ruby/object:Gem::Dependency
|
|
44
44
|
name: rspec
|
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
|
46
46
|
requirements:
|
|
47
47
|
- - "~>"
|
|
48
48
|
- !ruby/object:Gem::Version
|
|
49
|
-
version: '3.
|
|
49
|
+
version: '3.7'
|
|
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.7'
|
|
57
57
|
- !ruby/object:Gem::Dependency
|
|
58
58
|
name: rspec-its
|
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
|
60
60
|
requirements:
|
|
61
61
|
- - "~>"
|
|
62
62
|
- !ruby/object:Gem::Version
|
|
63
|
-
version: '1.
|
|
63
|
+
version: '1.2'
|
|
64
64
|
type: :runtime
|
|
65
65
|
prerelease: false
|
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
|
67
67
|
requirements:
|
|
68
68
|
- - "~>"
|
|
69
69
|
- !ruby/object:Gem::Version
|
|
70
|
-
version: '1.
|
|
70
|
+
version: '1.2'
|
|
71
71
|
- !ruby/object:Gem::Dependency
|
|
72
72
|
name: webmock
|
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
|
74
74
|
requirements:
|
|
75
75
|
- - "~>"
|
|
76
76
|
- !ruby/object:Gem::Version
|
|
77
|
-
version: '
|
|
77
|
+
version: '3.1'
|
|
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: '3.1'
|
|
85
85
|
- !ruby/object:Gem::Dependency
|
|
86
86
|
name: yard
|
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
|
88
88
|
requirements:
|
|
89
89
|
- - "~>"
|
|
90
90
|
- !ruby/object:Gem::Version
|
|
91
|
-
version:
|
|
91
|
+
version: 0.9.12
|
|
92
92
|
type: :development
|
|
93
93
|
prerelease: false
|
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
|
95
95
|
requirements:
|
|
96
96
|
- - "~>"
|
|
97
97
|
- !ruby/object:Gem::Version
|
|
98
|
-
version:
|
|
98
|
+
version: 0.9.12
|
|
99
99
|
description: RDF.rb extension that provides RSpec matchers and shared examples for
|
|
100
100
|
RDF objects.
|
|
101
101
|
email: public-rdf-ruby@w3.org
|
|
@@ -174,8 +174,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
174
174
|
- !ruby/object:Gem::Version
|
|
175
175
|
version: '0'
|
|
176
176
|
requirements: []
|
|
177
|
-
rubyforge_project:
|
|
178
|
-
rubygems_version: 2.
|
|
177
|
+
rubyforge_project:
|
|
178
|
+
rubygems_version: 2.7.3
|
|
179
179
|
signing_key:
|
|
180
180
|
specification_version: 4
|
|
181
181
|
summary: RSpec extensions for RDF.rb.
|