Class: PureRubyZip::ZipFile

Inherits:
Object
  • Object
show all
Includes:
ZipHelpers
Defined in:
lib/pure_ruby_zip.rb

Instance Method Summary collapse

Methods included from ZipHelpers

#find_string, #read_int, #skip

Constructor Details

#initialize(filename) ⇒ ZipFile

Returns a new instance of ZipFile.



240
241
242
243
# File 'lib/pure_ruby_zip.rb', line 240

def initialize(filename)
  @filename = filename
   @filename
end

Instance Method Details

#decompress_all_filesObject



249
250
251
252
253
254
255
256
257
258
259
260
# File 'lib/pure_ruby_zip.rb', line 249

def decompress_all_files
  decompressed_files = []
  File.open(@filename) do |file|
    decompressed_files = @items.keys.map do |path|
      {
        path: path,
        data: @items[path].get_decompressed_data(file)
      }
    end
  end
  decompressed_files
end

#decompress_all_files_to_diskObject



261
262
263
264
265
266
267
268
269
270
271
272
273
274
# File 'lib/pure_ruby_zip.rb', line 261

def decompress_all_files_to_disk
  dir_of_zip_file = File.dirname(@filename)
  zipfile_without_extension = File.basename @filename, ".*"
  extract_dir_path = "#{dir_of_zip_file}/#{zipfile_without_extension}"
  Dir.mkdir(extract_dir_path) unless Dir.exist?(extract_dir_path)
  decompress_all_files.each do |decompressed_item|
    path = decompressed_item[:path]
    data = decompressed_item[:data]
    file_extract_path = "#{extract_dir_path}/#{path}"
    File.open(file_extract_path, "w") do |extracted_file|
      extracted_file.write data
    end
  end
end

#decompress_file(path) ⇒ Object



244
245
246
247
248
# File 'lib/pure_ruby_zip.rb', line 244

def decompress_file(path)
  File.open(@filename) do |file|
    @items[path].get_decompressed_data file
  end
end