Class: Zlib::GzipWriter
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
GzipFile
|
|
Instance Chain:
self,
GzipFile
|
|
Inherits: |
Zlib::GzipFile
|
Defined in: | ext/zlib/zlib.c, ext/zlib/zlib.c |
Overview
GzipWriter
is a class for writing gzipped files. GzipWriter
should be used with an instance of IO, or IO-like, object.
Following two example generate the same result.
Zlib::GzipWriter.open('hoge.gz') do |gz|
gz.write 'jugemu jugemu gokou no surikire...'
end
File.open('hoge.gz', 'w') do |f|
gz = Zlib::GzipWriter.new(f)
gz.write 'jugemu jugemu gokou no surikire...'
gz.close
end
To make like gzip(1) does, run following:
orig = 'hoge.txt'
Zlib::GzipWriter.open('hoge.gz') do |gz|
gz.mtime = File.mtime(orig)
gz.orig_name = orig
gz.write IO.binread(orig)
end
NOTE: Due to the limitation of Ruby's finalizer, you must explicitly close GzipWriter
objects by Zlib::GzipWriter#close
etc. Otherwise, GzipWriter
will be not able to write the gzip footer and will generate a broken gzip file.
Class Method Summary
-
.new(io, level = nil, strategy = nil, options = {})
constructor
Creates a
GzipWriter
object associated withio
. -
.open(filename, level = nil, strategy = nil) {|gz| ... }
Opens a file specified by
filename
for writing gzip compressed data, and returns aGzipWriter
object associated with that file.
GzipFile - Inherited
.wrap | Creates a GzipReader or |
Instance Attribute Summary
-
#comment=(str)
writeonly
Specify the comment (
str
) in the gzip header. -
#mtime=(mtime)
writeonly
Specify the modification time (
mtime
) in the gzip header. -
#orig_name=(str)
writeonly
Specify the original name (
str
) in the gzip header.
GzipFile - Inherited
Instance Method Summary
- #<<
-
#flush(flush = nil)
Flushes all the internal buffers of the
GzipWriter
object. -
#pos
(also: #tell)
Total number of input bytes read so far.
-
#print
Same as IO.
-
#printf
Same as IO.
-
#putc(ch)
Same as IO.
-
#puts
Same as IO.
-
#tell
Alias for #pos.
-
#write(str)
Same as IO.
GzipFile - Inherited
#close | Closes the GzipFile object. |
#comment | Returns comments recorded in the gzip file header, or nil if the comments is not present. |
#crc | Returns CRC value of the uncompressed data. |
#finish | Closes the GzipFile object. |
#level | Returns compression level. |
#mtime | Returns last modification time recorded in the gzip file header. |
#orig_name | Returns original filename recorded in the gzip file header, or |
#os_code | Returns OS code number recorded in the gzip file header. |
#to_io | Same as IO. |
Constructor Details
.new(io, level = nil, strategy = nil, options = {})
Creates a GzipWriter
object associated with io
. level
and strategy
should be the same as the arguments of Deflate.new. The GzipWriter object writes gzipped data to io
. io
must respond to the #write method that behaves the same as IO#write
.
The options
hash may be used to set the encoding of the data. :external_encoding
, :internal_encoding
and :encoding
may be set as in IO.new
.
Class Method Details
.open(filename, level = nil, strategy = nil) {|gz| ... }
Opens a file specified by filename
for writing gzip compressed data, and returns a GzipWriter
object associated with that file. Further details of this method are found in .new and GzipFile.wrap.
Instance Attribute Details
#comment=(str) (writeonly)
Specify the comment (str
) in the gzip header.
#mtime=(mtime) (writeonly)
Specify the modification time (mtime
) in the gzip header. Using a Fixnum or Integer
#orig_name=(str) (writeonly)
Specify the original name (str
) in the gzip header.
Instance Method Details
#<<
#flush(flush = nil)
Flushes all the internal buffers of the GzipWriter
object. The meaning of flush
is same as in Deflate#deflate. SYNC_FLUSH is used if flush
is omitted. It is no use giving flush NO_FLUSH.
#pos Also known as: #tell
Total number of input bytes read so far.
Same as IO.
#printf
Same as IO.
#putc(ch)
Same as IO.
#puts
Same as IO.
#tell
Alias for #pos.
#write(str)
Same as IO.