class Merritt::Manifest::DataONE

A specialization of {Manifest} for DataONE.

Constants

DATA_FILE
METADATA_FILE
METADATA_FILES
METADATA_FORMAT
MIME_TYPE

Public Class Methods

new(files:) click to toggle source

Creates a new {Manifest::DataONE} @param files [Array<Manifest::File>] an array of data files to be converted to entries.

(Note that these not be actual {Manifest::File} objects so long as they respond to
`#file_name` and `#mime_type`)
Calls superclass method Merritt::Manifest::new
# File lib/merritt/manifest/data_one.rb, line 12
def initialize(files:)
  super(
    conformance: 'dataonem_0.1',
    profile: 'http://uc3.cdlib.org/registry/ingest/manifest/mrt-dataone-manifest',
    prefixes: {
      dom: 'http://uc3.cdlib.org/ontology/dataonem',
      mrt: 'http://uc3.cdlib.org/ontology/mom'
    },
    fields: [METADATA_FILE, METADATA_FORMAT, DATA_FILE, MIME_TYPE],
    entries: to_entries(files)
  )
end

Private Instance Methods

to_entries(files) click to toggle source
# File lib/merritt/manifest/data_one.rb, line 37
def to_entries(files)
  rows = files.product(METADATA_FILES.to_a).map(&:flatten)
  rows.map do |file, md_name, md_url|
    {
      METADATA_FILE => md_name,
      METADATA_FORMAT => md_url,
      DATA_FILE => file.file_name,
      MIME_TYPE => Merritt::Manifest::Fields::Object::MIME_TYPE.value_from(file)
    }
  end
end