Class: ZipFileGenerator
- Inherits:
-
Object
- Object
- ZipFileGenerator
- Defined in:
- app/models/zip_file_generator.rb
Instance Method Summary collapse
-
#initialize(input_dir, output_file, cleanup: false) ⇒ ZipFileGenerator
constructor
A new instance of ZipFileGenerator.
-
#write ⇒ Object
Zip the input directory and write to the output file.
Constructor Details
#initialize(input_dir, output_file, cleanup: false) ⇒ ZipFileGenerator
Returns a new instance of ZipFileGenerator.
6 7 8 9 10 |
# File 'app/models/zip_file_generator.rb', line 6 def initialize(input_dir, output_file, cleanup: false) @input_dir = Pathname.new(input_dir) @output_file = output_file @cleanup = cleanup end |
Instance Method Details
#write ⇒ Object
Zip the input directory and write to the output file
13 14 15 16 17 18 19 20 21 |
# File 'app/models/zip_file_generator.rb', line 13 def write entries = @input_dir.find.select { |path| path.file? }.map { |path| path.relative_path_from(@input_dir) } Zip::File.open(@output_file, create: true) do |zip| entries.each { |entry| add_entry_to_zip(entry, zip) } end cleanup_files if @cleanup end |