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