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

Instance Method Details

#file_of_type(uri) ⇒ Object

Finds or Initializes directly contained file with the requested RDF Type

Examples:

file_of_type(::RDF::URI("http://pcdm.org/ExtractedText"))

Parameters:

  • uri (RDF::URI)

    for the desired 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

Examples:

filter_files_by_type(::RDF::URI("http://pcdm.org/ExtractedText"))

Parameters:

  • uri (RDF::URI)

    for the desired 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_objectsObject



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_idsObject



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.

Returns:

  • (Boolean)

    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.

Returns:

  • (Boolean)

    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