Class: Furoshiki::Zip::Recursive
- Inherits:
-
Object
- Object
- Furoshiki::Zip::Recursive
- Defined in:
- lib/furoshiki/zip/recursive.rb
Overview
Adapted from rubyzip’s sample, ZipFileGenerator
This is a utility class that uses rubyzip to recursively generate a zip file containing the given entries and all of their children.
Best used through frontend classes Furoshiki::Zip::Directory or Furoshiki::Zip::DirectoryContents
To zip the directory “/tmp/input” so that unarchiving gives you a single directory “input”:
zip = Furoshiki::Zip::Recursive
entries = Pathname.new("/tmp/input").entries
zip_prefix = ''
disk_prefix = '/tmp'
output_file = '/tmp/out.zip'
zf.write(entries, disk_prefix, zip_prefix, output_file)
Instance Method Summary collapse
-
#initialize(output_file) ⇒ Recursive
constructor
A new instance of Recursive.
- #write(entries, disk_prefix, zip_prefix) ⇒ Object
Constructor Details
#initialize(output_file) ⇒ Recursive
Returns a new instance of Recursive.
26 27 28 |
# File 'lib/furoshiki/zip/recursive.rb', line 26 def initialize(output_file) @output_file = output_file.to_s end |
Instance Method Details
#write(entries, disk_prefix, zip_prefix) ⇒ Object
34 35 36 37 38 |
# File 'lib/furoshiki/zip/recursive.rb', line 34 def write(entries, disk_prefix, zip_prefix) io = ::Zip::ZipFile.open(@output_file, ::Zip::ZipFile::CREATE); write_entries(entries, disk_prefix, zip_prefix, io) io.close(); end |