ld4l-ore_rdf 0.0.7 → 0.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 +4 -4
- data/CHANGES.md +15 -0
- data/README.md +85 -7
- data/ld4l-ore_rdf.gemspec +3 -7
- data/lib/ld4l/ore_rdf/models/aggregation.rb +14 -2
- data/lib/ld4l/ore_rdf/models/proxy_resource.rb +5 -1
- data/lib/ld4l/ore_rdf/services/aggregation/persist.rb +1 -3
- data/lib/ld4l/ore_rdf/services/proxy/create.rb +5 -1
- data/lib/ld4l/ore_rdf/services/proxy/find.rb +5 -1
- data/lib/ld4l/ore_rdf/version.rb +1 -1
- data/spec/ld4l/ore_rdf/configuration_spec.rb +4 -0
- data/spec/ld4l/ore_rdf/models/aggregation_resource_spec.rb +47 -42
- data/spec/ld4l/ore_rdf/models/proxy_resource_spec.rb +26 -25
- data/spec/ld4l/ore_rdf_spec.rb +4 -0
- metadata +34 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e31d9fd5075fcc5d9ca073e2edc850521ff7c2c
|
4
|
+
data.tar.gz: 54e5d4ff97cb4440f19134f7aac22531985ab5c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7afdc0e5c94bc9f31e9ad2129eeb65be6d81fbf1ad8d0441c84169960017eff94f4d3296cd7a5797671318c8412d306145a88cb389eff04d81f1635524cf7b93
|
7
|
+
data.tar.gz: 0f2f08759d02ce86969a0c3b98438f007ee1d343986b5417e9931450a32049f8934cac981142906450b68a7bc5952a6852d9e11ae6bb4a92c11830183a896806
|
data/CHANGES.md
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
0.1.0
|
2
|
+
-----
|
3
|
+
* Updated to work with ActiveTriples 0.5, 0.6, and 0.8.2
|
4
|
+
|
5
|
+
0.0.7 (pre-release)
|
6
|
+
-----
|
7
|
+
* set first_proxy, last_proxy, next_proxy, and prev_proxy
|
8
|
+
|
9
|
+
0.0.6 (pre-release)
|
10
|
+
-----
|
11
|
+
* Fix persist aggregation throws exception when title is blank
|
12
|
+
|
13
|
+
0.0.4 (pre-release)
|
14
|
+
-----
|
15
|
+
* Initial release of gem
|
data/README.md
CHANGED
@@ -45,7 +45,8 @@ ActiveTriples::Repositories.add_repository :default, RDF::Repository.new
|
|
45
45
|
p = LD4L::FoafRDF::Person.new('p4')
|
46
46
|
```
|
47
47
|
|
48
|
-
|
48
|
+
*Example creating an aggregation with items individually.*
|
49
|
+
|
49
50
|
```
|
50
51
|
agg10 = LD4L::OreRDF::CreateAggregation.call( :id=>'agg10', :title=>'My Resources', :description=>'Resources that I like', :owner=>p )
|
51
52
|
|
@@ -55,13 +56,51 @@ LD4L::OreRDF::AddAggregatedResource.call( agg10,'http://exmple.org/resource_3')
|
|
55
56
|
|
56
57
|
LD4L::OreRDF::PersistAggregation.call(agg10)
|
57
58
|
|
58
|
-
puts agg10.dump :ttl
|
59
|
-
|
60
59
|
# To resume the aggregation at a later time, use...
|
61
60
|
agg = LD4L::OreRDF::ResumeAggregation.call( 'agg10' )
|
62
61
|
```
|
62
|
+
*Example triples created for an aggregation.*
|
63
|
+
|
64
|
+
```
|
65
|
+
puts agg.dump :ttl
|
66
|
+
|
67
|
+
<http://localhost/agg10> a <http://www.openarchives.org/ore/terms/Aggregation>;
|
68
|
+
<http://purl.org/dc/terms/title> "My Resources";
|
69
|
+
<http://purl.org/dc/terms/creator> <http://localhost/p4>;
|
70
|
+
<http://purl.org/dc/terms/description> "Resources that I like";
|
71
|
+
<http://www.iana.org/assignments/relation/first> <http://localhost/pxeff9a617-ab30-4d7e-971f-825032a597b0>;
|
72
|
+
<http://www.iana.org/assignments/relation/last> <http://localhost/pxd6577d16-7565-46c7-8b0f-31e7816b0e57>;
|
73
|
+
<http://www.openarchives.org/ore/terms/aggregates> "http://exmple.org/resource_1",
|
74
|
+
"http://exmple.org/resource_2",
|
75
|
+
"http://exmple.org/resource_3" .
|
76
|
+
```
|
77
|
+
|
78
|
+
*Example triples created for each proxy in the list.*
|
79
|
+
```
|
80
|
+
puts agg.first_proxy.first.dump :ttl
|
81
|
+
|
82
|
+
<http://localhost/pxeff9a617-ab30-4d7e-971f-825032a597b0> a <http://www.openarchives.org/ore/terms/Proxy>;
|
83
|
+
<http://www.iana.org/assignments/relation/next> <http://localhost/px0f16c9de-7d97-406d-a81a-a501bc209f79>;
|
84
|
+
<http://www.openarchives.org/ore/terms/proxyFor> "http://exmple.org/resource_1";
|
85
|
+
<http://www.openarchives.org/ore/terms/proxyIn> <http://localhost/agg10> .
|
86
|
+
|
87
|
+
puts agg.first_proxy.first.next_proxy.first.dump :ttl
|
88
|
+
|
89
|
+
<http://localhost/px0f16c9de-7d97-406d-a81a-a501bc209f79> a <http://www.openarchives.org/ore/terms/Proxy>;
|
90
|
+
<http://www.iana.org/assignments/relation/next> <http://localhost/pxd6577d16-7565-46c7-8b0f-31e7816b0e57>;
|
91
|
+
<http://www.iana.org/assignments/relation/prev> <http://localhost/pxeff9a617-ab30-4d7e-971f-825032a597b0>;
|
92
|
+
<http://www.openarchives.org/ore/terms/proxyFor> "http://exmple.org/resource_2";
|
93
|
+
<http://www.openarchives.org/ore/terms/proxyIn> <http://localhost/agg10> .
|
94
|
+
|
95
|
+
puts agg.last_proxy.first.dump :ttl
|
96
|
+
|
97
|
+
<http://localhost/pxd6577d16-7565-46c7-8b0f-31e7816b0e57> a <http://www.openarchives.org/ore/terms/Proxy>;
|
98
|
+
<http://www.iana.org/assignments/relation/prev> <http://localhost/px0f16c9de-7d97-406d-a81a-a501bc209f79>;
|
99
|
+
<http://www.openarchives.org/ore/terms/proxyFor> "http://exmple.org/resource_3";
|
100
|
+
<http://www.openarchives.org/ore/terms/proxyIn> <http://localhost/agg10> .
|
101
|
+
```
|
63
102
|
|
64
|
-
|
103
|
+
*Example creating an aggregation with items in an array.*
|
65
104
|
```
|
66
105
|
agg11 = LD4L::OreRDF::CreateAggregation.call( :id=>'agg11', :title=>'More Resources', :description=>'More resources that I like', :owner=>p )
|
67
106
|
|
@@ -70,10 +109,49 @@ LD4L::OreRDF::AddAggregatedResources.call( agg11,resources)
|
|
70
109
|
|
71
110
|
LD4L::OreRDF::PersistAggregation.call(agg11)
|
72
111
|
|
73
|
-
puts agg11.dump :ttl
|
74
|
-
|
75
112
|
# To resume the aggregation at a later time, use...
|
76
|
-
agg = LD4L::OreRDF::ResumeAggregation.call( '
|
113
|
+
agg = LD4L::OreRDF::ResumeAggregation.call( 'agg11' )
|
114
|
+
```
|
115
|
+
|
116
|
+
*Example triples created for an aggregation.*
|
117
|
+
```
|
118
|
+
puts agg.dump :ttl
|
119
|
+
|
120
|
+
<http://localhost/agg11> a <http://www.openarchives.org/ore/terms/Aggregation>;
|
121
|
+
<http://purl.org/dc/terms/title> "More Resources";
|
122
|
+
<http://purl.org/dc/terms/creator> <http://localhost/p4>;
|
123
|
+
<http://purl.org/dc/terms/description> "More resources that I like";
|
124
|
+
<http://www.iana.org/assignments/relation/first> <http://localhost/pxcff53ec2-f406-422b-92e6-f603612c9856>;
|
125
|
+
<http://www.iana.org/assignments/relation/last> <http://localhost/px4788758e-640b-455c-91f8-10f3c255a72d>;
|
126
|
+
<http://www.openarchives.org/ore/terms/aggregates>
|
127
|
+
"http://exmple.org/resource_5",
|
128
|
+
"http://exmple.org/resource_6",
|
129
|
+
"http://exmple.org/resource_7" .
|
130
|
+
```
|
131
|
+
|
132
|
+
*Example triples created for each proxy in the list.*
|
133
|
+
```
|
134
|
+
puts agg.first_proxy.first.dump :ttl
|
135
|
+
|
136
|
+
<http://localhost/pxcff53ec2-f406-422b-92e6-f603612c9856> a <http://www.openarchives.org/ore/terms/Proxy>;
|
137
|
+
<http://www.iana.org/assignments/relation/next> <http://localhost/pxf7cd384a-2727-4201-8ebe-22c35302b6c0>;
|
138
|
+
<http://www.openarchives.org/ore/terms/proxyFor> "http://exmple.org/resource_5";
|
139
|
+
<http://www.openarchives.org/ore/terms/proxyIn> <http://localhost/agg11> .
|
140
|
+
|
141
|
+
puts agg.first_proxy.first.next_proxy.first.dump :ttl
|
142
|
+
|
143
|
+
<http://localhost/pxf7cd384a-2727-4201-8ebe-22c35302b6c0> a <http://www.openarchives.org/ore/terms/Proxy>;
|
144
|
+
<http://www.iana.org/assignments/relation/next> <http://localhost/px4788758e-640b-455c-91f8-10f3c255a72d>;
|
145
|
+
<http://www.iana.org/assignments/relation/prev> <http://localhost/pxcff53ec2-f406-422b-92e6-f603612c9856>;
|
146
|
+
<http://www.openarchives.org/ore/terms/proxyFor> "http://exmple.org/resource_6";
|
147
|
+
<http://www.openarchives.org/ore/terms/proxyIn> <http://localhost/agg11> .
|
148
|
+
|
149
|
+
puts agg.last_proxy.first.dump :ttl
|
150
|
+
|
151
|
+
<http://localhost/px4788758e-640b-455c-91f8-10f3c255a72d> a <http://www.openarchives.org/ore/terms/Proxy>;
|
152
|
+
<http://www.iana.org/assignments/relation/prev> <http://localhost/pxf7cd384a-2727-4201-8ebe-22c35302b6c0>;
|
153
|
+
<http://www.openarchives.org/ore/terms/proxyFor> "http://exmple.org/resource_7";
|
154
|
+
<http://www.openarchives.org/ore/terms/proxyIn> <http://localhost/agg11> .
|
77
155
|
```
|
78
156
|
|
79
157
|
#### Example: Find all aggregations
|
data/ld4l-ore_rdf.gemspec
CHANGED
@@ -17,20 +17,16 @@ Gem::Specification.new do |spec|
|
|
17
17
|
|
18
18
|
spec.files = `git ls-files -z`.split("\x0")
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
|
-
# spec.test_files = `git ls-files -- {spec}/*`.split("\n") # FROM ActiveTriples gemspec file
|
21
|
-
# spec.require_paths = ["lib"] # NOT IN ActiveTriples gemspec file
|
22
20
|
|
23
|
-
|
24
|
-
spec.add_dependency('rdf', '~> 1.1')
|
21
|
+
spec.add_dependency('rdf', '= 1.99.0')
|
25
22
|
|
26
|
-
spec.add_dependency('active-triples', '~> 0.5')
|
23
|
+
spec.add_dependency('active-triples', '~> 0.5', '~> 0.6', '~>0.8.2')
|
27
24
|
spec.add_dependency('active_triples-local_name', '~> 0.1')
|
28
25
|
spec.add_dependency('ld4l-foaf_rdf', '~> 0.0')
|
29
26
|
spec.add_dependency('doubly_linked_list', '~> 0.0')
|
30
27
|
|
31
28
|
spec.add_development_dependency('pry')
|
32
|
-
|
33
|
-
# spec.add_development_dependency('pry-debugger') # Works with ruby < 2
|
29
|
+
spec.add_development_dependency('pry-byebug')
|
34
30
|
spec.add_development_dependency('rdoc')
|
35
31
|
spec.add_development_dependency('rspec')
|
36
32
|
spec.add_development_dependency('coveralls')
|
@@ -74,12 +74,24 @@ module LD4L
|
|
74
74
|
|
75
75
|
def title
|
76
76
|
titles = list_info.title
|
77
|
-
|
77
|
+
title = ""
|
78
|
+
if list_info.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
79
|
+
title = titles.first if titles.kind_of?(ActiveTriples::Relation) && titles.size > 0
|
80
|
+
else # < ActiveTriples 0.8
|
81
|
+
title = titles.first if titles.kind_of?(Array) && titles.size > 0
|
82
|
+
end
|
83
|
+
title
|
78
84
|
end
|
79
85
|
|
80
86
|
def description
|
81
87
|
descriptions = list_info.description
|
82
|
-
|
88
|
+
description = ""
|
89
|
+
if list_info.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
90
|
+
description = descriptions.first if descriptions.kind_of?(ActiveTriples::Relation) && descriptions.size > 0
|
91
|
+
else # < ActiveTriples 0.8
|
92
|
+
description = descriptions.first if descriptions.kind_of?(Array) && descriptions.size > 0
|
93
|
+
end
|
94
|
+
description
|
83
95
|
end
|
84
96
|
|
85
97
|
def aggregation_resource
|
@@ -44,7 +44,11 @@ module LD4L
|
|
44
44
|
results = query.execute(graph)
|
45
45
|
results.each do |r|
|
46
46
|
proxy_uri = r.to_hash[:proxy]
|
47
|
-
|
47
|
+
if aggregation.list_info.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
48
|
+
proxy = LD4L::OreRDF::ProxyResource.new(proxy_uri,aggregation.list_info)
|
49
|
+
else # < ActiveTriples 0.8
|
50
|
+
proxy = LD4L::OreRDF::ProxyResource.new(proxy_uri)
|
51
|
+
end
|
48
52
|
proxies << proxy
|
49
53
|
end
|
50
54
|
proxies
|
@@ -18,8 +18,7 @@ module LD4L
|
|
18
18
|
|
19
19
|
# TODO Probably shouldn't be ArgumentError
|
20
20
|
raise ArgumentError, "title is required" unless
|
21
|
-
aggregation.title && aggregation.title && aggregation.title.
|
22
|
-
aggregation.title.size > 0
|
21
|
+
aggregation.title && aggregation.title.kind_of?(String) && aggregation.title.size > 0
|
23
22
|
|
24
23
|
count = 0
|
25
24
|
agg_persisted = aggregation.aggregation_resource.persist!
|
@@ -36,4 +35,3 @@ module LD4L
|
|
36
35
|
end
|
37
36
|
end
|
38
37
|
end
|
39
|
-
|
@@ -39,7 +39,11 @@ module LD4L
|
|
39
39
|
LD4L::OreRDF.configuration.localname_minter )
|
40
40
|
|
41
41
|
# create the proxy and set properties
|
42
|
-
|
42
|
+
if aggregation.list_info.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
43
|
+
proxy = LD4L::OreRDF::ProxyResource.new(id,aggregation.list_info)
|
44
|
+
else # < ActiveTriples 0.8
|
45
|
+
proxy = LD4L::OreRDF::ProxyResource.new(id)
|
46
|
+
end
|
43
47
|
proxy.proxy_for = resource
|
44
48
|
proxy.proxy_in = aggregation.aggregation_resource
|
45
49
|
proxy.contributor = options[:contributor] || [] # TODO default to aggregation.owner
|
@@ -72,7 +72,11 @@ module LD4L
|
|
72
72
|
uri = h[:proxy]
|
73
73
|
if resume
|
74
74
|
# if resume, return Hash of proxy uri => resumed proxy for each found
|
75
|
-
|
75
|
+
if aggregation.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
76
|
+
proxies[uri] = LD4L::OreRDF::ProxyResource.new(uri,aggregation.list_info)
|
77
|
+
else # < ActiveTriples 0.8
|
78
|
+
proxies[uri] = LD4L::OreRDF::ProxyResource.new(uri)
|
79
|
+
end
|
76
80
|
elsif process_properties
|
77
81
|
# if properties, return Hash of proxy uri => Hash of property => value for each found
|
78
82
|
properties = h
|
data/lib/ld4l/ore_rdf/version.rb
CHANGED
@@ -3,6 +3,10 @@ require 'spec_helper'
|
|
3
3
|
describe 'LD4L::OreRDF' do
|
4
4
|
|
5
5
|
describe '#configuration' do
|
6
|
+
after(:all) do
|
7
|
+
ActiveTriples::RDFSource.type_registry.keys.each { |k| ActiveTriples::RDFSource.type_registry.delete(k) } if Object.const_defined?("ActiveTriples::RDFSource")
|
8
|
+
end
|
9
|
+
|
6
10
|
describe "base_uri" do
|
7
11
|
context "when base_uri is not configured" do
|
8
12
|
before do
|
@@ -46,7 +46,7 @@ describe 'LD4L::OreRDF::AggregationResource' do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'should not be settable' do
|
49
|
-
expect{ subject.set_subject! RDF::URI('http://example.org/moomin2') }.to raise_error
|
49
|
+
expect{ subject.set_subject! RDF::URI('http://example.org/moomin2') }.to raise_error(RuntimeError, 'Refusing update URI when one is already assigned!')
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -158,23 +158,24 @@ describe 'LD4L::OreRDF::AggregationResource' do
|
|
158
158
|
orig_bib3 = "http://example.org/individual/b3"
|
159
159
|
|
160
160
|
new_bib1 = "http://example.org/individual/b1_NEW"
|
161
|
-
new_bib2 = "http://example.org/individual/b2_NEW"
|
162
161
|
new_bib3 = "http://example.org/individual/b3_NEW"
|
163
162
|
|
164
163
|
subject.aggregates = orig_bib1
|
165
164
|
subject.aggregates << orig_bib2
|
166
165
|
subject.aggregates << orig_bib3
|
167
166
|
|
168
|
-
|
167
|
+
if subject.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
168
|
+
aggregates = subject.aggregates.to_a
|
169
|
+
else # < ActiveTriples 0.8
|
170
|
+
aggregates = subject.aggregates.dup
|
171
|
+
end
|
169
172
|
aggregates[0] = new_bib1
|
170
|
-
# aggregates[1] = new_bib2
|
171
173
|
aggregates[2] = new_bib3
|
172
174
|
subject.aggregates = aggregates
|
173
175
|
|
174
|
-
expect(subject.aggregates
|
175
|
-
|
176
|
-
expect(subject.aggregates
|
177
|
-
expect(subject.aggregates[2]).to eq new_bib3
|
176
|
+
expect(subject.aggregates).to include new_bib1
|
177
|
+
expect(subject.aggregates).to include orig_bib2
|
178
|
+
expect(subject.aggregates).to include new_bib3
|
178
179
|
end
|
179
180
|
|
180
181
|
it "should be directly changeable for multiple values" do
|
@@ -183,21 +184,22 @@ describe 'LD4L::OreRDF::AggregationResource' do
|
|
183
184
|
orig_bib3 = "http://example.org/individual/b3"
|
184
185
|
|
185
186
|
new_bib1 = "http://example.org/individual/b1_NEW"
|
186
|
-
new_bib2 = "http://example.org/individual/b2_NEW"
|
187
187
|
new_bib3 = "http://example.org/individual/b3_NEW"
|
188
188
|
|
189
189
|
subject.aggregates = orig_bib1
|
190
190
|
subject.aggregates << orig_bib2
|
191
191
|
subject.aggregates << orig_bib3
|
192
192
|
|
193
|
-
subject.
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
expect(subject.aggregates
|
193
|
+
if subject.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
194
|
+
subject.aggregates.swap(orig_bib1, new_bib1)
|
195
|
+
subject.aggregates.swap(orig_bib3, new_bib3)
|
196
|
+
else # < ActiveTriples 0.8
|
197
|
+
subject.aggregates[0] = new_bib1
|
198
|
+
subject.aggregates[2] = new_bib3
|
199
|
+
end
|
200
|
+
expect(subject.aggregates).to include new_bib1
|
201
|
+
expect(subject.aggregates).to include orig_bib2
|
202
|
+
expect(subject.aggregates).to include new_bib3
|
201
203
|
end
|
202
204
|
end
|
203
205
|
|
@@ -501,14 +503,18 @@ describe 'LD4L::OreRDF::AggregationResource' do
|
|
501
503
|
context "and the item is not a blank node" do
|
502
504
|
|
503
505
|
subject {LD4L::OreRDF::AggregationResource.new("123")}
|
506
|
+
let(:result) { subject.persist! }
|
504
507
|
|
505
508
|
before do
|
506
509
|
# Create inmemory repository
|
507
510
|
@repo = RDF::Repository.new
|
508
|
-
|
509
|
-
allow(subject).to receive(:repository).and_return(@repo)
|
511
|
+
ActiveTriples::Repositories.repositories[:default] = @repo
|
510
512
|
subject.title = "bla"
|
511
|
-
|
513
|
+
result
|
514
|
+
end
|
515
|
+
|
516
|
+
it "should return true" do
|
517
|
+
expect(result).to eq true
|
512
518
|
end
|
513
519
|
|
514
520
|
it "should persist to the repository" do
|
@@ -534,7 +540,7 @@ describe 'LD4L::OreRDF::AggregationResource' do
|
|
534
540
|
subject << RDF::Statement(RDF::DC.LicenseDocument, RDF::DC.title, 'LICENSE')
|
535
541
|
end
|
536
542
|
|
537
|
-
subject { LD4L::
|
543
|
+
subject { LD4L::OreRDF::AggregationResource.new('123') }
|
538
544
|
|
539
545
|
it 'should return true' do
|
540
546
|
expect(subject.destroy!).to be true
|
@@ -548,22 +554,26 @@ describe 'LD4L::OreRDF::AggregationResource' do
|
|
548
554
|
|
549
555
|
context 'with a parent' do
|
550
556
|
before do
|
551
|
-
|
557
|
+
subject.owner = child
|
552
558
|
end
|
553
559
|
|
554
|
-
let(:
|
555
|
-
|
560
|
+
let(:child) do
|
561
|
+
if subject.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
562
|
+
LD4L::FoafRDF::Person.new('456',subject)
|
563
|
+
else # < ActiveTriples 0.8
|
564
|
+
LD4L::FoafRDF::Person.new('456')
|
565
|
+
end
|
556
566
|
end
|
557
567
|
|
558
568
|
it 'should empty the graph and remove it from the parent' do
|
559
|
-
|
560
|
-
expect(
|
569
|
+
child.destroy
|
570
|
+
expect(subject.owner).to be_empty
|
561
571
|
end
|
562
572
|
|
563
573
|
it 'should remove its whole graph from the parent' do
|
564
|
-
|
565
|
-
|
566
|
-
expect(
|
574
|
+
child.destroy
|
575
|
+
child.each_statement do |s|
|
576
|
+
expect(subject.statements).not_to include s
|
567
577
|
end
|
568
578
|
end
|
569
579
|
end
|
@@ -667,7 +677,12 @@ describe 'LD4L::OreRDF::AggregationResource' do
|
|
667
677
|
end
|
668
678
|
|
669
679
|
it "raise an error if the value is not a URI, Node, Literal, RdfResource, or string" do
|
670
|
-
|
680
|
+
if subject.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
681
|
+
error_name = ActiveTriples::Relation::ValueError
|
682
|
+
else # < ActiveTriples 0.8
|
683
|
+
error_name = RuntimeError
|
684
|
+
end
|
685
|
+
expect{subject.set_value(RDF::DC.title, Object.new)}.to raise_error(error_name,/value must be an RDF URI, Node, Literal, or a valid datatype. See RDF::Literal.*/)
|
671
686
|
end
|
672
687
|
|
673
688
|
it "should be able to accept a subject" do
|
@@ -697,7 +712,8 @@ describe 'LD4L::OreRDF::AggregationResource' do
|
|
697
712
|
|
698
713
|
describe '#type' do
|
699
714
|
it 'should return the type configured on the parent class' do
|
700
|
-
|
715
|
+
expected_result = LD4L::OreRDF::AggregationResource.type.kind_of?(Array) ? LD4L::OreRDF::AggregationResource.type : [LD4L::OreRDF::AggregationResource.type]
|
716
|
+
expect(subject.type).to eq expected_result
|
701
717
|
end
|
702
718
|
|
703
719
|
it 'should set the type' do
|
@@ -731,17 +747,6 @@ describe 'LD4L::OreRDF::AggregationResource' do
|
|
731
747
|
end
|
732
748
|
end
|
733
749
|
|
734
|
-
describe '#solrize' do
|
735
|
-
it 'should return a label for bnodes' do
|
736
|
-
expect(subject.solrize).to eq subject.rdf_label
|
737
|
-
end
|
738
|
-
|
739
|
-
it 'should return a string of the resource uri' do
|
740
|
-
subject.set_subject! 'http://example.org/moomin'
|
741
|
-
expect(subject.solrize).to eq 'http://example.org/moomin'
|
742
|
-
end
|
743
|
-
end
|
744
|
-
|
745
750
|
describe 'editing the graph' do
|
746
751
|
it 'should write properties when statements are added' do
|
747
752
|
subject << RDF::Statement.new(subject.rdf_subject, RDF::DC.title, 'Comet in Moominland')
|
@@ -46,7 +46,7 @@ describe 'LD4L::OreRDF::ProxyResource' do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'should not be settable' do
|
49
|
-
expect{ subject.set_subject! RDF::URI('http://example.org/moomin2') }.to raise_error
|
49
|
+
expect{ subject.set_subject! RDF::URI('http://example.org/moomin2') }.to raise_error(RuntimeError, 'Refusing update URI when one is already assigned!')
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -381,17 +381,21 @@ describe 'LD4L::OreRDF::ProxyResource' do
|
|
381
381
|
context "and the item is not a blank node" do
|
382
382
|
|
383
383
|
subject {LD4L::OreRDF::ProxyResource.new("123")}
|
384
|
+
let(:result) { subject.persist! }
|
384
385
|
|
385
386
|
before do
|
386
387
|
# Create inmemory repository
|
387
388
|
@repo = RDF::Repository.new
|
388
|
-
|
389
|
-
allow(subject).to receive(:repository).and_return(@repo)
|
389
|
+
ActiveTriples::Repositories.repositories[:default] = @repo
|
390
390
|
subject.contributor = "John Smith"
|
391
391
|
an_aggregation = LD4L::OreRDF::AggregationResource.new('1')
|
392
392
|
subject.proxy_in = an_aggregation
|
393
393
|
subject.proxy_for = "http://example.org/b1"
|
394
|
-
|
394
|
+
result
|
395
|
+
end
|
396
|
+
|
397
|
+
it "should return true" do
|
398
|
+
expect(result).to eq true
|
395
399
|
end
|
396
400
|
|
397
401
|
it "should persist to the repository" do
|
@@ -408,7 +412,11 @@ describe 'LD4L::OreRDF::ProxyResource' do
|
|
408
412
|
subject.persist!
|
409
413
|
subject.reload
|
410
414
|
expect(subject.contributor).to eq []
|
411
|
-
|
415
|
+
if subject.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
416
|
+
expect(@repo.statements.to_a.length).to eq 2 # Only the type statements for aggregation and proxy
|
417
|
+
else # < ActiveTriples 0.8
|
418
|
+
expect(@repo.statements.to_a.length).to eq 1 # Only the type statements for proxy
|
419
|
+
end
|
412
420
|
end
|
413
421
|
end
|
414
422
|
|
@@ -453,7 +461,7 @@ describe 'LD4L::OreRDF::ProxyResource' do
|
|
453
461
|
subject << RDF::Statement(RDF::DC.LicenseDocument, RDF::DC.title, 'LICENSE')
|
454
462
|
end
|
455
463
|
|
456
|
-
subject { LD4L::
|
464
|
+
subject { LD4L::OreRDF::ProxyResource.new('123') }
|
457
465
|
|
458
466
|
it 'should return true' do
|
459
467
|
expect(subject.destroy!).to be true
|
@@ -467,22 +475,26 @@ describe 'LD4L::OreRDF::ProxyResource' do
|
|
467
475
|
|
468
476
|
context 'with a parent' do
|
469
477
|
before do
|
470
|
-
|
478
|
+
subject.contributor = child
|
471
479
|
end
|
472
480
|
|
473
|
-
let(:
|
474
|
-
|
481
|
+
let(:child) do
|
482
|
+
if subject.respond_to? 'persistence_strategy' # >= ActiveTriples 0.8
|
483
|
+
LD4L::FoafRDF::Person.new('456',subject)
|
484
|
+
else # < ActiveTriples 0.8
|
485
|
+
LD4L::FoafRDF::Person.new('456')
|
486
|
+
end
|
475
487
|
end
|
476
488
|
|
477
489
|
it 'should empty the graph and remove it from the parent' do
|
478
|
-
|
479
|
-
expect(
|
490
|
+
child.destroy
|
491
|
+
expect(subject.contributor).to be_empty
|
480
492
|
end
|
481
493
|
|
482
494
|
it 'should remove its whole graph from the parent' do
|
483
|
-
|
484
|
-
|
485
|
-
expect(
|
495
|
+
child.destroy
|
496
|
+
child.each_statement do |s|
|
497
|
+
expect(subject.statements).not_to include s
|
486
498
|
end
|
487
499
|
end
|
488
500
|
end
|
@@ -591,17 +603,6 @@ describe 'LD4L::OreRDF::ProxyResource' do
|
|
591
603
|
end
|
592
604
|
end
|
593
605
|
|
594
|
-
describe '#solrize' do
|
595
|
-
it 'should return a label for bnodes' do
|
596
|
-
expect(subject.solrize).to eq subject.rdf_label
|
597
|
-
end
|
598
|
-
|
599
|
-
it 'should return a string of the resource uri' do
|
600
|
-
subject.set_subject! 'http://example.org/moomin'
|
601
|
-
expect(subject.solrize).to eq 'http://example.org/moomin'
|
602
|
-
end
|
603
|
-
end
|
604
|
-
|
605
606
|
describe 'editing the graph' do
|
606
607
|
it 'should write properties when statements are added' do
|
607
608
|
subject << RDF::Statement.new(subject.rdf_subject, RDFVocabularies::ORE.proxyFor, 'Comet in Moominland')
|
data/spec/ld4l/ore_rdf_spec.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe "LD4L::OreRDF" do
|
4
|
+
after(:all) do
|
5
|
+
ActiveTriples::RDFSource.type_registry.keys.each { |k| ActiveTriples::RDFSource.type_registry.delete(k) } if Object.const_defined?("ActiveTriples::RDFSource")
|
6
|
+
end
|
7
|
+
|
4
8
|
describe "#configure" do
|
5
9
|
|
6
10
|
before do
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ld4l-ore_rdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- E. Lynette Rayle
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdf
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.99.0
|
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:
|
26
|
+
version: 1.99.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: active-triples
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -31,6 +31,12 @@ dependencies:
|
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.5'
|
34
|
+
- - "~>"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0.6'
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 0.8.2
|
34
40
|
type: :runtime
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -38,6 +44,12 @@ dependencies:
|
|
38
44
|
- - "~>"
|
39
45
|
- !ruby/object:Gem::Version
|
40
46
|
version: '0.5'
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0.6'
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 0.8.2
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: active_triples-local_name
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +106,20 @@ dependencies:
|
|
94
106
|
- - ">="
|
95
107
|
- !ruby/object:Gem::Version
|
96
108
|
version: '0'
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: pry-byebug
|
111
|
+
requirement: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ">="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
116
|
+
type: :development
|
117
|
+
prerelease: false
|
118
|
+
version_requirements: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
97
123
|
- !ruby/object:Gem::Dependency
|
98
124
|
name: rdoc
|
99
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -177,6 +203,7 @@ files:
|
|
177
203
|
- ".coveralls.yml"
|
178
204
|
- ".gitignore"
|
179
205
|
- ".travis.yml"
|
206
|
+
- CHANGES.md
|
180
207
|
- Gemfile
|
181
208
|
- LICENSE.txt
|
182
209
|
- README.md
|
@@ -257,3 +284,4 @@ test_files:
|
|
257
284
|
- spec/ld4l/ore_rdf/services/proxy/find_spec.rb
|
258
285
|
- spec/ld4l/ore_rdf_spec.rb
|
259
286
|
- spec/spec_helper.rb
|
287
|
+
has_rdoc:
|