class UtilsZip

Public Class Methods

compress_to_base64(data) click to toggle source

Methods

# File lib/mrpin/core/utils/utils_zip.rb, line 12
def self.compress_to_base64(data)
  return data if data.nil?

  #compress and encode to base64
  data_bin = Zlib.deflate(data)
  Base64.strict_encode64(data_bin)
end
decompress_base64(data_base64) click to toggle source
# File lib/mrpin/core/utils/utils_zip.rb, line 22
def self.decompress_base64(data_base64)
  result = nil

  unless data_base64.nil?
    #decode from base64 and decompress
    progress_bin = Base64.strict_decode64(data_base64)
    result       = Zlib.inflate(progress_bin)
    result       = result.force_encoding('utf-8')
  end

  result
end
unzip_file(filename, destination_dir = nil) click to toggle source
unzip all files from zip to destination dir
return extract dir path

todo:fix extract_dir

# File lib/mrpin/core/utils/utils_zip.rb, line 39
def self.unzip_file(filename, destination_dir = nil)

  destination_dir = File.dirname(filename) if destination_dir.nil?

  %x(unzip -n '#{filename}' -d '#{destination_dir}') #-n never overwrite existing files

  extract_dir = File.join(destination_dir, File.basename(filename, '.*'))

  #downcase all file names
  Dir.glob(extract_dir + '/*.*').each do |file|
    filename     = File.basename(file, '.*')
    filename_new = Unicode::downcase(filename.force_encoding('utf-8'))
    File.rename(file, extract_dir + '/' + filename_new)
  end

  extract_dir
end