Class: UtilsZip

Inherits:
Object show all
Defined in:
lib/mrpin/core/utils/utils_zip.rb

Class Method Summary collapse

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