Sha256: 494a497ecc772e814d3adaa9b146fe3da8997b5fbe03165883a87ba810fa3f38

Contents?: true

Size: 639 Bytes

Versions: 1

Compression:

Stored size: 639 Bytes

Contents

module ZipDir
  class Unzipper
    attr_reader :zip_path
    def initialize(zip_path)
      @zip_path, @unzip_path = zip_path, Dir.mktmpdir
    end

    def cleanup
      @unzipped = false
      FileUtils.remove_entry_secure @unzip_path
    end

    def unzip_path
      unzip unless unzipped?
      @unzip_path
    end

    def unzipped?
      !!@unzipped
    end

    def unzip
      Zip::File.open(zip_path) do |zip_file|
        zip_file.each do |entry|
          file_path = "#{@unzip_path}/#{entry.name}"
          entry.extract(file_path) unless File.exists?(file_path)
        end
      end
      @unzipped = true
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zip_dir-0.1.0 lib/zip_dir/unzipper.rb