class

Zlib::GzipReader

v1_9_1_378 - Show latest stable - Superclass: Zlib::GzipFile

Zlib::GzipReader is the class for reading a gzipped file. GzipReader should be used an IO, or -IO-lie, object.

Zlib::GzipReader.open('hoge.gz') {|gz|
  print gz.read
}

File.open('hoge.gz') do |f|
  gz = Zlib::GzipReader.new(f)
  print gz.read
  gz.close
end

# TODO: test these.  Are they equivalent?  Can GzipReader.new take a
# block?

Method Catalogue

The following methods in Zlib::GzipReader are just like their counterparts in IO, but they raise Zlib::Error or Zlib::GzipFile::Error exception if an error was found in the gzip file.

Be careful of the footer of the gzip file. A gzip file has the checksum of pre-compressed data in its footer. GzipReader checks all uncompressed data against that checksum at the following cases, and if it fails, raises Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, or Zlib::GzipFile::LengthError exception.

  • When an reading request is received beyond the end of file (the end of

compressed data). That is, when Zlib::GzipReader#read,
Zlib::GzipReader#gets, or some other methods for reading returns nil.
end of file.
the end of file.

The rest of the methods are adequately described in their own documentation.

Included modules

  • Enumerable

Files

  • ext/zlib/zlib.c