Class: Packer::Binary::Compressor
- Inherits:
-
Object
- Object
- Packer::Binary::Compressor
- Extended by:
- Helpers
- Defined in:
- lib/packer/binary/compressor.rb
Overview
This class is used to zip and unzip files and directories
Class Method Summary collapse
-
.extract(input_file, output_dir) ⇒ Object
Unzip the input zipfile.
-
.write(input_dir, output_file) ⇒ Object
Zip the input directory.
Methods included from Helpers
debug, err, msg, stderr, stdout, system_command
Class Method Details
.extract(input_file, output_dir) ⇒ Object
Unzip the input zipfile
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/packer/binary/compressor.rb', line 22 def extract(input_file, output_dir) Zip::File.open(input_file) do |zip_file| # Handle entries one by one zip_file.each do |entry| # Extract to file/directory/symlink dest_file = "#{output_dir}/#{entry.name}" debug("Extracting to #{dest_file}") entry.extract(dest_file) end end end |
.write(input_dir, output_file) ⇒ Object
Zip the input directory.
11 12 13 14 15 16 17 18 19 |
# File 'lib/packer/binary/compressor.rb', line 11 def write(input_dir, output_file) entries = Dir.entries(input_dir) entries.delete('.') entries.delete('..') io = Zip::File.open(output_file, Zip::File::CREATE) write_entries(entries, '', io, input_dir, output_file) io.close end |