Module: Hydra::PCDM::ObjectBehavior
- Extended by:
- ActiveSupport::Concern
- Included in:
- Object
- Defined in:
- lib/hydra/pcdm/models/concerns/object_behavior.rb
Overview
behavior:
1) Hydra::PCDM::Object can aggregate (pcdm:hasMember) Hydra::PCDM::Object
2) Hydra::PCDM::Object can aggregate (ore:aggregates) Hydra::PCDM::Object (Object related to the Object)
3) Hydra::PCDM::Object can contain (pcdm:hasFile) Hydra::PCDM::File
4) Hydra::PCDM::Object can contain (pcdm:hasRelatedFile) Hydra::PCDM::File
5) Hydra::PCDM::Object can NOT aggregate Hydra::PCDM::Collection
6) Hydra::PCDM::Object can NOT aggregate non-PCDM object
7) Hydra::PCDM::Object can have descriptive metadata
8) Hydra::PCDM::Object can have access metadata
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#file_of_type(uri) ⇒ Object
Finds or Initializes directly contained file with the requested RDF Type.
-
#filter_files_by_type(uri) ⇒ Object
Returns directly contained files that have the requested RDF Type.
- #in_objects ⇒ Object
- #member_of_collection_ids ⇒ Object
-
#pcdm_collection? ⇒ Boolean
Whether this instance is a PCDM Collection.
-
#pcdm_object? ⇒ Boolean
Whether this instance is a PCDM Object.
Instance Method Details
#file_of_type(uri) ⇒ Object
Finds or Initializes directly contained file with the requested RDF Type
72 73 74 75 76 |
# File 'lib/hydra/pcdm/models/concerns/object_behavior.rb', line 72 def file_of_type(uri) matching_files = filter_files_by_type(uri) return matching_files.first unless matching_files.empty? Hydra::PCDM::AddTypeToFile.call(files.build, uri) end |
#filter_files_by_type(uri) ⇒ Object
Returns directly contained files that have the requested RDF Type
62 63 64 65 66 |
# File 'lib/hydra/pcdm/models/concerns/object_behavior.rb', line 62 def filter_files_by_type(uri) files.reject do |file| !file..type.include?(uri) end end |
#in_objects ⇒ Object
50 51 52 |
# File 'lib/hydra/pcdm/models/concerns/object_behavior.rb', line 50 def in_objects member_of.select(&:pcdm_object?).to_a end |
#member_of_collection_ids ⇒ Object
54 55 56 |
# File 'lib/hydra/pcdm/models/concerns/object_behavior.rb', line 54 def member_of_collection_ids member_of_collections.map(&:id) end |
#pcdm_collection? ⇒ Boolean
Returns whether this instance is a PCDM Collection.
46 47 48 |
# File 'lib/hydra/pcdm/models/concerns/object_behavior.rb', line 46 def pcdm_collection? false end |
#pcdm_object? ⇒ Boolean
Returns whether this instance is a PCDM Object.
41 42 43 |
# File 'lib/hydra/pcdm/models/concerns/object_behavior.rb', line 41 def pcdm_object? true end |