Sha256: ae054400b0ca2115ab464dabf7cb9ca38dcab579e6828a7b84b720bbb2df0064

Contents?: true

Size: 1.6 KB

Versions: 21

Compression:

Stored size: 1.6 KB

Contents

# encoding: utf-8

require 'zlib'
require 'minitar'
require 'zip'

module Oddb2xml
 class Compressor
    include Archive::Tar
    attr_accessor :contents
    def initialize(prefix='oddb', options={})
      @options = options
      @options[:compress_ext] ||= 'tar.gz'
      @options[:format]       ||= :xml
      @compress_file = "#{prefix}_#{@options[:format].to_s}_" + Time.now.strftime("%d.%m.%Y_%H.%M.#{@options[:compress_ext]}")                                 
                                 #      @compress_file = File.join(WorkDir, "#{prefix}_#{@options[:format].to_s}_" +
                                 #Time.now.strftime("%d.%m.%Y_%H.%M.#{@options[:compress_ext]}"))
      @contents = []
      super()
    end
    def finalize!
      if @contents.empty? and @contents.size == 0
        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::File.open(@compress_file, Zip::File::CREATE) do |zip|
            @contents.each do |file|
              filename = File.basename(file)
              zip.add(filename, file)
            end
          end
        end
        if File.exists? @compress_file
          puts "#{__LINE__}: @compress_file"
          @contents.each do |file|
            @tmpfile = file
          puts "#{__LINE__}: @tmpfile"
            FileUtils.rm(file) if file && File.exists?(file)
          end
        end
        rescue Errno::ENOENT, StandardError => e
        return false
      end
      return true
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
oddb2xml-2.7.1 lib/oddb2xml/compressor.rb
oddb2xml-2.7.0 lib/oddb2xml/compressor.rb
oddb2xml-2.6.9 lib/oddb2xml/compressor.rb
oddb2xml-2.6.8 lib/oddb2xml/compressor.rb
oddb2xml-2.6.7 lib/oddb2xml/compressor.rb
oddb2xml-2.6.6 lib/oddb2xml/compressor.rb
oddb2xml-2.6.5 lib/oddb2xml/compressor.rb
oddb2xml-2.6.4 lib/oddb2xml/compressor.rb
oddb2xml-2.6.3 lib/oddb2xml/compressor.rb
oddb2xml-2.6.2 lib/oddb2xml/compressor.rb
oddb2xml-2.6.1 lib/oddb2xml/compressor.rb
oddb2xml-2.6.0 lib/oddb2xml/compressor.rb
oddb2xml-2.5.9 lib/oddb2xml/compressor.rb
oddb2xml-2.5.8 lib/oddb2xml/compressor.rb
oddb2xml-2.5.7 lib/oddb2xml/compressor.rb
oddb2xml-2.5.6 lib/oddb2xml/compressor.rb
oddb2xml-2.5.5 lib/oddb2xml/compressor.rb
oddb2xml-2.5.4 lib/oddb2xml/compressor.rb
oddb2xml-2.5.3 lib/oddb2xml/compressor.rb
oddb2xml-2.5.2 lib/oddb2xml/compressor.rb