Class: Stash::Merritt::SubmissionPackage::DataONEManifestBuilder

Inherits:
Repo::FileBuilder
  • Object
show all
Defined in:
lib/stash/merritt/submission_package/data_one_manifest_builder.rb

Constant Summary collapse

HEADER =
[
  '#%dataonem_0.1',
  '#%profile | http://uc3.cdlib.org/registry/ingest/manifest/mrt-dataone-manifest',
  '#%prefix | dom: | http://uc3.cdlib.org/ontology/dataonem',
  '#%prefix | mrt: | http://uc3.cdlib.org/ontology/mom',
  '#%fields | dom:scienceMetadataFile | dom:scienceMetadataFormat | dom:scienceDataFile | mrt:mimeType'
].join("\n").freeze
METADATA_FILES =
{
  'mrt-datacite.xml' => 'http://datacite.org/schema/kernel-3.1',
  'mrt-oaidc.xml' => 'http://dublincore.org/schemas/xmls/qdc/2008/02/11/qualifieddc.xsd'
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(uploads) ⇒ DataONEManifestBuilder

Returns a new instance of DataONEManifestBuilder.

Parameters:

  • uploads (Array[StashEngine::FileUpload])

    a list of file uploads



23
24
25
26
# File 'lib/stash/merritt/submission_package/data_one_manifest_builder.rb', line 23

def initialize(uploads)
  super(file_name: 'mrt-dataone-manifest.txt')
  @uploads = uploads
end

Instance Attribute Details

#uploadsObject (readonly)

Returns the value of attribute uploads.



20
21
22
# File 'lib/stash/merritt/submission_package/data_one_manifest_builder.rb', line 20

def uploads
  @uploads
end

Instance Method Details

#contentsObject



28
29
30
31
32
33
34
35
36
37
# File 'lib/stash/merritt/submission_package/data_one_manifest_builder.rb', line 28

def contents
  content = [HEADER]
  uploads.each do |upload|
    METADATA_FILES.each do |md_filename, md_schema|
      content << "#{md_filename} | #{md_schema} | #{upload.upload_file_name} | #{upload.upload_content_type}"
    end
  end
  content << "#%eof\n"
  content.join("\n")
end