app/models/component.rb in ddr-models-2.8.0 vs app/models/component.rb in ddr-models-2.9.0.rc1
- old
+ new
@@ -3,10 +3,11 @@
#
# Examples: Page of a book, track of a recording, etc.
#
class Component < Ddr::Models::Base
+ include Ddr::Models::Captionable
include Ddr::Models::HasContent
include Ddr::Models::HasIntermediateFile
include Ddr::Models::HasMultiresImage
include Ddr::Models::HasStructMetadata
include Ddr::Models::Streamable
@@ -15,10 +16,14 @@
belongs_to :target, :property => :has_external_target, :class_name => 'Target'
alias_method :item, :parent
alias_method :item=, :parent=
+ STRUCTURALLY_RELEVANT_DATASTREAMS = [ Ddr::Datastreams::CAPTION, Ddr::Datastreams::CONTENT,
+ Ddr::Datastreams::INTERMEDIATE_FILE, Ddr::Datastreams::MULTIRES_IMAGE,
+ Ddr::Datastreams::STREAMABLE_MEDIA, Ddr::Datastreams::THUMBNAIL ]
+
def collection
self.parent.parent rescue nil
end
def collection_uri
@@ -28,33 +33,38 @@
def publishable?
parent.present? && parent.published?
end
def default_structure
- build_default_structure if has_content?
+ build_default_structure
end
private
def build_default_structure
document = Ddr::Models::Structure.xml_template
structure = Ddr::Models::Structure.new(document)
metshdr = structure.add_metshdr
structure.add_agent(parent: metshdr, role: Ddr::Models::Structures::Agent::ROLE_CREATOR,
name: Ddr::Models::Structures::Agent::NAME_REPOSITORY_DEFAULT)
- filesec = structure.add_filesec
structmap = structure.add_structmap(type: Ddr::Models::Structure::TYPE_DEFAULT)
- div = structure.add_div(parent: structmap)
- filegrp = structure.add_filegrp(parent: filesec)
- add_use_to_structure(structure, filegrp, div, Ddr::Models::Structure::USE_ORIGINAL_FILE,
- Ddr::Datastreams::CONTENT)
- add_use_to_structure(structure, filegrp, div, Ddr::Models::Structure::USE_PRESERVATION_MASTER_FILE,
- Ddr::Datastreams::CONTENT)
- add_use_to_structure(structure, filegrp, div, Ddr::Models::Structure::USE_INTERMEDIATE_FILE,
- Ddr::Datastreams::INTERMEDIATE_FILE) if has_intermediate_file?
- add_service_file_uses_to_default_structure(structure, filegrp, div)
- add_use_to_structure(structure, filegrp, div, Ddr::Models::Structure::USE_THUMBNAIL_IMAGE,
- Ddr::Datastreams::THUMBNAIL) if has_thumbnail?
+ if has_content?
+ filesec = structure.add_filesec
+ div = structure.add_div(parent: structmap)
+ filegrp = structure.add_filegrp(parent: filesec)
+ add_use_to_structure(structure, filegrp, div, Ddr::Models::Structure::USE_ORIGINAL_FILE,
+ Ddr::Datastreams::CONTENT)
+ add_use_to_structure(structure, filegrp, div, Ddr::Models::Structure::USE_PRESERVATION_MASTER_FILE,
+ Ddr::Datastreams::CONTENT)
+ add_use_to_structure(structure, filegrp, div, Ddr::Models::Structure::USE_INTERMEDIATE_FILE,
+ Ddr::Datastreams::INTERMEDIATE_FILE) if has_intermediate_file?
+ add_service_file_uses_to_default_structure(structure, filegrp, div)
+ add_use_to_structure(structure, filegrp, div, Ddr::Models::Structure::USE_THUMBNAIL_IMAGE,
+ Ddr::Datastreams::THUMBNAIL) if has_thumbnail?
+ add_use_to_structure(structure, filegrp, div, Ddr::Models::Structure::USE_TRANSCRIPT,
+ Ddr::Datastreams::CAPTION) if captioned?
+
+ end
structure
end
def add_service_file_uses_to_default_structure(structure, filegrp, div)
add_use_to_structure(structure, filegrp, div, Ddr::Models::Structure::USE_SERVICE_FILE,