hydra-pcdm 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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -0
  3. data/Gemfile +0 -4
  4. data/README.md +2 -2
  5. data/hydra-pcdm.gemspec +2 -1
  6. data/lib/hydra/pcdm.rb +21 -30
  7. data/lib/hydra/pcdm/ancestor_checker.rb +18 -0
  8. data/lib/hydra/pcdm/collection_indexer.rb +2 -2
  9. data/lib/hydra/pcdm/deep_member_iterator.rb +31 -0
  10. data/lib/hydra/pcdm/models/concerns/collection_behavior.rb +20 -57
  11. data/lib/hydra/pcdm/models/concerns/object_behavior.rb +12 -37
  12. data/lib/hydra/pcdm/models/concerns/pcdm_behavior.rb +34 -0
  13. data/lib/hydra/pcdm/object_indexer.rb +1 -1
  14. data/lib/hydra/pcdm/services/file/get_mime_type.rb +1 -1
  15. data/lib/hydra/pcdm/validators.rb +8 -0
  16. data/lib/hydra/pcdm/validators/ancestor_validator.rb +26 -0
  17. data/lib/hydra/pcdm/validators/composite_validator.rb +17 -0
  18. data/lib/hydra/pcdm/validators/pcdm_object_validator.rb +9 -0
  19. data/lib/hydra/pcdm/validators/pcdm_validator.rb +9 -0
  20. data/lib/hydra/pcdm/version.rb +1 -1
  21. data/lib/hydra/pcdm/vocab/pcdm_terms.rb +1 -1
  22. data/spec/hydra/pcdm/ancestor_checker_spec.rb +29 -0
  23. data/spec/hydra/pcdm/collection_indexer_spec.rb +11 -11
  24. data/spec/hydra/pcdm/deep_member_iterator_spec.rb +52 -0
  25. data/spec/hydra/pcdm/models/collection_spec.rb +691 -17
  26. data/spec/hydra/pcdm/models/file_spec.rb +16 -0
  27. data/spec/hydra/pcdm/models/object_spec.rb +576 -27
  28. data/spec/hydra/pcdm/object_indexer_spec.rb +6 -6
  29. data/spec/spec_helper.rb +8 -1
  30. metadata +31 -52
  31. data/lib/hydra/pcdm/services/collection/add_collection.rb +0 -20
  32. data/lib/hydra/pcdm/services/collection/add_object.rb +0 -19
  33. data/lib/hydra/pcdm/services/collection/add_related_object.rb +0 -21
  34. data/lib/hydra/pcdm/services/collection/get_collections.rb +0 -18
  35. data/lib/hydra/pcdm/services/collection/get_objects.rb +0 -18
  36. data/lib/hydra/pcdm/services/collection/get_related_objects.rb +0 -17
  37. data/lib/hydra/pcdm/services/collection/remove_collection.rb +0 -36
  38. data/lib/hydra/pcdm/services/collection/remove_object.rb +0 -43
  39. data/lib/hydra/pcdm/services/collection/remove_related_object.rb +0 -36
  40. data/lib/hydra/pcdm/services/object/add_object.rb +0 -20
  41. data/lib/hydra/pcdm/services/object/add_related_object.rb +0 -21
  42. data/lib/hydra/pcdm/services/object/get_objects.rb +0 -18
  43. data/lib/hydra/pcdm/services/object/get_related_objects.rb +0 -17
  44. data/lib/hydra/pcdm/services/object/remove_object.rb +0 -43
  45. data/lib/hydra/pcdm/services/object/remove_related_object.rb +0 -36
  46. data/spec/hydra/pcdm/services/collection/add_collection_spec.rb +0 -197
  47. data/spec/hydra/pcdm/services/collection/add_object_spec.rb +0 -132
  48. data/spec/hydra/pcdm/services/collection/add_related_object_spec.rb +0 -94
  49. data/spec/hydra/pcdm/services/collection/get_collections_spec.rb +0 -40
  50. data/spec/hydra/pcdm/services/collection/get_objects_spec.rb +0 -40
  51. data/spec/hydra/pcdm/services/collection/get_related_objects_spec.rb +0 -37
  52. data/spec/hydra/pcdm/services/collection/remove_collection_spec.rb +0 -143
  53. data/spec/hydra/pcdm/services/collection/remove_object_spec.rb +0 -180
  54. data/spec/hydra/pcdm/services/collection/remove_related_object_spec.rb +0 -146
  55. data/spec/hydra/pcdm/services/file/add_type_spec.rb +0 -19
  56. data/spec/hydra/pcdm/services/object/add_object_spec.rb +0 -186
  57. data/spec/hydra/pcdm/services/object/add_related_object_spec.rb +0 -94
  58. data/spec/hydra/pcdm/services/object/get_objects_spec.rb +0 -33
  59. data/spec/hydra/pcdm/services/object/get_related_objects_spec.rb +0 -39
  60. data/spec/hydra/pcdm/services/object/remove_object_spec.rb +0 -158
  61. data/spec/hydra/pcdm/services/object/remove_related_object_spec.rb +0 -126
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c4ca4330987a12626e2dd8a45e54d08e83b8c07
4
- data.tar.gz: 99e3953956fe7a5a45b6c14bbee233d14e32eb2a
3
+ metadata.gz: c08bc42e4a5ea8d987f0830db5474b9e2d7c1ada
4
+ data.tar.gz: 7f3e582637ddb0254b8cc399ab71d45f9f7ac482
5
5
  SHA512:
6
- metadata.gz: 5a0af66d3e277f5d2f05dbb2e96043742f1faeec169641cf64058c3a89dc7762bfd93ca7ed48055c621fa0cc3a463b8492d5dc3d0351a996e248a138c081ae66
7
- data.tar.gz: 43f4e5f13d121da66b59c54a496b538d2cd8bbb74b4be5fa8bfb60944f793d485313e2aa1d0aec23e5bceb6dbd0a6f4ae09f7eaaff141f355ff913ff650d31bc
6
+ metadata.gz: 70d9932eddb9b3c3581ef2d14e7628fa15b6034d4dc607d3d92df74ea92ce19d40b5f5712b6eb2ef8421f3f4cd59a382dc683368eec2a2a123f8a4790bdcd913
7
+ data.tar.gz: b5b4827cc4a421cb9f35821d48504c0cbf4c072e191fad3bf29bcdbcdcb76275de3846c0e124f60e47c45d606a8a4b80967f6ee2cb780c29a03a1c84009e41a3
data/.travis.yml CHANGED
@@ -5,6 +5,8 @@ bundler_args: --without debug
5
5
  env:
6
6
  global:
7
7
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
8
+ jdk:
9
+ - oraclejdk8
8
10
  rvm:
9
11
  - 2.1
10
12
  - 2.2
@@ -12,3 +14,5 @@ rvm:
12
14
  matrix:
13
15
  allow_failures:
14
16
  - rvm: jruby-head
17
+ jdk:
18
+ - oraclejdk8
data/Gemfile CHANGED
@@ -1,9 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'activefedora-aggregation', github: 'projecthydra-labs/activefedora-aggregation'
4
- gem 'active-fedora', github: 'projecthydra/active_fedora'
5
-
6
-
7
3
  unless ENV['CI']
8
4
  gem 'pry'
9
5
  gem 'pry-byebug'
data/README.md CHANGED
@@ -33,12 +33,12 @@ We are using [Web ACL](http://www.w3.org/wiki/WebAccessControl) as implemented b
33
33
 
34
34
  ## PCDM Model
35
35
 
36
- Reference: [Portland Common Data Model](https://wiki.duraspace.org/x/9IoOB)
36
+ Reference: [Portland Common Data Model](https://github.com/duraspace/pcdm/wiki)
37
37
 
38
38
 
39
39
  ### Model Definition
40
40
 
41
- ![PCDM Model Definition](https://wiki.duraspace.org/download/attachments/68061940/coll-object-file.png?version=1&modificationDate=1425932362178&api=v2)
41
+ ![PCDM Model Definition](https://raw.githubusercontent.com/wiki/duraspace/pcdm/images/coll-object-file.png)
42
42
 
43
43
 
44
44
  ### Example
data/hydra-pcdm.gemspec CHANGED
@@ -19,7 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency 'activefedora-aggregation', '~> 0.2.0'
22
+ spec.add_dependency 'activefedora-aggregation', '~> 0.4'
23
+ spec.add_dependency 'mime-types', '>= 1'
23
24
 
24
25
  spec.add_development_dependency 'bundler', '~> 1.6'
25
26
  spec.add_development_dependency 'jettywrapper', '>= 2.0.0'
data/lib/hydra/pcdm.rb CHANGED
@@ -1,4 +1,7 @@
1
1
  require 'active_support'
2
+ require 'mime/types'
3
+ require 'active_fedora/aggregation'
4
+
2
5
 
3
6
  module Hydra
4
7
  module PCDM
@@ -10,59 +13,47 @@ module Hydra
10
13
  autoload :SweetjplVocabularies, 'hydra/pcdm/vocab/sweetjpl_terms'
11
14
 
12
15
  # models
13
- autoload :Collection, 'hydra/pcdm/models/collection'
14
- autoload :Object, 'hydra/pcdm/models/object'
15
- autoload :File, 'hydra/pcdm/models/file'
16
+ autoload_under 'models' do
17
+ autoload :Collection
18
+ autoload :Object
19
+ autoload :File
20
+ end
16
21
 
17
22
  # behavior concerns
18
- autoload :CollectionBehavior, 'hydra/pcdm/models/concerns/collection_behavior'
19
- autoload :ObjectBehavior, 'hydra/pcdm/models/concerns/object_behavior'
23
+ autoload_under 'models/concerns' do
24
+ autoload :CollectionBehavior
25
+ autoload :ObjectBehavior
26
+ autoload :PcdmBehavior
27
+ end
20
28
 
21
29
  autoload :CollectionIndexer
22
30
  autoload :ObjectIndexer
23
31
 
24
- # collection services
25
- autoload :AddCollectionToCollection, 'hydra/pcdm/services/collection/add_collection'
26
- autoload :AddObjectToCollection, 'hydra/pcdm/services/collection/add_object'
27
- autoload :AddRelatedObjectToCollection, 'hydra/pcdm/services/collection/add_related_object'
28
- autoload :GetCollectionsFromCollection, 'hydra/pcdm/services/collection/get_collections'
29
- autoload :GetObjectsFromCollection, 'hydra/pcdm/services/collection/get_objects'
30
- autoload :GetRelatedObjectsFromCollection, 'hydra/pcdm/services/collection/get_related_objects'
31
- autoload :RemoveCollectionFromCollection, 'hydra/pcdm/services/collection/remove_collection'
32
- autoload :RemoveObjectFromCollection, 'hydra/pcdm/services/collection/remove_object'
33
- autoload :RemoveRelatedObjectFromCollection, 'hydra/pcdm/services/collection/remove_related_object'
34
-
35
32
  # file services
36
33
  autoload :AddTypeToFile, 'hydra/pcdm/services/file/add_type'
37
34
  autoload :GetMimeTypeForFile, 'hydra/pcdm/services/file/get_mime_type'
38
35
 
36
+ # Iterators
37
+ autoload :DeepMemberIterator, 'hydra/pcdm/deep_member_iterator'
39
38
 
40
- # object services
41
- autoload :AddFileToObject, 'hydra/pcdm/services/object/add_file'
42
- autoload :AddObjectToObject, 'hydra/pcdm/services/object/add_object'
43
- autoload :AddRelatedObjectToObject, 'hydra/pcdm/services/object/add_related_object'
44
- autoload :CreateObject, 'hydra/pcdm/services/object/create'
45
- autoload :GetObjectsFromObject, 'hydra/pcdm/services/object/get_objects'
46
- autoload :GetRelatedObjectsFromObject, 'hydra/pcdm/services/object/get_related_objects'
47
- autoload :GetFilesFromObject, 'hydra/pcdm/services/object/get_collections'
48
- autoload :RemoveObjectFromObject, 'hydra/pcdm/services/object/remove_object'
49
- autoload :RemoveRelatedObjectFromObject, 'hydra/pcdm/services/object/remove_related_object'
50
-
39
+ # Associations
40
+ autoload :AncestorChecker, 'hydra/pcdm/ancestor_checker'
41
+ autoload :Validators, 'hydra/pcdm/validators'
51
42
 
52
43
  # model validations
53
44
  def self.collection? collection
54
45
  return false unless collection.respond_to? :type
55
- collection.type.include? RDFVocabularies::PCDMTerms.Collection
46
+ Array(collection.type).include? RDFVocabularies::PCDMTerms.Collection
56
47
  end
57
48
 
58
49
  def self.object? object
59
50
  return false unless object.respond_to? :type
60
- object.type.include? RDFVocabularies::PCDMTerms.Object
51
+ Array(object.type).include? RDFVocabularies::PCDMTerms.Object
61
52
  end
62
53
 
63
54
  def self.file? file
64
55
  return false unless file.respond_to? :metadata_node
65
- file.metadata_node.type.include? RDFVocabularies::PCDMTerms.File
56
+ Array(file.metadata_node.type).include? RDFVocabularies::PCDMTerms.File
66
57
  end
67
58
 
68
59
  end
@@ -0,0 +1,18 @@
1
+ module Hydra::PCDM
2
+ ##
3
+ # Checks whether or not one object is an ancestor of another.
4
+ class AncestorChecker
5
+ attr_reader :record
6
+
7
+ # @param [ActiveFedora::Base] record The object which may have ancestors.
8
+ def initialize(record)
9
+ @record = record
10
+ end
11
+
12
+ # @param [#members] potential_ancestor Object which may be the ancestor of
13
+ # the initialized record.
14
+ def ancestor?(potential_ancestor)
15
+ record == potential_ancestor || Hydra::PCDM::DeepMemberIterator.new(potential_ancestor).include?(record)
16
+ end
17
+ end
18
+ end
@@ -3,8 +3,8 @@ module Hydra::PCDM
3
3
 
4
4
  def generate_solr_document
5
5
  super.tap do |solr_doc|
6
- solr_doc["members_ssim"] = object.member_ids
7
- solr_doc["child_collections_ssim"] = object.child_collections.map { |o| o.id }
6
+ solr_doc["member_ids_ssim"] = object.member_ids
7
+ solr_doc["child_collection_ids_ssim"] = object.child_collection_ids
8
8
  end
9
9
  end
10
10
 
@@ -0,0 +1,31 @@
1
+ module Hydra::PCDM
2
+ ##
3
+ # Iterates over a record's members and all of their members in a breadth-first
4
+ # search.
5
+ class DeepMemberIterator
6
+ include Enumerable
7
+ attr_reader :record
8
+ # @param [#members] record The object whose members are iterated across.
9
+ def initialize(record)
10
+ @record = HasMembers.new(record)
11
+ end
12
+
13
+ def each
14
+ record.members.each do |member|
15
+ yield member
16
+ end
17
+ record.members.each do |member|
18
+ DeepMemberIterator.new(member).each do |deep_member|
19
+ yield deep_member
20
+ end
21
+ end
22
+ end
23
+ end
24
+ ##
25
+ # Small decorator to ensure that #members isn't undefined.
26
+ class HasMembers < SimpleDelegator
27
+ def members
28
+ __getobj__.try(:members) || []
29
+ end
30
+ end
31
+ end
@@ -1,79 +1,42 @@
1
- require 'active_fedora/aggregation'
2
-
3
1
  module Hydra::PCDM
2
+
3
+ # behavior:
4
+ # 1) Hydra::PCDM::Collection can aggregate (pcdm:hasMember) Hydra::PCDM::Collection (no infinite loop, e.g., A -> B -> C -> A)
5
+ # 2) Hydra::PCDM::Collection can aggregate (pcdm:hasMember) Hydra::PCDM::Object
6
+ # 3) Hydra::PCDM::Collection can aggregate (ore:aggregates) Hydra::PCDM::Object (Object related to the Collection)
7
+
8
+ # 4) Hydra::PCDM::Collection can NOT aggregate non-PCDM object
9
+ # 5) Hydra::PCDM::Collection can NOT contain (pcdm:hasFile) Hydra::PCDM::File
10
+
11
+ # 6) Hydra::PCDM::Collection can have descriptive metadata
12
+ # 7) Hydra::PCDM::Collection can have access metadata
13
+ #
4
14
  module CollectionBehavior
5
15
  extend ActiveSupport::Concern
6
16
 
7
17
  included do
8
18
  type RDFVocabularies::PCDMTerms.Collection
19
+ include ::Hydra::PCDM::PcdmBehavior
9
20
 
10
- aggregates :members, predicate: RDFVocabularies::PCDMTerms.hasMember,
11
- class_name: "ActiveFedora::Base"
12
-
13
- indirectly_contains :related_objects, has_member_relation: RDF::Vocab::ORE.aggregates,
14
- inserted_content_relation: RDF::Vocab::ORE.proxyFor, class_name: "ActiveFedora::Base",
15
- through: 'ActiveFedora::Aggregation::Proxy', foreign_key: :target
21
+ filters_association :members, as: :child_collections, condition: :pcdm_collection?
16
22
  end
17
23
 
18
24
  module ClassMethods
19
25
  def indexer
20
26
  Hydra::PCDM::CollectionIndexer
21
27
  end
22
- end
23
-
24
- # behavior:
25
- # 1) Hydra::PCDM::Collection can aggregate (pcdm:hasMember) Hydra::PCDM::Collection (no infinite loop, e.g., A -> B -> C -> A)
26
- # 2) Hydra::PCDM::Collection can aggregate (pcdm:hasMember) Hydra::PCDM::Object
27
- # 3) Hydra::PCDM::Collection can aggregate (ore:aggregates) Hydra::PCDM::Object (Object related to the Collection)
28
-
29
- # 4) Hydra::PCDM::Collection can NOT aggregate non-PCDM object
30
- # 5) Hydra::PCDM::Collection can NOT contain (pcdm:hasFile) Hydra::PCDM::File
31
-
32
- # 6) Hydra::PCDM::Collection can have descriptive metadata
33
- # 7) Hydra::PCDM::Collection can have access metadata
34
-
35
- def child_collections= collections
36
- raise ArgumentError, "each collection must be a pcdm collection" unless collections.all? { |c| Hydra::PCDM.collection? c }
37
- raise ArgumentError, "a collection can't be an ancestor of itself" if collection_ancestor?(collections)
38
- self.members = objects + collections
39
- end
40
-
41
- def child_collections
42
- members.to_a.select { |m| Hydra::PCDM.collection? m }
43
- end
44
-
45
- def objects= objects
46
- raise ArgumentError, "each object must be a pcdm object" unless objects.all? { |o| Hydra::PCDM.object? o }
47
- self.members = child_collections + objects
48
- end
49
-
50
- def objects
51
- members.to_a.select { |m| Hydra::PCDM.object? m }
52
- end
53
-
54
- def collection_ancestor? collections
55
- collections.each do |check|
56
- return true if check.id == self.id
57
- return true if ancestor?(check)
28
+
29
+ def type_validator
58
30
  end
59
- false
60
31
  end
61
32
 
62
- def ancestor? collection
63
- return true if collection.id == self.id
64
- return false if collection.child_collections.empty?
65
- current_collections = collection.child_collections
66
- next_batch = []
67
- while !current_collections.empty? do
68
- current_collections.each do |c|
69
- return true if c.id == self.id
70
- next_batch += c.child_collections
71
- end
72
- current_collections = next_batch
73
- end
33
+ def pcdm_object?
74
34
  false
75
35
  end
76
36
 
37
+ def pcdm_collection?
38
+ true
39
+ end
77
40
  end
78
41
  end
79
42
 
@@ -1,5 +1,3 @@
1
- require 'active_fedora/aggregation'
2
-
3
1
  module Hydra::PCDM
4
2
 
5
3
  # behavior:
@@ -16,56 +14,34 @@ module Hydra::PCDM
16
14
 
17
15
  included do
18
16
  type RDFVocabularies::PCDMTerms.Object
19
-
20
- aggregates :members, predicate: RDFVocabularies::PCDMTerms.hasMember,
21
- class_name: "ActiveFedora::Base"
22
-
23
- indirectly_contains :related_objects, has_member_relation: RDF::Vocab::ORE.aggregates,
24
- inserted_content_relation: RDF::Vocab::ORE.proxyFor, class_name: "ActiveFedora::Base",
25
- through: 'ActiveFedora::Aggregation::Proxy', foreign_key: :target
17
+ include ::Hydra::PCDM::PcdmBehavior
26
18
 
27
19
  directly_contains :files, has_member_relation: RDFVocabularies::PCDMTerms.hasFile,
28
20
  class_name: "Hydra::PCDM::File"
29
-
30
21
  end
31
22
 
32
23
  module ClassMethods
33
24
  def indexer
34
25
  Hydra::PCDM::ObjectIndexer
35
26
  end
36
- end
37
27
 
38
- def objects= objects
39
- raise ArgumentError, "each object must be a pcdm object" unless objects.all? { |o| Hydra::PCDM.object? o }
40
- raise ArgumentError, "an object can't be an ancestor of itself" if object_ancestor?(objects)
41
- self.members = objects
28
+ def type_validator
29
+ @type_validator ||= Validators::PCDMObjectValidator
30
+ end
42
31
  end
43
32
 
44
- def objects
45
- members.to_a.select { |m| Hydra::PCDM.object? m }
33
+ # @return [Boolean] whether this instance is a PCDM Object.
34
+ def pcdm_object?
35
+ true
46
36
  end
47
37
 
48
- def object_ancestor? objects
49
- objects.each do |check|
50
- return true if check.id == self.id
51
- return true if ancestor?(check)
52
- end
38
+ # @return [Boolean] whether this instance is a PCDM Collection.
39
+ def pcdm_collection?
53
40
  false
54
41
  end
55
42
 
56
- def ancestor? object
57
- return true if object.id == self.id
58
- return false if object.objects.empty?
59
- current_objects = object.objects
60
- next_batch = []
61
- while !current_objects.empty? do
62
- current_objects.each do |c|
63
- return true if c.id == self.id
64
- next_batch += c.objects
65
- end
66
- current_objects = next_batch
67
- end
68
- false
43
+ def parent_objects
44
+ aggregated_by.select(&:pcdm_object?)
69
45
  end
70
46
 
71
47
  def contains= files
@@ -81,7 +57,7 @@ module Hydra::PCDM
81
57
  # filter_files_by_type(::RDF::URI("http://pcdm.org/ExtractedText"))
82
58
  def filter_files_by_type uri
83
59
  self.files.reject do |file|
84
- file.metadata_node.query(predicate: RDF.type, object: uri).map(&:object).empty?
60
+ !file.metadata_node.type.include?(uri)
85
61
  end
86
62
  end
87
63
 
@@ -98,7 +74,6 @@ module Hydra::PCDM
98
74
  return matching_files.first
99
75
  end
100
76
  end
101
-
102
77
  end
103
78
  end
104
79
 
@@ -0,0 +1,34 @@
1
+ module Hydra::PCDM
2
+ module PcdmBehavior
3
+ extend ActiveSupport::Concern
4
+ included do
5
+ aggregates :members, predicate: RDFVocabularies::PCDMTerms.hasMember,
6
+ class_name: "ActiveFedora::Base",
7
+ type_validator: type_validator
8
+ filters_association :members, as: :child_objects, condition: :pcdm_object?
9
+ indirectly_contains :related_objects, has_member_relation: RDF::Vocab::ORE.aggregates,
10
+ inserted_content_relation: RDF::Vocab::ORE.proxyFor, class_name: "ActiveFedora::Base",
11
+ through: 'ActiveFedora::Aggregation::Proxy', foreign_key: :target,
12
+ type_validator: Validators::PCDMObjectValidator
13
+ end
14
+
15
+ module ClassMethods
16
+ def type_validator
17
+ @type_validator ||= Validators::CompositeValidator.new(
18
+ super,
19
+ Validators::PCDMValidator,
20
+ Validators::AncestorValidator
21
+ )
22
+ end
23
+ end
24
+
25
+ def parents
26
+ aggregated_by
27
+ end
28
+
29
+ def parent_collections
30
+ aggregated_by.select(&:pcdm_collection?)
31
+ end
32
+
33
+ end
34
+ end
@@ -2,7 +2,7 @@ module Hydra::PCDM
2
2
  class ObjectIndexer < ActiveFedora::IndexingService
3
3
  def generate_solr_document
4
4
  super.tap do |solr_doc|
5
- solr_doc["objects_ssim"] = object.objects.map { |o| o.id }
5
+ solr_doc["child_object_ids_ssim"] = object.child_object_ids
6
6
  end
7
7
  end
8
8