Class: UtilsZip
Class Method Summary collapse
- .compress_to_base64(data) ⇒ Object
- .decompress_base64(data_base64) ⇒ Object
- .unzip_file(filename, destination_dir = nil) ⇒ Object
Class Method Details
.compress_to_base64(data) ⇒ Object
12 13 14 15 16 17 18 |
# 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) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# 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) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# 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 |