class DarwinCore::Archive

Deals with handling DarwinCoreArchive file, and provides meta information and files information about archive

Attributes

eml[R]
meta[R]

Public Class Methods

new(archive_path, tmp_dir) click to toggle source
# File lib/dwc_archive/archive.rb, line 9
def initialize(archive_path, tmp_dir)
  @archive_path = archive_path
  @tmp_dir = tmp_dir
  @expander = DarwinCore::Expander.new(@archive_path, @tmp_dir)
  @expander.unpack
  prepare_metadata
end

Public Instance Methods

clean() click to toggle source
# File lib/dwc_archive/archive.rb, line 31
def clean
  @expander.clean
end
files() click to toggle source
# File lib/dwc_archive/archive.rb, line 23
def files
  @expander.files
end
files_path() click to toggle source
# File lib/dwc_archive/archive.rb, line 27
def files_path
  @expander.path
end
valid?() click to toggle source
# File lib/dwc_archive/archive.rb, line 17
def valid?
  valid = true
  valid = valid && @expander.path && FileTest.exists?(@expander.path)
  valid && files && files.include?("meta.xml")
end

Private Instance Methods

prepare_eml_file() click to toggle source
# File lib/dwc_archive/archive.rb, line 52
def prepare_eml_file
  @eml = nil
  return unless files.include?("eml.xml")

  eml_file = File.open(File.join(@expander.path, "eml.xml"))
  @eml = DarwinCore::XmlReader.from_xml(eml_file)
end
prepare_meta_file() click to toggle source
# File lib/dwc_archive/archive.rb, line 47
def prepare_meta_file
  meta_file = File.open(File.join(@expander.path, "meta.xml"))
  @meta = DarwinCore::XmlReader.from_xml(meta_file)
end
prepare_metadata() click to toggle source
# File lib/dwc_archive/archive.rb, line 37
def prepare_metadata
  if valid?
    prepare_meta_file
    prepare_eml_file
  else
    clean
    raise InvalidArchiveError
  end
end