hydra-pcdm 0.3.1 → 0.3.2
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/lib/hydra/pcdm/models/concerns/object_behavior.rb +2 -6
- data/lib/hydra/pcdm/models/concerns/pcdm_behavior.rb +1 -0
- data/lib/hydra/pcdm/version.rb +1 -1
- data/spec/hydra/pcdm/models/collection_spec.rb +16 -20
- data/spec/hydra/pcdm/models/object_spec.rb +71 -54
- data/spec/hydra/pcdm_spec.rb +9 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0be7a3fa222eb99a0aac81f40a4946f03231891
|
4
|
+
data.tar.gz: c13f936e7d5b45e39e80108e91c7dc1a96f37336
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91fa47b049b2886f33a8ff57e33c002926ebecc21d2209d6d50691b4ff8d4bc6c35be05f2a83e7ab64d87c43998b71c216687bf2db6f4d26ba990dcfb8dffc83
|
7
|
+
data.tar.gz: 1a15fc8ebba626fa74a78931d88f4dab56ee2e0880293c587a4b19406859961d672bca76cd1b47f4da9c731f55159f52b6bf39b6d06e31f08430ff91ede3ea2d
|
@@ -64,12 +64,8 @@ module Hydra::PCDM
|
|
64
64
|
# file_of_type(::RDF::URI("http://pcdm.org/ExtractedText"))
|
65
65
|
def file_of_type(uri)
|
66
66
|
matching_files = filter_files_by_type(uri)
|
67
|
-
|
68
|
-
|
69
|
-
Hydra::PCDM::AddTypeToFile.call(file, uri)
|
70
|
-
else
|
71
|
-
return matching_files.first
|
72
|
-
end
|
67
|
+
return matching_files.first unless matching_files.empty?
|
68
|
+
Hydra::PCDM::AddTypeToFile.call(files.build, uri)
|
73
69
|
end
|
74
70
|
end
|
75
71
|
end
|
data/lib/hydra/pcdm/version.rb
CHANGED
@@ -238,20 +238,20 @@ describe Hydra::PCDM::Collection do
|
|
238
238
|
end
|
239
239
|
context 'when collection is missing' do
|
240
240
|
it 'and 0 sub-collections should return empty array' do
|
241
|
-
expect(subject.members.delete
|
241
|
+
expect(subject.members.delete(collection1)).to eq []
|
242
242
|
end
|
243
243
|
|
244
244
|
it 'and multiple sub-collections should return empty array when changes are in memory' do
|
245
245
|
subject.ordered_members << collection1
|
246
246
|
subject.ordered_members << collection3
|
247
|
-
expect(subject.members.delete
|
247
|
+
expect(subject.members.delete(collection2)).to eq []
|
248
248
|
end
|
249
249
|
|
250
250
|
it 'returns empty array when changes are saved' do
|
251
251
|
subject.ordered_members << collection1
|
252
252
|
subject.ordered_members << collection3
|
253
253
|
subject.save
|
254
|
-
expect(subject.members.delete
|
254
|
+
expect(subject.members.delete(collection2)).to eq []
|
255
255
|
end
|
256
256
|
end
|
257
257
|
end
|
@@ -313,9 +313,7 @@ describe Hydra::PCDM::Collection do
|
|
313
313
|
collection1.related_objects << object2 # second add to same collection
|
314
314
|
collection1.save
|
315
315
|
related_objects = collection1.reload.related_objects
|
316
|
-
expect(related_objects
|
317
|
-
expect(related_objects.include? object2).to be true
|
318
|
-
expect(related_objects.size).to eq 2
|
316
|
+
expect(related_objects).to match_array [object1, object2]
|
319
317
|
end
|
320
318
|
|
321
319
|
it 'is empty when no related objects' do
|
@@ -328,9 +326,7 @@ describe Hydra::PCDM::Collection do
|
|
328
326
|
collection1.related_objects << object2 # second add to same collection
|
329
327
|
collection1.related_objects << object1 # repeat an object replaces the object
|
330
328
|
related_objects = collection1.related_objects
|
331
|
-
expect(related_objects
|
332
|
-
expect(related_objects.include? object2).to be true
|
333
|
-
expect(related_objects.size).to eq 2
|
329
|
+
expect(related_objects).to match_array [object1, object2]
|
334
330
|
end
|
335
331
|
end
|
336
332
|
end
|
@@ -397,7 +393,7 @@ describe Hydra::PCDM::Collection do
|
|
397
393
|
end
|
398
394
|
|
399
395
|
it 'removes related object while changes are in memory' do
|
400
|
-
expect(subject.related_objects.delete
|
396
|
+
expect(subject.related_objects.delete(object1)).to eq [object1]
|
401
397
|
expect(subject.related_objects).to eq []
|
402
398
|
end
|
403
399
|
|
@@ -406,7 +402,7 @@ describe Hydra::PCDM::Collection do
|
|
406
402
|
subject.ordered_members << collection2
|
407
403
|
subject.ordered_members << object3
|
408
404
|
subject.ordered_members << object2
|
409
|
-
expect(subject.related_objects.delete
|
405
|
+
expect(subject.related_objects.delete(object1)).to eq [object1]
|
410
406
|
expect(subject.related_objects).to eq []
|
411
407
|
expect(subject.ordered_collections).to eq [collection1, collection2]
|
412
408
|
expect(subject.ordered_objects).to eq [object3, object2]
|
@@ -424,23 +420,23 @@ describe Hydra::PCDM::Collection do
|
|
424
420
|
end
|
425
421
|
|
426
422
|
it 'removes first related object when changes are in memory' do
|
427
|
-
expect(subject.related_objects.delete
|
423
|
+
expect(subject.related_objects.delete(object1)).to eq [object1]
|
428
424
|
expect(subject.related_objects).to eq [object2, object3]
|
429
425
|
end
|
430
426
|
|
431
427
|
it 'removes last related object when changes are in memory' do
|
432
|
-
expect(subject.related_objects.delete
|
428
|
+
expect(subject.related_objects.delete(object3)).to eq [object3]
|
433
429
|
expect(subject.related_objects).to eq [object1, object2]
|
434
430
|
end
|
435
431
|
|
436
432
|
it 'removes middle related object when changes are in memory' do
|
437
|
-
expect(subject.related_objects.delete
|
433
|
+
expect(subject.related_objects.delete(object2)).to eq [object2]
|
438
434
|
expect(subject.related_objects).to eq [object1, object3]
|
439
435
|
end
|
440
436
|
|
441
437
|
it 'removes middle related object when changes are saved' do
|
442
438
|
expect(subject.related_objects).to eq [object1, object2, object3]
|
443
|
-
expect(subject.related_objects.delete
|
439
|
+
expect(subject.related_objects.delete(object2)).to eq [object2]
|
444
440
|
subject.save
|
445
441
|
expect(subject.reload.related_objects).to eq [object1, object3]
|
446
442
|
end
|
@@ -450,7 +446,7 @@ describe Hydra::PCDM::Collection do
|
|
450
446
|
let(:object3) { Hydra::PCDM::Object.new }
|
451
447
|
|
452
448
|
it 'returns empty array when 0 related objects and 0 collections and objects' do
|
453
|
-
expect(subject.related_objects.delete
|
449
|
+
expect(subject.related_objects.delete(object1)).to eq []
|
454
450
|
end
|
455
451
|
|
456
452
|
it 'returns empty array when 0 related objects, but has collections and objects and changes in memory' do
|
@@ -458,20 +454,20 @@ describe Hydra::PCDM::Collection do
|
|
458
454
|
subject.ordered_members << collection2
|
459
455
|
subject.ordered_members << object1
|
460
456
|
subject.ordered_members << object2
|
461
|
-
expect(subject.related_objects.delete
|
457
|
+
expect(subject.related_objects.delete(object1)).to eq []
|
462
458
|
end
|
463
459
|
|
464
460
|
it 'returns empty array when other related objects and changes are in memory' do
|
465
461
|
subject.related_objects << object1
|
466
462
|
subject.related_objects << object3
|
467
|
-
expect(subject.related_objects.delete
|
463
|
+
expect(subject.related_objects.delete(object2)).to eq []
|
468
464
|
end
|
469
465
|
|
470
466
|
it 'returns empty array when changes are saved' do
|
471
467
|
subject.related_objects << object1
|
472
468
|
subject.related_objects << object3
|
473
469
|
subject.save
|
474
|
-
expect(subject.reload.related_objects.delete
|
470
|
+
expect(subject.reload.related_objects.delete(object2)).to eq []
|
475
471
|
end
|
476
472
|
end
|
477
473
|
end
|
@@ -616,7 +612,7 @@ describe Hydra::PCDM::Collection do
|
|
616
612
|
|
617
613
|
describe 'make sure deprecated methods still work' do
|
618
614
|
it 'deprecated methods should pass' do
|
619
|
-
|
615
|
+
collection1.ordered_members = [collection2]
|
620
616
|
expect(collection1.ordered_members << collection3).to eq [collection2, collection3]
|
621
617
|
expect(collection1.ordered_members += [collection4]).to eq [collection2, collection3, collection4]
|
622
618
|
expect(collection1.ordered_members << object1).to eq [collection2, collection3, collection4, object1]
|
@@ -146,44 +146,73 @@ describe Hydra::PCDM::Object do
|
|
146
146
|
end
|
147
147
|
end
|
148
148
|
|
149
|
-
|
149
|
+
describe 'in_objects' do
|
150
|
+
let(:object) { described_class.create }
|
151
|
+
subject { object.in_objects }
|
152
|
+
let(:collection) { Hydra::PCDM::Collection.new }
|
153
|
+
let(:parent_object) { described_class.new }
|
150
154
|
before do
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
@parent_object = described_class.new
|
156
|
-
@object = described_class.create
|
157
|
-
@collection1.ordered_members = [@object]
|
158
|
-
@collection2.ordered_members = [@object]
|
159
|
-
@parent_object.ordered_members = [@object]
|
160
|
-
@parent_object.save
|
161
|
-
@collection1.save
|
162
|
-
@collection2.save
|
155
|
+
collection.ordered_members = [object]
|
156
|
+
parent_object.ordered_members = [object]
|
157
|
+
parent_object.save
|
158
|
+
collection.save
|
163
159
|
end
|
164
160
|
|
165
|
-
|
166
|
-
subject
|
167
|
-
it 'finds all nodes that aggregate the object with hasMember' do
|
168
|
-
expect(subject).to include(@collection1, @collection2, @parent_object)
|
169
|
-
end
|
161
|
+
it 'finds objects that aggregate the object' do
|
162
|
+
expect(subject).to eq [parent_object]
|
170
163
|
end
|
164
|
+
end
|
171
165
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
166
|
+
describe 'in_collections' do
|
167
|
+
let(:object) { described_class.create }
|
168
|
+
subject { object.in_collections }
|
169
|
+
let(:object) { described_class.create }
|
170
|
+
let(:collection1) { Hydra::PCDM::Collection.new }
|
171
|
+
let(:collection2) { Hydra::PCDM::Collection.new }
|
172
|
+
let(:parent_object) { described_class.new }
|
173
|
+
before do
|
174
|
+
collection1.ordered_members = [object]
|
175
|
+
collection2.ordered_members = [object]
|
176
|
+
parent_object.ordered_members = [object]
|
177
|
+
parent_object.save
|
178
|
+
collection1.save
|
179
|
+
collection2.save
|
177
180
|
end
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
181
|
+
|
182
|
+
it 'finds collections that aggregate the object' do
|
183
|
+
expect(subject).to match_array [collection1, collection2]
|
184
|
+
expect(subject.count).to eq 2
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
describe 'member_of' do
|
189
|
+
subject { object.member_of }
|
190
|
+
|
191
|
+
context 'when it is aggregated by other objects' do
|
192
|
+
let(:object) { described_class.create }
|
193
|
+
let(:collection) { Hydra::PCDM::Collection.new }
|
194
|
+
let(:parent_object) { described_class.new }
|
195
|
+
before do
|
196
|
+
collection.ordered_members = [object]
|
197
|
+
parent_object.ordered_members = [object]
|
198
|
+
parent_object.save
|
199
|
+
collection.save
|
200
|
+
end
|
201
|
+
|
202
|
+
it 'finds all nodes that aggregate the object' do
|
203
|
+
expect(subject).to include(collection, parent_object)
|
183
204
|
end
|
184
205
|
end
|
185
|
-
|
186
|
-
|
206
|
+
|
207
|
+
context 'when the object is not saved' do
|
208
|
+
let(:object) { described_class.new }
|
209
|
+
|
210
|
+
context 'and other objects exist in the repo' do
|
211
|
+
before { Hydra::PCDM::Collection.create }
|
212
|
+
it 'is empty' do
|
213
|
+
expect(subject).to be_empty
|
214
|
+
end
|
215
|
+
end
|
187
216
|
end
|
188
217
|
end
|
189
218
|
|
@@ -203,9 +232,7 @@ describe Hydra::PCDM::Object do
|
|
203
232
|
subject.related_objects << object2 # second add to same object
|
204
233
|
subject.save
|
205
234
|
related_objects = subject.reload.related_objects
|
206
|
-
expect(related_objects
|
207
|
-
expect(related_objects.include? object2).to be true
|
208
|
-
expect(related_objects.size).to eq 2
|
235
|
+
expect(related_objects).to match_array [object1, object2]
|
209
236
|
end
|
210
237
|
|
211
238
|
it 'not repeat objects in the related object set' do
|
@@ -214,15 +241,13 @@ describe Hydra::PCDM::Object do
|
|
214
241
|
subject.related_objects << object2 # second add to same object
|
215
242
|
subject.related_objects << object1 # repeat an object replaces the object
|
216
243
|
related_objects = subject.related_objects
|
217
|
-
expect(related_objects
|
218
|
-
expect(related_objects.include? object2).to be true
|
219
|
-
expect(related_objects.size).to eq 2
|
244
|
+
expect(related_objects).to match_array [object1, object2]
|
220
245
|
end
|
221
246
|
end
|
222
247
|
end
|
223
248
|
|
224
249
|
context 'with unacceptable inputs' do
|
225
|
-
before
|
250
|
+
before do
|
226
251
|
@collection101 = Hydra::PCDM::Collection.new
|
227
252
|
@object101 = described_class.new
|
228
253
|
@file101 = Hydra::PCDM::File.new
|
@@ -296,7 +321,7 @@ describe Hydra::PCDM::Object do
|
|
296
321
|
end
|
297
322
|
|
298
323
|
it 'remove related object while changes are in memory' do
|
299
|
-
expect(subject.related_objects.delete
|
324
|
+
expect(subject.related_objects.delete(object1)).to eq [object1]
|
300
325
|
expect(subject.related_objects).to eq []
|
301
326
|
end
|
302
327
|
end
|
@@ -312,23 +337,23 @@ describe Hydra::PCDM::Object do
|
|
312
337
|
end
|
313
338
|
|
314
339
|
it 'remove first related object when changes are in memory' do
|
315
|
-
expect(subject.related_objects.delete
|
340
|
+
expect(subject.related_objects.delete(object1)).to eq [object1]
|
316
341
|
expect(subject.related_objects).to eq [object2, object3, object4, object5]
|
317
342
|
end
|
318
343
|
|
319
344
|
it 'remove last related object when changes are in memory' do
|
320
|
-
expect(subject.related_objects.delete
|
345
|
+
expect(subject.related_objects.delete(object5)).to eq [object5]
|
321
346
|
expect(subject.related_objects).to eq [object1, object2, object3, object4]
|
322
347
|
end
|
323
348
|
|
324
349
|
it 'remove middle related object when changes are in memory' do
|
325
|
-
expect(subject.related_objects.delete
|
350
|
+
expect(subject.related_objects.delete(object3)).to eq [object3]
|
326
351
|
expect(subject.related_objects).to eq [object1, object2, object4, object5]
|
327
352
|
end
|
328
353
|
|
329
354
|
it 'remove middle related object when changes are saved' do
|
330
355
|
expect(subject.related_objects).to eq [object1, object2, object3, object4, object5]
|
331
|
-
expect(subject.related_objects.delete
|
356
|
+
expect(subject.related_objects.delete(object3)).to eq [object3]
|
332
357
|
subject.save
|
333
358
|
expect(subject.reload.related_objects).to eq [object1, object2, object4, object5]
|
334
359
|
end
|
@@ -336,15 +361,7 @@ describe Hydra::PCDM::Object do
|
|
336
361
|
|
337
362
|
context 'when related object is missing' do
|
338
363
|
it 'return empty array when 0 related objects and 0 objects' do
|
339
|
-
expect(subject.related_objects.delete
|
340
|
-
end
|
341
|
-
|
342
|
-
it 'return empty array when other related objects and changes in memory' do
|
343
|
-
subject.related_objects << object1
|
344
|
-
subject.related_objects << object2
|
345
|
-
subject.related_objects << object4
|
346
|
-
subject.related_objects << object5
|
347
|
-
expect(subject.related_objects.delete object3).to eq []
|
364
|
+
expect(subject.related_objects.delete(object1)).to eq []
|
348
365
|
end
|
349
366
|
|
350
367
|
it 'return empty array when other related objects and changes are in memory' do
|
@@ -352,7 +369,7 @@ describe Hydra::PCDM::Object do
|
|
352
369
|
subject.related_objects << object2
|
353
370
|
subject.related_objects << object4
|
354
371
|
subject.related_objects << object5
|
355
|
-
expect(subject.related_objects.delete
|
372
|
+
expect(subject.related_objects.delete(object3)).to eq []
|
356
373
|
end
|
357
374
|
|
358
375
|
it 'return empty array when changes are saved' do
|
@@ -361,7 +378,7 @@ describe Hydra::PCDM::Object do
|
|
361
378
|
subject.related_objects << object4
|
362
379
|
subject.related_objects << object5
|
363
380
|
subject.save
|
364
|
-
expect(subject.reload.related_objects.delete
|
381
|
+
expect(subject.reload.related_objects.delete(object3)).to eq []
|
365
382
|
end
|
366
383
|
end
|
367
384
|
end
|
@@ -477,7 +494,7 @@ describe Hydra::PCDM::Object do
|
|
477
494
|
let(:object4) { described_class.new }
|
478
495
|
|
479
496
|
it 'deprecated methods should pass' do
|
480
|
-
|
497
|
+
object1.ordered_members = [object2]
|
481
498
|
expect(object1.ordered_members << object3).to eq [object2, object3]
|
482
499
|
expect(object1.ordered_members += [object4]).to eq [object2, object3, object4]
|
483
500
|
object1.save # required until issue AF-Agg-75 is fixed
|
data/spec/hydra/pcdm_spec.rb
CHANGED
@@ -8,43 +8,43 @@ describe Hydra::PCDM do
|
|
8
8
|
describe 'Validations' do
|
9
9
|
describe '#collection?' do
|
10
10
|
it 'return true for a pcdm collection' do
|
11
|
-
expect(described_class
|
11
|
+
expect(described_class).to be_collection coll1
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'return false for a pcdm object' do
|
15
|
-
expect(described_class
|
15
|
+
expect(described_class).not_to be_collection obj1
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'return false for a pcdm file' do
|
19
|
-
expect(described_class
|
19
|
+
expect(described_class).not_to be_collection file1
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
describe '#object?' do
|
24
24
|
it 'return false for a pcdm collection' do
|
25
|
-
expect(described_class
|
25
|
+
expect(described_class).not_to be_object coll1
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'return true for a pcdm object' do
|
29
|
-
expect(described_class
|
29
|
+
expect(described_class).to be_object obj1
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'return false for a pcdm file' do
|
33
|
-
expect(described_class
|
33
|
+
expect(described_class).not_to be_object file1
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
37
|
describe '#file?' do
|
38
38
|
it 'return false for a pcdm collection' do
|
39
|
-
expect(described_class
|
39
|
+
expect(described_class).not_to be_file coll1
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'return false for a pcdm object' do
|
43
|
-
expect(described_class
|
43
|
+
expect(described_class).not_to be_file obj1
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'return true for a pcdm file' do
|
47
|
-
expect(described_class
|
47
|
+
expect(described_class).to be_file file1
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-pcdm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
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-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active-fedora
|