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