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,