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
GzipWriterobject associated withio. -
.open(filename, level = nil, strategy = nil) {|gz| ... }
Opens a file specified by
filenamefor writing gzip compressed data, and returns aGzipWriterobject 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
GzipWriterobject. -
#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.