Sha256: 2e23f3fb5252831d4012c4094ba836fe564f7dbe07420f35c12d1ee47cf9d99a

Contents?: true

Size: 911 Bytes

Versions: 40

Compression:

Stored size: 911 Bytes

Contents

require 'nokogiri'
class DarwinCore
  class Archive
    attr_reader :meta, :eml
    def initialize(archive_path, tmp_dir)
      @archive_path = archive_path
      @tmp_dir = tmp_dir
      @expander = DarwinCore::Expander.new(@archive_path, @tmp_dir)
      @expander.unpack
      if valid?
        @meta = DarwinCore::XmlReader.from_xml(open(File.join(@expander.path, 'meta.xml')))
        @eml = files.include?("eml.xml") ? DarwinCore::XmlReader.from_xml(open(File.join(@expander.path, 'eml.xml'))) : nil
      else
        clean
        raise InvalidArchiveError
      end
    end

    def valid?
      valid = true
      valid = valid && @expander.path && FileTest.exists?(@expander.path)
      valid = valid && files && files.include?('meta.xml')
    end
    
    def files
      @expander.files
    end

    def files_path
      @expander.path
    end

    def clean
      @expander.clean
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
dwc-archive-0.9.6 lib/dwc-archive/archive.rb
dwc-archive-0.9.5 lib/dwc-archive/archive.rb
dwc-archive-0.9.4 lib/dwc-archive/archive.rb
dwc-archive-0.9.3 lib/dwc-archive/archive.rb
dwc-archive-0.9.2 lib/dwc-archive/archive.rb
dwc-archive-0.9.1 lib/dwc-archive/archive.rb
dwc-archive-0.9.0 lib/dwc-archive/archive.rb
dwc-archive-0.8.3 lib/dwc-archive/archive.rb
dwc-archive-0.8.2 lib/dwc-archive/archive.rb
dwc-archive-0.8.1 lib/dwc-archive/archive.rb
dwc-archive-0.8.0 lib/dwc-archive/archive.rb
dwc-archive-0.7.18 lib/dwc-archive/archive.rb
dwc-archive-0.7.17 lib/dwc-archive/archive.rb
dwc-archive-0.7.16 lib/dwc-archive/archive.rb
dwc-archive-0.7.15 lib/dwc-archive/archive.rb
dwc-archive-0.7.14 lib/dwc-archive/archive.rb
dwc-archive-0.7.13 lib/dwc-archive/archive.rb
dwc-archive-0.7.12 lib/dwc-archive/archive.rb
dwc-archive-0.7.11 lib/dwc-archive/archive.rb
dwc-archive-0.7.10 lib/dwc-archive/archive.rb