Class: RosettAi::Backup::ZipCompressor
- Inherits:
-
Compressor
- Object
- Compressor
- RosettAi::Backup::ZipCompressor
- Defined in:
- lib/rosett_ai/backup/compressor.rb
Overview
ZIP compression using rubyzip gem
Constant Summary
Constants inherited from Compressor
Instance Method Summary collapse
-
#available? ⇒ Boolean
True if the rubyzip gem is loadable.
-
#compress(files, _base_dirs, output_path, level: nil) ⇒ String
The output path.
-
#extension ⇒ String
".zip".
Methods inherited from Compressor
Instance Method Details
#available? ⇒ Boolean
Returns true if the rubyzip gem is loadable.
63 64 65 66 67 68 |
# File 'lib/rosett_ai/backup/compressor.rb', line 63 def available? require 'zip' true rescue LoadError false end |
#compress(files, _base_dirs, output_path, level: nil) ⇒ String
Returns the output path.
80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/rosett_ai/backup/compressor.rb', line 80 def compress(files, _base_dirs, output_path, level: nil) require 'zip' compression_level = level || Zip.default_compression ::Zip::OutputStream.open(output_path) do |zipfile| files.each do |entry| zipfile.put_next_entry(entry[:archive_path], nil, nil, ::Zip::Entry::DEFLATED, compression_level) zipfile.write(File.read(entry[:full_path])) end end output_path end |
#extension ⇒ String
Returns ".zip".
71 72 73 |
# File 'lib/rosett_ai/backup/compressor.rb', line 71 def extension '.zip' end |