class Excavate::Extractors::TarExtractor

Public Instance Methods

extract(target) click to toggle source
# File lib/excavate/extractors/tar_extractor.rb, line 6
def extract(target)
  File.open(@archive, "rb") do |archive_file|
    Gem::Package::TarReader.new(archive_file) do |tar|
      tar.each do |tarfile|
        save_tar_file(tarfile, target)
      end
    end
  end
end

Private Instance Methods

save_tar_file(file, dir) click to toggle source
# File lib/excavate/extractors/tar_extractor.rb, line 18
def save_tar_file(file, dir)
  path = File.join(dir, file.full_name)

  if file.directory?
    FileUtils.mkdir_p(path)
  else
    File.write(path, file.read, mode: "wb")
  end
end