class Rack::Deflater::GzipStream

def each(&block)

Yield gzip compressed strings to the given block.
def each(&block)
  @writer = block
  gzip = ::Zlib::GzipWriter.new(self)
  gzip.mtime = @mtime if @mtime
  @body.each { |part|
    # Skip empty strings, as they would result in no output,
    # and flushing empty parts would raise Zlib::BufError.
    next if part.empty?
    gzip.write(part)
    gzip.flush if @sync
  }
ensure
  gzip.close
end