Class: Oddb2xml::Compressor
- Inherits:
-
Object
- Object
- Oddb2xml::Compressor
- Includes:
- Archive::Tar
- Defined in:
- lib/oddb2xml/compressor.rb
Instance Attribute Summary collapse
-
#contents ⇒ Object
Returns the value of attribute contents.
Instance Method Summary collapse
- #finalize! ⇒ Object
-
#initialize(prefix = 'oddb', options = {}) ⇒ Compressor
constructor
A new instance of Compressor.
Constructor Details
#initialize(prefix = 'oddb', options = {}) ⇒ Compressor
Returns a new instance of Compressor.
11 12 13 14 15 16 17 18 19 |
# File 'lib/oddb2xml/compressor.rb', line 11 def initialize(prefix='oddb', ={}) = [:compress_ext] ||= 'tar.gz' [:format] ||= :xml @compress_file = "#{prefix}_#{@options[:format].to_s}_" + Time.now.strftime("%d.%m.%Y_%H.%M.#{@options[:compress_ext]}") @contents = [] super() end |
Instance Attribute Details
#contents ⇒ Object
Returns the value of attribute contents.
10 11 12 |
# File 'lib/oddb2xml/compressor.rb', line 10 def contents @contents end |
Instance Method Details
#finalize! ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/oddb2xml/compressor.rb', line 20 def finalize! if @contents.empty? return false end begin case @compress_file when /\.tar\.gz$/ tgz = Zlib::GzipWriter.new(File.open(@compress_file, 'wb')) Minitar.pack(@contents, tgz) when /\.zip$/ Zip::ZipFile.open(@compress_file, Zip::ZipFile::CREATE) do |zip| @contents.each do |file| filename = File.basename(file) zip.add(filename, file) end end end if File.exists? @compress_file @contents.each do |file| Oddb2xml.download_finished(file) end end rescue Errno::ENOENT, StandardError Oddb2xml.download_finished(@compress_file) return false end return true end |