Method: Jetel::Modules::Module#unzip

Defined in:
lib/jetel/modules/module.rb

#unzip(source, options = {}) ⇒ Object



143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/jetel/modules/module.rb', line 143

def unzip(source, options = {})
  downloaded_file = downloaded_file(source, options)
  dest_dir = extract_dir(source, options)

  FileUtils.mkdir_p(dest_dir)

  ::Zip::File.open(downloaded_file) do |zip_file|
    # Handle entries one by one
    zip_file.each do |entry|
      # Extract to file/directory/symlink
      puts "Extracting #{entry.name}"
      dest_file = File.join(dest_dir, entry.name.split('/').last)
      FileUtils.rm_rf(dest_file)
      entry.extract(dest_file)
    end
  end
end