Sha256: b34861e45885c6a9ed5c30bc17b50a1c63c801314bc684a657fdcb747ce1573a
Contents?: true
Size: 1.56 KB
Versions: 1
Compression:
Stored size: 1.56 KB
Contents
module Merritt class Manifest # A specialization of {Manifest} for DataONE. class DataONE < Manifest # 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 # `#name` and `#type`) 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 METADATA_FILE = 'dom:scienceMetadataFile'.freeze METADATA_FORMAT = 'dom:scienceMetadataFormat'.freeze DATA_FILE = 'dom:scienceDataFile'.freeze MIME_TYPE = 'mrt:mimeType'.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 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.name, MIME_TYPE => file.type } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
merritt-manifest-0.1.0 | lib/merritt/manifest/data_one.rb |