class IOStreams::Zip::Reader
Public Class Methods
file(file_name, entry_file_name: nil) { |to_io| ... }
click to toggle source
Java has built-in support for Zip
files
# File lib/io_streams/zip/reader.rb, line 22 def self.file(file_name, entry_file_name: nil) fin = Java::JavaIo::FileInputStream.new(file_name) zin = Java::JavaUtilZip::ZipInputStream.new(fin) get_entry(zin, entry_file_name) || raise(Java::JavaUtilZip::ZipException, "File #{entry_file_name} not found within zip file.") yield(zin.to_io) ensure zin&.close fin&.close end
get_entry(zin, entry_file_name)
click to toggle source
# File lib/io_streams/zip/reader.rb, line 35 def self.get_entry(zin, entry_file_name) if entry_file_name.nil? zin.get_next_entry return true end while (entry = zin.get_next_entry) return true if entry.name == entry_file_name end false end