Class: Zlib::GzipFile
- Inherits:
-
Object
- Object
- Zlib::GzipFile
- Defined in:
- ext/zlib/zlib.c,
ext/zlib/zlib.c
Overview
Zlib::GzipFile is an abstract class for handling a gzip formatted compressed file. The operations are defined in the subclasses, Zlib::GzipReader for reading, and Zlib::GzipWriter for writing.
GzipReader should be used by associating an IO, or IO-like, object.
Method Catalogue
-
::wrap
-
::open (Zlib::GzipReader::open and Zlib::GzipWriter::open)
-
#close
-
#closed?
-
#comment
-
comment= (Zlib::GzipWriter#comment=)
-
#crc
-
eof? (Zlib::GzipReader#eof?)
-
#finish
-
#level
-
lineno (Zlib::GzipReader#lineno)
-
lineno= (Zlib::GzipReader#lineno=)
-
#mtime
-
mtime= (Zlib::GzipWriter#mtime=)
-
#orig_name
-
orig_name (Zlib::GzipWriter#orig_name=)
-
#os_code
-
path (when the underlying IO supports #path)
-
#sync
-
#sync=
-
#to_io
(due to internal structure, documentation may appear under Zlib::GzipReader or Zlib::GzipWriter)
Direct Known Subclasses
Defined Under Namespace
Classes: CRCError, Error, LengthError, NoFooter
Class Method Summary collapse
-
.wrap(*args) ⇒ Object
call-seq: Zlib::GzipReader.wrap(io, …) { |gz| … } Zlib::GzipWriter.wrap(io, …) { |gz| … }.
Instance Method Summary collapse
-
#close ⇒ Object
Closes the GzipFile object.
-
#closed? ⇒ Boolean
Same as IO#closed?.
-
#comment ⇒ Object
Returns comments recorded in the gzip file header, or nil if the comments is not present.
-
#crc ⇒ Object
Returns CRC value of the uncompressed data.
-
#finish ⇒ Object
Closes the GzipFile object.
-
#level ⇒ Object
Returns compression level.
-
#mtime ⇒ Object
Returns last modification time recorded in the gzip file header.
-
#orig_name ⇒ Object
Returns original filename recorded in the gzip file header, or
nilif original filename is not present. -
#os_code ⇒ Object
Returns OS code number recorded in the gzip file header.
-
#sync ⇒ Object
Same as IO#sync.
-
#sync=(mode) ⇒ Object
call-seq: sync = flag.
-
#to_io ⇒ Object
Same as IO.
Class Method Details
.wrap(*args) ⇒ Object
call-seq:
Zlib::GzipReader.wrap(io, ...) { |gz| ... }
Zlib::GzipWriter.wrap(io, ...) { |gz| ... }
Creates a GzipReader or GzipWriter associated with io, passing in any necessary extra options, and executes the block with the newly created object just like File.open.
The GzipFile object will be closed automatically after executing the block. If you want to keep the associated IO object open, you may call Zlib::GzipFile#finish method in the block.
3159 3160 3161 3162 3163 |
# File 'ext/zlib/zlib.c', line 3159 static VALUE rb_gzfile_s_wrap(int argc, VALUE *argv, VALUE klass) { return gzfile_wrap(argc, argv, klass, 0); } |
Instance Method Details
#close ⇒ Object
Closes the GzipFile object. This method calls close method of the associated IO object. Returns the associated IO object.
3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 |
# File 'ext/zlib/zlib.c', line 3383 static VALUE rb_gzfile_close(VALUE obj) { struct gzfile *gz; VALUE io; TypedData_Get_Struct(obj, struct gzfile, &gzfile_data_type, gz); if (!ZSTREAM_IS_READY(&gz->z)) { return Qnil; } io = gz->io; gzfile_close(gz, 1); return io; } |
#closed? ⇒ Boolean
Same as IO#closed?
3422 3423 3424 3425 3426 3427 3428 |
# File 'ext/zlib/zlib.c', line 3422 static VALUE rb_gzfile_closed_p(VALUE obj) { struct gzfile *gz; TypedData_Get_Struct(obj, struct gzfile, &gzfile_data_type, gz); return NIL_P(gz->io) ? Qtrue : Qfalse; } |
#comment ⇒ Object
Returns comments recorded in the gzip file header, or nil if the comments is not present.
3259 3260 3261 3262 3263 3264 3265 3266 3267 |
# File 'ext/zlib/zlib.c', line 3259 static VALUE rb_gzfile_comment(VALUE obj) { VALUE str = get_gzfile(obj)->comment; if (!NIL_P(str)) { str = rb_str_dup(str); } return str; } |
#crc ⇒ Object
Returns CRC value of the uncompressed data.
3198 3199 3200 3201 3202 |
# File 'ext/zlib/zlib.c', line 3198 static VALUE rb_gzfile_crc(VALUE obj) { return rb_uint2inum(get_gzfile(obj)->crc); } |
#finish ⇒ Object
Closes the GzipFile object. Unlike Zlib::GzipFile#close, this method never calls the close method of the associated IO object. Returns the associated IO object.
3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 |
# File 'ext/zlib/zlib.c', line 3405 static VALUE rb_gzfile_finish(VALUE obj) { struct gzfile *gz = get_gzfile(obj); VALUE io; io = gz->io; gzfile_close(gz, 0); return io; } |
#level ⇒ Object
Returns compression level.
3220 3221 3222 3223 3224 |
# File 'ext/zlib/zlib.c', line 3220 static VALUE rb_gzfile_level(VALUE obj) { return INT2FIX(get_gzfile(obj)->level); } |
#mtime ⇒ Object
Returns last modification time recorded in the gzip file header.
3209 3210 3211 3212 3213 |
# File 'ext/zlib/zlib.c', line 3209 static VALUE rb_gzfile_mtime(VALUE obj) { return rb_time_new(get_gzfile(obj)->mtime, (time_t)0); } |
#orig_name ⇒ Object
Returns original filename recorded in the gzip file header, or nil if original filename is not present.
3243 3244 3245 3246 3247 3248 3249 3250 3251 |
# File 'ext/zlib/zlib.c', line 3243 static VALUE rb_gzfile_orig_name(VALUE obj) { VALUE str = get_gzfile(obj)->orig_name; if (!NIL_P(str)) { str = rb_str_dup(str); } return str; } |
#os_code ⇒ Object
Returns OS code number recorded in the gzip file header.
3231 3232 3233 3234 3235 |
# File 'ext/zlib/zlib.c', line 3231 static VALUE rb_gzfile_os_code(VALUE obj) { return INT2FIX(get_gzfile(obj)->os_code); } |
#sync ⇒ Object
Same as IO#sync
3448 3449 3450 3451 3452 |
# File 'ext/zlib/zlib.c', line 3448 static VALUE rb_gzfile_sync(VALUE obj) { return (get_gzfile(obj)->z.flags & GZFILE_FLAG_SYNC) ? Qtrue : Qfalse; } |
#sync=(mode) ⇒ Object
call-seq: sync = flag
Same as IO. If flag is true, the associated IO object must respond to the flush method. While sync mode is true, the compression ratio decreases sharply.
3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 |
# File 'ext/zlib/zlib.c', line 3463 static VALUE rb_gzfile_set_sync(VALUE obj, VALUE mode) { struct gzfile *gz = get_gzfile(obj); if (RTEST(mode)) { gz->z.flags |= GZFILE_FLAG_SYNC; } else { gz->z.flags &= ~GZFILE_FLAG_SYNC; } return mode; } |
#to_io ⇒ Object
Same as IO.
3187 3188 3189 3190 3191 |
# File 'ext/zlib/zlib.c', line 3187 static VALUE rb_gzfile_to_io(VALUE obj) { return get_gzfile(obj)->io; } |