rdf-spec 1.1.0p4 → 1.1.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 +6 -14
- data/VERSION +1 -1
- data/lib/rdf/spec/enumerable.rb +53 -12
- data/lib/rdf/spec/matchers.rb +8 -1
- data/lib/rdf/spec/queryable.rb +52 -35
- metadata +14 -14
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
MDg5MGQ3MTlhMTVjODlmZThjN2VmM2Q0YzkyMDY0YzU0ZGU0YmM5ODRlZTFh
|
10
|
-
MGIzMmY3MDUyOTFkNjgzMTE1ZDFjNDQwM2Q2ZDgyMzE0ODRmZWQxNDY1OTll
|
11
|
-
NWIwYTJhZTQxYTJhNWRmYTI0OGRhYmYzMjRhOWNkODI0MWU1ZjE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
YjFiMjcxZGNlYjA2ZWI1MzZlZmU0MDhmMDlhYTcxYzkzNGIyMGJhOGFiOTc4
|
14
|
-
N2I2M2RkOWFhOWU5OTI1MDE0NTk0YWQ2YzI5MWRhMzZhOGQ2YTQ2MjY0MDI0
|
15
|
-
Y2ExYzk0YjFkOTAwZGRjMzJlMDEyMjQ4OTM1NzkzNTEzMDlkZDY=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 55b304bd99801d0dff43b5fc240bb1d8feb1b3cf
|
4
|
+
data.tar.gz: d7513635a1111bf62e220aa65b7e5e46852a80d6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bdd77291081628c58b77b65eb7b0bf293e8b2a077c24b0bca4a486a9322c78227fc6328b9a36c71c415ea68674fd8a0b743e838d1f15be2130389a85fa9a920f
|
7
|
+
data.tar.gz: 0bdb0547949d73aa6f49d8d471c7cbf1b8db89836683cb3b6fa23be9d46e6ee18737df1ea04da301d9dbd2be79d706c7076d5165b7fcf73b5c1d52927ec23874
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.0
|
data/lib/rdf/spec/enumerable.rb
CHANGED
@@ -29,14 +29,24 @@ module RDF_Enumerable
|
|
29
29
|
it {should respond_to(:supports?)}
|
30
30
|
|
31
31
|
describe "valid?" do
|
32
|
-
it
|
32
|
+
it "reports validity" do
|
33
|
+
if subject.supports?(:validity)
|
34
|
+
should be_valid
|
35
|
+
else
|
36
|
+
expect {subject.valid?}.to raise_error(NotImplementedError)
|
37
|
+
end
|
38
|
+
end
|
33
39
|
|
34
40
|
it "returns false if any statement is invalid" do
|
35
41
|
if subject.respond_to?(:<<) && (subject.writable? rescue true)
|
36
42
|
s = RDF::Statement.from([nil, nil, nil])
|
37
|
-
|
38
|
-
|
39
|
-
|
43
|
+
if subject.supports?(:validity)
|
44
|
+
expect(s).not_to be_valid
|
45
|
+
subject << s
|
46
|
+
expect(subject).not_to be_valid
|
47
|
+
else
|
48
|
+
expect {subject.valid?}.to raise_error(NotImplementedError)
|
49
|
+
end
|
40
50
|
else
|
41
51
|
pending("can't add statement to immutable enumerable")
|
42
52
|
end
|
@@ -107,7 +117,11 @@ module RDF_Enumerable
|
|
107
117
|
its(:enum_statement) {should be_queryable}
|
108
118
|
context "#enum_statement" do
|
109
119
|
it "should enumerate all statements" do
|
110
|
-
expect(subject.enum_statement.
|
120
|
+
expect(subject.enum_statement.count).to eq @enumerable.each_statement.count
|
121
|
+
subject.enum_statement.each do |s|
|
122
|
+
expect(s).to be_a_statement
|
123
|
+
expect(@enumerable.each_statement.to_a).to include(s) unless s.has_blank_nodes?
|
124
|
+
end
|
111
125
|
end
|
112
126
|
end
|
113
127
|
end
|
@@ -135,13 +149,23 @@ module RDF_Enumerable
|
|
135
149
|
its(:each_triple) {should be_an_enumerator}
|
136
150
|
context "#each_triple" do
|
137
151
|
specify {subject.each_triple { |*triple| expect(triple).to be_a_triple }}
|
152
|
+
it "should iterate over all triples" do
|
153
|
+
subject.each_triple do |*triple|
|
154
|
+
triple.each {|r| expect(r).to be_a_term}
|
155
|
+
expect(@enumerable).to have_triple(triple) unless triple.any?(&:node?)
|
156
|
+
end
|
157
|
+
end
|
138
158
|
end
|
139
159
|
|
140
160
|
its(:enum_triple) {should be_an_enumerator}
|
141
161
|
its(:enum_triple) {should be_countable}
|
142
162
|
context "#enum_triple" do
|
143
163
|
it "should enumerate all triples" do
|
144
|
-
expect(subject.enum_triple.
|
164
|
+
expect(subject.enum_triple.count).to eq @enumerable.each_triple.count
|
165
|
+
subject.enum_triple.each do |s, p, o|
|
166
|
+
[s, p, o].each {|r| expect(r).to be_a_term}
|
167
|
+
expect(@enumerable).to have_triple([s, p, o]) unless [s, p, o].any?(&:node?)
|
168
|
+
end
|
145
169
|
end
|
146
170
|
end
|
147
171
|
end
|
@@ -171,13 +195,23 @@ module RDF_Enumerable
|
|
171
195
|
its(:each_quad) {should be_an_enumerator}
|
172
196
|
context "#each_quad" do
|
173
197
|
specify {subject.each_quad {|*quad| expect(quad).to be_a_quad }}
|
198
|
+
it "should iterate over all quads" do
|
199
|
+
subject.each_quad do |*quad|
|
200
|
+
quad.compact.each {|r| expect(r).to be_a_term}
|
201
|
+
expect(@enumerable).to have_quad(quad) unless quad.compact.any?(&:node?)
|
202
|
+
end
|
203
|
+
end
|
174
204
|
end
|
175
205
|
|
176
206
|
its(:enum_quad) {should be_an_enumerator}
|
177
207
|
its(:enum_quad) {should be_countable}
|
178
208
|
context "#enum_quad" do
|
179
209
|
it "should enumerate all quads" do
|
180
|
-
expect(subject.enum_quad.
|
210
|
+
expect(subject.enum_quad.count).to eq @enumerable.each_quad.count
|
211
|
+
subject.enum_quad.each do |s, p, o, c|
|
212
|
+
[s, p, o, c].compact.each {|r| expect(r).to be_a_term}
|
213
|
+
expect(@enumerable).to have_quad([s, p, o, c]) unless [s, p, o].any?(&:node?)
|
214
|
+
end
|
181
215
|
end
|
182
216
|
end
|
183
217
|
end
|
@@ -215,7 +249,7 @@ module RDF_Enumerable
|
|
215
249
|
|
216
250
|
its(:each_subject) {should be_an_enumerator}
|
217
251
|
context "#each_subject" do
|
218
|
-
specify {expect(subject.each_subject.reject(&:node?).size).to eq subjects.size}
|
252
|
+
specify {expect(subject.each_subject.reject(&:node?).size).to eq subjects.reject(&:node?).size}
|
219
253
|
specify {subject.each_subject {|value| expect(value).to be_a_resource}}
|
220
254
|
specify {subject.each_subject {|value| expect(subjects).to include(value) unless value.node?}}
|
221
255
|
end
|
@@ -223,8 +257,12 @@ module RDF_Enumerable
|
|
223
257
|
its(:enum_subject) {should be_an_enumerator}
|
224
258
|
its(:enum_subject) {should be_countable}
|
225
259
|
context "#enum_subject" do
|
260
|
+
specify {expect(subject.enum_subject.to_a.reject(&:node?).size).to eq subjects.reject(&:node?).size}
|
226
261
|
it "should enumerate all subjects" do
|
227
|
-
|
262
|
+
subject.enum_subject.each do |s|
|
263
|
+
expect(s).to be_a_resource
|
264
|
+
expect(subjects.to_a).to include(s) unless s.node?
|
265
|
+
end
|
228
266
|
end
|
229
267
|
end
|
230
268
|
end
|
@@ -318,7 +356,10 @@ module RDF_Enumerable
|
|
318
356
|
its(:enum_object) {should be_countable}
|
319
357
|
context "#enum_object" do
|
320
358
|
it "should enumerate all objects" do
|
321
|
-
|
359
|
+
subject.enum_object.each do |o|
|
360
|
+
expect(o).to be_a_term
|
361
|
+
expect(objects.to_a).to include(o) unless o.node?
|
362
|
+
end
|
322
363
|
end
|
323
364
|
end
|
324
365
|
end
|
@@ -398,8 +439,8 @@ module RDF_Enumerable
|
|
398
439
|
subject {@enumerable.enum_graph}
|
399
440
|
it {should be_an_enumerator}
|
400
441
|
it {should be_countable}
|
401
|
-
it "enumerates the same as #each_graph" do
|
402
|
-
subject.to_a.
|
442
|
+
it "enumerates the same as #each_graph", :pending => "graph inclusion issue" do
|
443
|
+
expect(subject.to_a).to include(*@enumerable.each_graph.to_a) if @supports_context # expect with match problematic
|
403
444
|
end
|
404
445
|
end
|
405
446
|
end
|
data/lib/rdf/spec/matchers.rb
CHANGED
@@ -22,7 +22,7 @@ module RDF; module Spec
|
|
22
22
|
|
23
23
|
RSpec::Matchers.define :be_an_enumerator do
|
24
24
|
match do |enumerator|
|
25
|
-
expect(enumerator).to be_a_kind_of(
|
25
|
+
expect(enumerator).to be_a_kind_of(Enumerator)
|
26
26
|
true
|
27
27
|
end
|
28
28
|
end
|
@@ -74,6 +74,13 @@ module RDF; module Spec
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
RSpec::Matchers.define :be_a_term do
|
78
|
+
match do |value|
|
79
|
+
expect(value).to be_a_kind_of(RDF::Term)
|
80
|
+
true
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
77
84
|
RSpec::Matchers.define :be_a_resource do
|
78
85
|
match do |value|
|
79
86
|
expect(value).to be_a_kind_of(RDF::Resource)
|
data/lib/rdf/spec/queryable.rb
CHANGED
@@ -18,11 +18,11 @@ module RDF_Queryable
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
21
|
-
let(:resource) {RDF::URI('http://rubygems.org/gems/rdf')}
|
22
|
-
let(:literal) {RDF::Literal.new('J. Random Hacker')}
|
23
21
|
|
24
22
|
describe RDF::Queryable do
|
25
23
|
subject {@queryable}
|
24
|
+
let(:resource) {RDF::URI('http://rubygems.org/gems/rdf')}
|
25
|
+
let(:literal) {RDF::Literal.new('J. Random Hacker')}
|
26
26
|
let(:query) {RDF::Query.new {pattern [:s, :p, :o]}}
|
27
27
|
|
28
28
|
##
|
@@ -86,6 +86,7 @@ module RDF_Queryable
|
|
86
86
|
subject.query([:s, :p, :o]) {}
|
87
87
|
end
|
88
88
|
end
|
89
|
+
|
89
90
|
context "with a Query argument" do
|
90
91
|
it "yields statements" do
|
91
92
|
subject.query(query) do |solution|
|
@@ -103,49 +104,65 @@ module RDF_Queryable
|
|
103
104
|
end
|
104
105
|
|
105
106
|
context "without a block" do
|
106
|
-
|
107
|
-
|
108
|
-
|
107
|
+
context "with a triple argument" do
|
108
|
+
it "returns an enumerator" do
|
109
|
+
expect(subject.query([nil, nil, nil])).to be_an_enumerator
|
110
|
+
end
|
109
111
|
|
110
|
-
|
111
|
-
|
112
|
-
|
112
|
+
it "returns an enumerable enumerator" do
|
113
|
+
expect(subject.query([nil, nil, nil])).to be_enumerable
|
114
|
+
end
|
113
115
|
|
114
|
-
|
115
|
-
|
116
|
-
|
116
|
+
it "returns a queryable enumerator" do
|
117
|
+
expect(subject.query([nil, nil, nil])).to be_queryable
|
118
|
+
end
|
117
119
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
120
|
+
it "returns statements given a triple" do
|
121
|
+
subject.query([nil, nil, nil]).each do |statement|
|
122
|
+
expect(statement).to be_a_statement
|
123
|
+
expect(statement).not_to be_a RDF::Query::Solution
|
124
|
+
end
|
122
125
|
end
|
123
126
|
end
|
124
127
|
|
125
|
-
|
126
|
-
|
127
|
-
expect(
|
128
|
-
expect(solution).to be_a RDF::Query::Solution
|
128
|
+
context "with a Query argument" do
|
129
|
+
it "returns solutions" do
|
130
|
+
expect(subject.query(query)).to be_a(RDF::Query::Solutions)
|
129
131
|
end
|
130
|
-
end
|
131
132
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
expect(subject.query([RDF::URI("http://ar.to/#self"), nil, nil]).size).to eq File.readlines(@doap).grep(/^<http:\/\/ar.to\/\#self>/).size
|
136
|
-
expect(subject.query([resource, RDF::DOAP.name, nil]).size).to eq 1
|
137
|
-
expect(subject.query([nil, nil, RDF::DOAP.Project]).size).to eq 1
|
138
|
-
end
|
133
|
+
it "does not return an enumerable enumerator" do
|
134
|
+
expect(subject.query(query)).not_to be_enumerable
|
135
|
+
end
|
139
136
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
expect(subject.query(:subject => resource, :predicate => RDF::DOAP.name).size).to eq 1
|
144
|
-
expect(subject.query(:object => RDF::DOAP.Project).size).to eq 1
|
145
|
-
end
|
137
|
+
it "does not return a queryable enumerator" do
|
138
|
+
expect(subject.query(query)).not_to be_queryable
|
139
|
+
end
|
146
140
|
|
147
|
-
|
148
|
-
|
141
|
+
it "returns solutions given a query" do
|
142
|
+
subject.query(query).each do |solution|
|
143
|
+
expect(solution).not_to be_a_statement
|
144
|
+
expect(solution).to be_a RDF::Query::Solution
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
it "returns the correct number of results for array queries" do
|
149
|
+
expect(subject.query([nil, nil, nil]).size).to eq @statements.size
|
150
|
+
expect(subject.query([resource, nil, nil]).size).to eq File.readlines(@doap).grep(/^<http:\/\/rubygems\.org\/gems\/rdf>/).size
|
151
|
+
expect(subject.query([RDF::URI("http://ar.to/#self"), nil, nil]).size).to eq File.readlines(@doap).grep(/^<http:\/\/ar.to\/\#self>/).size
|
152
|
+
expect(subject.query([resource, RDF::DOAP.name, nil]).size).to eq 1
|
153
|
+
expect(subject.query([nil, nil, RDF::DOAP.Project]).size).to eq 1
|
154
|
+
end
|
155
|
+
|
156
|
+
it "returns the correct number of results for hash queries" do
|
157
|
+
expect(subject.query({}).size).to eq @statements.size
|
158
|
+
expect(subject.query(:subject => resource).size).to eq File.readlines(@doap).grep(/^<http:\/\/rubygems\.org\/gems\/rdf>/).size
|
159
|
+
expect(subject.query(:subject => resource, :predicate => RDF::DOAP.name).size).to eq 1
|
160
|
+
expect(subject.query(:object => RDF::DOAP.Project).size).to eq 1
|
161
|
+
end
|
162
|
+
|
163
|
+
it "returns the correct number of results for query queries" do
|
164
|
+
expect(subject.query(query).size).to eq @statements.size
|
165
|
+
end
|
149
166
|
end
|
150
167
|
end
|
151
168
|
|
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: 1.1.
|
4
|
+
version: 1.1.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: 2013-
|
13
|
+
date: 2013-11-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdf
|
@@ -18,40 +18,40 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.1
|
21
|
+
version: '1.1'
|
22
22
|
type: :development
|
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: 1.1
|
28
|
+
version: '1.1'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rspec
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - '>='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '2.
|
35
|
+
version: '2.14'
|
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: '2.
|
42
|
+
version: '2.14'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: yard
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - '>='
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '0.8'
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - '>='
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '0.8'
|
57
57
|
description: RDF.rb plugin that provides RSpec matchers and shared examples for RDF
|
@@ -102,17 +102,17 @@ require_paths:
|
|
102
102
|
- lib
|
103
103
|
required_ruby_version: !ruby/object:Gem::Requirement
|
104
104
|
requirements:
|
105
|
-
- -
|
105
|
+
- - '>='
|
106
106
|
- !ruby/object:Gem::Version
|
107
107
|
version: 1.9.2
|
108
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
|
-
- -
|
110
|
+
- - '>='
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version:
|
112
|
+
version: '0'
|
113
113
|
requirements: []
|
114
114
|
rubyforge_project: rdf
|
115
|
-
rubygems_version: 2.
|
115
|
+
rubygems_version: 2.1.11
|
116
116
|
signing_key:
|
117
117
|
specification_version: 4
|
118
118
|
summary: RSpec extensions for RDF.rb.
|