class ET::ArchiveManager
Attributes
archive[R]
destination[R]
unpacked_files[R]
Public Class Methods
new(archive, destination)
click to toggle source
# File lib/et/archive_manager.rb, line 6 def initialize(archive, destination) @archive = archive @destination = destination end
Public Instance Methods
delete_archive()
click to toggle source
# File lib/et/archive_manager.rb, line 11 def delete_archive File.delete(archive) end
unpack()
click to toggle source
# File lib/et/archive_manager.rb, line 15 def unpack @unpacked_files = [] File.open(archive, "rb") do |tar_gz| uncompress(tar_gz) end @unpacked_files end
Private Instance Methods
create_file(entry)
click to toggle source
# File lib/et/archive_manager.rb, line 37 def create_file(entry) if entry.file? filename = File.join(destination, entry.full_name) FileUtils.mkdir_p(File.dirname(filename)) File.open(filename, "wb") do |f| f.write(entry.read) end File.chmod(entry.header.mode, filename) @unpacked_files << filename end end
process_tar(tar)
click to toggle source
# File lib/et/archive_manager.rb, line 31 def process_tar(tar) Gem::Package::TarReader.new(tar) do |entries| entries.each { |entry| create_file(entry) } end end
uncompress(file)
click to toggle source
# File lib/et/archive_manager.rb, line 25 def uncompress(file) Zlib::GzipReader.open(file) do |tar| process_tar(tar) end end