hydra-works 0.0.1 → 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.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.travis.yml +2 -5
  4. data/Gemfile +1 -3
  5. data/README.md +28 -13
  6. data/hydra-works.gemspec +4 -3
  7. data/lib/hydra/works.rb +7 -57
  8. data/lib/hydra/works/models/concerns/block_child_objects.rb +16 -0
  9. data/lib/hydra/works/models/concerns/collection_behavior.rb +27 -2
  10. data/lib/hydra/works/models/concerns/generic_file/contained_files.rb +5 -13
  11. data/lib/hydra/works/models/concerns/generic_file/derivatives.rb +9 -13
  12. data/lib/hydra/works/models/concerns/generic_file/mime_types.rb +14 -9
  13. data/lib/hydra/works/models/concerns/generic_file/versioned_content.rb +18 -0
  14. data/lib/hydra/works/models/concerns/generic_file/virus_check.rb +48 -0
  15. data/lib/hydra/works/models/concerns/generic_file_behavior.rb +24 -1
  16. data/lib/hydra/works/models/concerns/generic_work_behavior.rb +32 -3
  17. data/lib/hydra/works/models/generic_file.rb +3 -0
  18. data/lib/hydra/works/services/generic_file/add_file_to_generic_file.rb +127 -0
  19. data/lib/hydra/works/services/generic_file/generate/thumbnail.rb +1 -2
  20. data/lib/hydra/works/services/generic_file/persist_derivative.rb +22 -0
  21. data/lib/hydra/works/services/generic_file/upload_file.rb +11 -19
  22. data/lib/hydra/works/version.rb +1 -1
  23. data/lib/hydra/works/vocab/works_terms.rb +1 -1
  24. data/spec/fixtures/Example.ogg +0 -0
  25. data/spec/fixtures/charter.docx +0 -0
  26. data/spec/fixtures/countdown.avi +0 -0
  27. data/spec/fixtures/image.jp2 +0 -0
  28. data/spec/fixtures/piano_note.wav +0 -0
  29. data/spec/fixtures/test5.mp3 +0 -0
  30. data/spec/fixtures/world.png +0 -0
  31. data/spec/hydra/works/models/collection_spec.rb +499 -16
  32. data/spec/hydra/works/models/concerns/block_child_objects_spec.rb +19 -0
  33. data/spec/hydra/works/models/concerns/{file → generic_file}/contained_files_spec.rb +20 -17
  34. data/spec/hydra/works/models/concerns/generic_file/mime_types_spec.rb +76 -0
  35. data/spec/hydra/works/models/concerns/generic_file/versioned_content_spec.rb +32 -0
  36. data/spec/hydra/works/models/concerns/generic_file/virus_check_spec.rb +50 -0
  37. data/spec/hydra/works/models/concerns/generic_file_behavior_spec.rb +1 -1
  38. data/spec/hydra/works/models/generic_file_spec.rb +201 -14
  39. data/spec/hydra/works/models/generic_work_spec.rb +530 -14
  40. data/spec/hydra/works/services/generic_file/add_file_to_generic_file_spec.rb +110 -0
  41. data/spec/hydra/works/services/generic_file/upload_file_spec.rb +45 -28
  42. data/spec/hydra/works/services/persist_derivatives_spec.rb +93 -0
  43. data/spec/hydra/works_spec.rb +35 -35
  44. data/spec/spec_helper.rb +6 -0
  45. metadata +56 -95
  46. data/lib/hydra/works/models/concerns/aggregates_collections.rb +0 -16
  47. data/lib/hydra/works/models/concerns/aggregates_generic_files.rb +0 -20
  48. data/lib/hydra/works/models/concerns/aggregates_generic_works.rb +0 -20
  49. data/lib/hydra/works/processor.rb +0 -9
  50. data/lib/hydra/works/services/collection/add_collection.rb +0 -19
  51. data/lib/hydra/works/services/collection/add_generic_work.rb +0 -19
  52. data/lib/hydra/works/services/collection/add_related_object.rb +0 -19
  53. data/lib/hydra/works/services/collection/get_collections.rb +0 -17
  54. data/lib/hydra/works/services/collection/get_generic_works.rb +0 -17
  55. data/lib/hydra/works/services/collection/get_related_objects.rb +0 -17
  56. data/lib/hydra/works/services/collection/remove_collection.rb +0 -19
  57. data/lib/hydra/works/services/collection/remove_generic_work.rb +0 -20
  58. data/lib/hydra/works/services/collection/remove_related_object.rb +0 -19
  59. data/lib/hydra/works/services/generic_file/add_file.rb +0 -55
  60. data/lib/hydra/works/services/generic_file/add_generic_file.rb +0 -19
  61. data/lib/hydra/works/services/generic_file/add_original_file.rb +0 -11
  62. data/lib/hydra/works/services/generic_file/add_related_object.rb +0 -19
  63. data/lib/hydra/works/services/generic_file/add_versioned_original_file.rb +0 -10
  64. data/lib/hydra/works/services/generic_file/get_generic_files.rb +0 -17
  65. data/lib/hydra/works/services/generic_file/get_related_objects.rb +0 -17
  66. data/lib/hydra/works/services/generic_file/remove_generic_file.rb +0 -20
  67. data/lib/hydra/works/services/generic_file/remove_related_object.rb +0 -19
  68. data/lib/hydra/works/services/generic_work/add_generic_file.rb +0 -19
  69. data/lib/hydra/works/services/generic_work/add_generic_work.rb +0 -19
  70. data/lib/hydra/works/services/generic_work/add_related_object.rb +0 -19
  71. data/lib/hydra/works/services/generic_work/get_generic_files.rb +0 -17
  72. data/lib/hydra/works/services/generic_work/get_generic_works.rb +0 -17
  73. data/lib/hydra/works/services/generic_work/get_related_objects.rb +0 -17
  74. data/lib/hydra/works/services/generic_work/move_generic_file.rb +0 -19
  75. data/lib/hydra/works/services/generic_work/remove_generic_file.rb +0 -20
  76. data/lib/hydra/works/services/generic_work/remove_generic_work.rb +0 -20
  77. data/lib/hydra/works/services/generic_work/remove_related_object.rb +0 -19
  78. data/spec/hydra/works/services/collection/add_collection_spec.rb +0 -166
  79. data/spec/hydra/works/services/collection/add_generic_work_spec.rb +0 -155
  80. data/spec/hydra/works/services/collection/add_related_object_spec.rb +0 -149
  81. data/spec/hydra/works/services/collection/get_collections_spec.rb +0 -35
  82. data/spec/hydra/works/services/collection/get_generic_works_spec.rb +0 -35
  83. data/spec/hydra/works/services/collection/get_related_objects_spec.rb +0 -49
  84. data/spec/hydra/works/services/collection/remove_collection_spec.rb +0 -133
  85. data/spec/hydra/works/services/collection/remove_generic_work_spec.rb +0 -133
  86. data/spec/hydra/works/services/collection/remove_related_object_spec.rb +0 -128
  87. data/spec/hydra/works/services/generic_file/add_file_spec.rb +0 -28
  88. data/spec/hydra/works/services/generic_file/add_generic_file_spec.rb +0 -174
  89. data/spec/hydra/works/services/generic_file/add_related_object_spec.rb +0 -150
  90. data/spec/hydra/works/services/generic_file/get_generic_files_spec.rb +0 -19
  91. data/spec/hydra/works/services/generic_file/get_related_objects_spec.rb +0 -45
  92. data/spec/hydra/works/services/generic_file/remove_generic_file_spec.rb +0 -124
  93. data/spec/hydra/works/services/generic_file/remove_related_object_spec.rb +0 -123
  94. data/spec/hydra/works/services/generic_work/add_generic_file_spec.rb +0 -156
  95. data/spec/hydra/works/services/generic_work/add_generic_work_spec.rb +0 -157
  96. data/spec/hydra/works/services/generic_work/add_related_object_spec.rb +0 -148
  97. data/spec/hydra/works/services/generic_work/get_generic_files_spec.rb +0 -35
  98. data/spec/hydra/works/services/generic_work/get_generic_works_spec.rb +0 -35
  99. data/spec/hydra/works/services/generic_work/get_related_objects_spec.rb +0 -46
  100. data/spec/hydra/works/services/generic_work/move_generic_file_spec.rb +0 -21
  101. data/spec/hydra/works/services/generic_work/remove_generic_file_spec.rb +0 -132
  102. data/spec/hydra/works/services/generic_work/remove_generic_work_spec.rb +0 -133
  103. data/spec/hydra/works/services/generic_work/remove_related_object_spec.rb +0 -128
@@ -1,5 +1,11 @@
1
1
  ENV['environment'] ||= 'test'
2
+ require 'simplecov'
2
3
  require 'coveralls'
4
+
5
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
6
+ SimpleCov.start do
7
+ add_filter '/spec'
8
+ end
3
9
  Coveralls.wear!
4
10
 
5
11
  require 'bundler/setup'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hydra-works
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-05 00:00:00.000000000 Z
11
+ date: 2015-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hydra-pcdm
@@ -16,42 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.0.1
19
+ version: '0.1'
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: 0.0.1
26
+ version: '0.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: hydra-derivatives
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.1.0
33
+ version: '2.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.1.0
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activefedora-aggregation
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.2.0
47
+ version: '0.4'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.2.0
54
+ version: '0.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: active-fedora
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '9.2'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '9.2'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -184,85 +198,45 @@ files:
184
198
  - hydra-works.gemspec
185
199
  - lib/hydra/works.rb
186
200
  - lib/hydra/works/models/collection.rb
187
- - lib/hydra/works/models/concerns/aggregates_collections.rb
188
- - lib/hydra/works/models/concerns/aggregates_generic_files.rb
189
- - lib/hydra/works/models/concerns/aggregates_generic_works.rb
201
+ - lib/hydra/works/models/concerns/block_child_objects.rb
190
202
  - lib/hydra/works/models/concerns/collection_behavior.rb
191
203
  - lib/hydra/works/models/concerns/generic_file/contained_files.rb
192
204
  - lib/hydra/works/models/concerns/generic_file/derivatives.rb
193
205
  - lib/hydra/works/models/concerns/generic_file/mime_types.rb
206
+ - lib/hydra/works/models/concerns/generic_file/versioned_content.rb
207
+ - lib/hydra/works/models/concerns/generic_file/virus_check.rb
194
208
  - lib/hydra/works/models/concerns/generic_file_behavior.rb
195
209
  - lib/hydra/works/models/concerns/generic_work_behavior.rb
196
210
  - lib/hydra/works/models/generic_file.rb
197
211
  - lib/hydra/works/models/generic_work.rb
198
- - lib/hydra/works/processor.rb
199
- - lib/hydra/works/services/collection/add_collection.rb
200
- - lib/hydra/works/services/collection/add_generic_work.rb
201
- - lib/hydra/works/services/collection/add_related_object.rb
202
- - lib/hydra/works/services/collection/get_collections.rb
203
- - lib/hydra/works/services/collection/get_generic_works.rb
204
- - lib/hydra/works/services/collection/get_related_objects.rb
205
- - lib/hydra/works/services/collection/remove_collection.rb
206
- - lib/hydra/works/services/collection/remove_generic_work.rb
207
- - lib/hydra/works/services/collection/remove_related_object.rb
208
- - lib/hydra/works/services/generic_file/add_file.rb
209
- - lib/hydra/works/services/generic_file/add_generic_file.rb
210
- - lib/hydra/works/services/generic_file/add_original_file.rb
211
- - lib/hydra/works/services/generic_file/add_related_object.rb
212
- - lib/hydra/works/services/generic_file/add_versioned_original_file.rb
212
+ - lib/hydra/works/services/generic_file/add_file_to_generic_file.rb
213
213
  - lib/hydra/works/services/generic_file/generate/thumbnail.rb
214
- - lib/hydra/works/services/generic_file/get_generic_files.rb
215
- - lib/hydra/works/services/generic_file/get_related_objects.rb
216
- - lib/hydra/works/services/generic_file/remove_generic_file.rb
217
- - lib/hydra/works/services/generic_file/remove_related_object.rb
214
+ - lib/hydra/works/services/generic_file/persist_derivative.rb
218
215
  - lib/hydra/works/services/generic_file/upload_file.rb
219
- - lib/hydra/works/services/generic_work/add_generic_file.rb
220
- - lib/hydra/works/services/generic_work/add_generic_work.rb
221
- - lib/hydra/works/services/generic_work/add_related_object.rb
222
- - lib/hydra/works/services/generic_work/get_generic_files.rb
223
- - lib/hydra/works/services/generic_work/get_generic_works.rb
224
- - lib/hydra/works/services/generic_work/get_related_objects.rb
225
- - lib/hydra/works/services/generic_work/move_generic_file.rb
226
- - lib/hydra/works/services/generic_work/remove_generic_file.rb
227
- - lib/hydra/works/services/generic_work/remove_generic_work.rb
228
- - lib/hydra/works/services/generic_work/remove_related_object.rb
229
216
  - lib/hydra/works/version.rb
230
217
  - lib/hydra/works/vocab/works_terms.rb
218
+ - spec/fixtures/Example.ogg
219
+ - spec/fixtures/charter.docx
220
+ - spec/fixtures/countdown.avi
221
+ - spec/fixtures/image.jp2
222
+ - spec/fixtures/piano_note.wav
231
223
  - spec/fixtures/sample-file.pdf
224
+ - spec/fixtures/test5.mp3
232
225
  - spec/fixtures/updated-file.txt
226
+ - spec/fixtures/world.png
233
227
  - spec/hydra/works/models/collection_spec.rb
234
- - spec/hydra/works/models/concerns/file/contained_files_spec.rb
228
+ - spec/hydra/works/models/concerns/block_child_objects_spec.rb
229
+ - spec/hydra/works/models/concerns/generic_file/contained_files_spec.rb
230
+ - spec/hydra/works/models/concerns/generic_file/mime_types_spec.rb
231
+ - spec/hydra/works/models/concerns/generic_file/versioned_content_spec.rb
232
+ - spec/hydra/works/models/concerns/generic_file/virus_check_spec.rb
235
233
  - spec/hydra/works/models/concerns/generic_file_behavior_spec.rb
236
234
  - spec/hydra/works/models/generic_file_spec.rb
237
235
  - spec/hydra/works/models/generic_work_spec.rb
238
- - spec/hydra/works/services/collection/add_collection_spec.rb
239
- - spec/hydra/works/services/collection/add_generic_work_spec.rb
240
- - spec/hydra/works/services/collection/add_related_object_spec.rb
241
- - spec/hydra/works/services/collection/get_collections_spec.rb
242
- - spec/hydra/works/services/collection/get_generic_works_spec.rb
243
- - spec/hydra/works/services/collection/get_related_objects_spec.rb
244
- - spec/hydra/works/services/collection/remove_collection_spec.rb
245
- - spec/hydra/works/services/collection/remove_generic_work_spec.rb
246
- - spec/hydra/works/services/collection/remove_related_object_spec.rb
247
- - spec/hydra/works/services/generic_file/add_file_spec.rb
248
- - spec/hydra/works/services/generic_file/add_generic_file_spec.rb
249
- - spec/hydra/works/services/generic_file/add_related_object_spec.rb
236
+ - spec/hydra/works/services/generic_file/add_file_to_generic_file_spec.rb
250
237
  - spec/hydra/works/services/generic_file/generate/thumbnail_spec.rb
251
- - spec/hydra/works/services/generic_file/get_generic_files_spec.rb
252
- - spec/hydra/works/services/generic_file/get_related_objects_spec.rb
253
- - spec/hydra/works/services/generic_file/remove_generic_file_spec.rb
254
- - spec/hydra/works/services/generic_file/remove_related_object_spec.rb
255
238
  - spec/hydra/works/services/generic_file/upload_file_spec.rb
256
- - spec/hydra/works/services/generic_work/add_generic_file_spec.rb
257
- - spec/hydra/works/services/generic_work/add_generic_work_spec.rb
258
- - spec/hydra/works/services/generic_work/add_related_object_spec.rb
259
- - spec/hydra/works/services/generic_work/get_generic_files_spec.rb
260
- - spec/hydra/works/services/generic_work/get_generic_works_spec.rb
261
- - spec/hydra/works/services/generic_work/get_related_objects_spec.rb
262
- - spec/hydra/works/services/generic_work/move_generic_file_spec.rb
263
- - spec/hydra/works/services/generic_work/remove_generic_file_spec.rb
264
- - spec/hydra/works/services/generic_work/remove_generic_work_spec.rb
265
- - spec/hydra/works/services/generic_work/remove_related_object_spec.rb
239
+ - spec/hydra/works/services/persist_derivatives_spec.rb
266
240
  - spec/hydra/works_spec.rb
267
241
  - spec/spec_helper.rb
268
242
  - use-cases/conference_event_use_case.md
@@ -294,45 +268,32 @@ required_rubygems_version: !ruby/object:Gem::Requirement
294
268
  version: '0'
295
269
  requirements: []
296
270
  rubyforge_project:
297
- rubygems_version: 2.4.6
271
+ rubygems_version: 2.4.8
298
272
  signing_key:
299
273
  specification_version: 4
300
274
  summary: Fundamental repository data model for hydra
301
275
  test_files:
276
+ - spec/fixtures/Example.ogg
277
+ - spec/fixtures/charter.docx
278
+ - spec/fixtures/countdown.avi
279
+ - spec/fixtures/image.jp2
280
+ - spec/fixtures/piano_note.wav
302
281
  - spec/fixtures/sample-file.pdf
282
+ - spec/fixtures/test5.mp3
303
283
  - spec/fixtures/updated-file.txt
284
+ - spec/fixtures/world.png
304
285
  - spec/hydra/works/models/collection_spec.rb
305
- - spec/hydra/works/models/concerns/file/contained_files_spec.rb
286
+ - spec/hydra/works/models/concerns/block_child_objects_spec.rb
287
+ - spec/hydra/works/models/concerns/generic_file/contained_files_spec.rb
288
+ - spec/hydra/works/models/concerns/generic_file/mime_types_spec.rb
289
+ - spec/hydra/works/models/concerns/generic_file/versioned_content_spec.rb
290
+ - spec/hydra/works/models/concerns/generic_file/virus_check_spec.rb
306
291
  - spec/hydra/works/models/concerns/generic_file_behavior_spec.rb
307
292
  - spec/hydra/works/models/generic_file_spec.rb
308
293
  - spec/hydra/works/models/generic_work_spec.rb
309
- - spec/hydra/works/services/collection/add_collection_spec.rb
310
- - spec/hydra/works/services/collection/add_generic_work_spec.rb
311
- - spec/hydra/works/services/collection/add_related_object_spec.rb
312
- - spec/hydra/works/services/collection/get_collections_spec.rb
313
- - spec/hydra/works/services/collection/get_generic_works_spec.rb
314
- - spec/hydra/works/services/collection/get_related_objects_spec.rb
315
- - spec/hydra/works/services/collection/remove_collection_spec.rb
316
- - spec/hydra/works/services/collection/remove_generic_work_spec.rb
317
- - spec/hydra/works/services/collection/remove_related_object_spec.rb
318
- - spec/hydra/works/services/generic_file/add_file_spec.rb
319
- - spec/hydra/works/services/generic_file/add_generic_file_spec.rb
320
- - spec/hydra/works/services/generic_file/add_related_object_spec.rb
294
+ - spec/hydra/works/services/generic_file/add_file_to_generic_file_spec.rb
321
295
  - spec/hydra/works/services/generic_file/generate/thumbnail_spec.rb
322
- - spec/hydra/works/services/generic_file/get_generic_files_spec.rb
323
- - spec/hydra/works/services/generic_file/get_related_objects_spec.rb
324
- - spec/hydra/works/services/generic_file/remove_generic_file_spec.rb
325
- - spec/hydra/works/services/generic_file/remove_related_object_spec.rb
326
296
  - spec/hydra/works/services/generic_file/upload_file_spec.rb
327
- - spec/hydra/works/services/generic_work/add_generic_file_spec.rb
328
- - spec/hydra/works/services/generic_work/add_generic_work_spec.rb
329
- - spec/hydra/works/services/generic_work/add_related_object_spec.rb
330
- - spec/hydra/works/services/generic_work/get_generic_files_spec.rb
331
- - spec/hydra/works/services/generic_work/get_generic_works_spec.rb
332
- - spec/hydra/works/services/generic_work/get_related_objects_spec.rb
333
- - spec/hydra/works/services/generic_work/move_generic_file_spec.rb
334
- - spec/hydra/works/services/generic_work/remove_generic_file_spec.rb
335
- - spec/hydra/works/services/generic_work/remove_generic_work_spec.rb
336
- - spec/hydra/works/services/generic_work/remove_related_object_spec.rb
297
+ - spec/hydra/works/services/persist_derivatives_spec.rb
337
298
  - spec/hydra/works_spec.rb
338
299
  - spec/spec_helper.rb
@@ -1,16 +0,0 @@
1
- module Hydra::Works
2
- # Allows instances of a class to aggregate (pcdm:hasMember) hydra-works collections
3
- module AggregatesCollections
4
-
5
- def collections= collections
6
- raise ArgumentError, "each collection must be a hydra works collection" unless collections.all? { |c| Hydra::Works.collection? c }
7
- raise ArgumentError, "a collection can't be an ancestor of itself" if collection_ancestor?(collections)
8
- self.members = self.generic_works + collections
9
- end
10
-
11
- def collections
12
- members.to_a.select { |m| Hydra::Works.collection? m }
13
- end
14
-
15
- end
16
- end
@@ -1,20 +0,0 @@
1
- module Hydra::Works
2
- # Allows instances of a class to aggregate (pcdm:hasMember) hydra-works generic files
3
- module AggregatesGenericFiles
4
-
5
- def generic_files= generic_files
6
- raise ArgumentError, "each generic_file must be a hydra works generic file" unless generic_files.all? { |w| Hydra::Works.generic_file? w }
7
- raise ArgumentError, "a generic file can't be an ancestor of itself" if object_ancestor?(generic_files)
8
- if self.respond_to?(:generic_works)
9
- self.members = self.generic_works + generic_files
10
- else
11
- self.members = generic_files
12
- end
13
- end
14
-
15
- def generic_files
16
- members.to_a.select { |m| Hydra::Works.generic_file? m }
17
- end
18
- end
19
-
20
- end
@@ -1,20 +0,0 @@
1
- module Hydra::Works
2
- # Allows instances of a class to aggregate (pcdm:hasMember) hydra-works generic works
3
- module AggregatesGenericWorks
4
-
5
- def generic_works= generic_works
6
- raise ArgumentError, "each generic_work must be a hydra works generic work" unless generic_works.all? { |w| Hydra::Works.generic_work? w }
7
- raise ArgumentError, "a generic work can't be an ancestor of itself" if self.respond_to?(:object_ancestor?) && object_ancestor?(generic_works)
8
- if self.respond_to?(:generic_files)
9
- self.members = self.generic_files + generic_works
10
- else
11
- self.members = generic_works
12
- end
13
- end
14
-
15
- def generic_works
16
- members.to_a.select { |m| Hydra::Works.generic_work? m }
17
- end
18
-
19
- end
20
- end
@@ -1,9 +0,0 @@
1
- module Hydra::Derivatives
2
- class Work < Hydra::Derivatives::Image
3
-
4
- def source_file
5
- object.send(source_name.to_s)
6
- end
7
-
8
- end
9
- end
@@ -1,19 +0,0 @@
1
- module Hydra::Works
2
- class AddCollectionToCollection
3
-
4
- ##
5
- # Add a collection to a collection.
6
- #
7
- # @param [Hydra::Works::Collection] :parent_collection to which to add collection
8
- # @param [Hydra::Works::Collection] :child_collection being added
9
- #
10
- # @return [Hydra::Works::Collection] the updated hydra works collection
11
-
12
- def self.call( parent_collection, child_collection )
13
- raise ArgumentError, 'parent_collection must be a hydra-works collection' unless Hydra::Works.collection? parent_collection
14
- raise ArgumentError, 'child_collection must be a hydra-works collection' unless Hydra::Works.collection? child_collection
15
- Hydra::PCDM::AddCollectionToCollection.call( parent_collection, child_collection )
16
- end
17
-
18
- end
19
- end
@@ -1,19 +0,0 @@
1
- module Hydra::Works
2
- class AddGenericWorkToCollection
3
-
4
- ##
5
- # Add a generic_work to a collection.
6
- #
7
- # @param [Hydra::Works::Collection] :parent_collection to which to add generic_work
8
- # @param [Hydra::Works::GenericWork::Base] :child_generic_work being added
9
- #
10
- # @return [Hydra::Works::Collection] the updated hydra works collection
11
-
12
- def self.call( parent_collection, child_generic_work )
13
- raise ArgumentError, 'parent_collection must be a hydra-works collection' unless Hydra::Works.collection? parent_collection
14
- raise ArgumentError, 'child_generic_work must be a hydra-works generic work' unless Hydra::Works.generic_work? child_generic_work
15
- Hydra::PCDM::AddObjectToCollection.call( parent_collection, child_generic_work )
16
- end
17
-
18
- end
19
- end
@@ -1,19 +0,0 @@
1
- module Hydra::Works
2
- class AddRelatedObjectToCollection
3
-
4
- ##
5
- # Add a related object to a collection.
6
- #
7
- # @param [Hydra::Works::Collection] :parent_collection to which to add the related object
8
- # @param [Hydra::PCDM::Object] :child_related_object being added
9
- #
10
- # @return [Hydra::Works::Collection] the updated hydra works collection
11
-
12
- def self.call( parent_collection, child_related_object )
13
- raise ArgumentError, 'parent_collection must be a hydra-works collection' unless Hydra::Works.collection? parent_collection
14
- raise ArgumentError, 'child_related_object must be a pcdm object' unless Hydra::PCDM.object? child_related_object
15
- Hydra::PCDM::AddRelatedObjectToCollection.call( parent_collection, child_related_object )
16
- end
17
-
18
- end
19
- end
@@ -1,17 +0,0 @@
1
- module Hydra::Works
2
- class GetCollectionsFromCollection
3
-
4
- ##
5
- # Get member collections from a collection in order.
6
- #
7
- # @param [Hydra::Works::Collection] :parent_collection in which the child collections are members
8
- #
9
- # @return [Array<Hydra::Works::Collection>] all member collections
10
-
11
- def self.call( parent_collection )
12
- raise ArgumentError, 'parent_collection must be a hydra-works collection' unless Hydra::Works.collection? parent_collection
13
- parent_collection.collections
14
- end
15
-
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- module Hydra::Works
2
- class GetGenericWorksFromCollection
3
-
4
- ##
5
- # Get member generic works from a collection in order.
6
- #
7
- # @param [Hydra::Works::Collection] :parent_collection in which the child generic works are members
8
- #
9
- # @return [Array<Hydra::Works::GenericWork::Base>] all member generic works
10
-
11
- def self.call( parent_collection )
12
- raise ArgumentError, 'parent_collection must be a hydra-works collection' unless Hydra::Works.collection? parent_collection
13
- parent_collection.generic_works
14
- end
15
-
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- module Hydra::Works
2
- class GetRelatedObjectsFromCollection
3
-
4
- ##
5
- # Get related objects from a collection.
6
- #
7
- # @param [Hydra::Works::Collection] :parent_collection to which the child objects are related
8
- #
9
- # @return [Array<Hydra::Works::Collection>] all related objects
10
-
11
- def self.call( parent_collection )
12
- raise ArgumentError, 'parent_collection must be a hydra-works collection' unless Hydra::Works.collection? parent_collection
13
- Hydra::PCDM::GetRelatedObjectsFromCollection.call( parent_collection )
14
- end
15
-
16
- end
17
- end
@@ -1,19 +0,0 @@
1
- module Hydra::Works
2
- class RemoveCollectionFromCollection
3
-
4
- ##
5
- # Remove a collection from a collection.
6
- #
7
- # @param [Hydra::Works::Collection] :parent_collection from which to remove collection
8
- # @param [Hydra::Works::Collection] :child_collection being removed
9
- #
10
- # @return [Hydra::Works::Collection] the updated hydra works collection
11
-
12
- def self.call( parent_collection, child_collection )
13
- raise ArgumentError, 'parent_collection must be a hydra-works collection' unless Hydra::Works.collection? parent_collection
14
- raise ArgumentError, 'child_collection must be a hydra-works collection' unless Hydra::Works.collection? child_collection
15
- Hydra::PCDM::RemoveCollectionFromCollection.call( parent_collection, child_collection )
16
- end
17
-
18
- end
19
- end