class Excavate::Extractors::CabExtractor

Public Instance Methods

extract(target) click to toggle source
# File lib/excavate/extractors/cab_extractor.rb, line 6
def extract(target)
  open_cab(@archive) do |decompressor, cab|
    file = cab.files

    while file
      path = File.join(target, file.filename)
      decompressor.extract(file, path)
      file = file.next
    end
  end
end

Private Instance Methods

open_cab(archive) { |decompressor, cab| ... } click to toggle source
# File lib/excavate/extractors/cab_extractor.rb, line 20
def open_cab(archive)
  decompressor = LibMsPack::CabDecompressor.new
  cab = Utils.silence_stream(STDERR) do
    decompressor.search(archive)
  end

  yield decompressor, cab

  decompressor.close(cab)
  decompressor.destroy
end