Class: Zstdlib::GzipFile
- Inherits:
-
Object
- Object
- Zstdlib::GzipFile
- Defined in:
- ext/zstdlib/ruby/zlib-3.0/zstdlib.c,
ext/zstdlib/ruby/zlib-3.0/zstdlib.c,
ext/zstdlib/ruby/zlib-2.7/zstdlib.c,
ext/zstdlib/ruby/zlib-2.7/zstdlib.c,
ext/zstdlib/ruby/zlib-2.6/zstdlib.c,
ext/zstdlib/ruby/zlib-2.6/zstdlib.c,
ext/zstdlib/ruby/zlib-2.5/zstdlib.c,
ext/zstdlib/ruby/zlib-2.5/zstdlib.c,
ext/zstdlib/ruby/zlib-2.4/zstdlib.c,
ext/zstdlib/ruby/zlib-2.4/zstdlib.c,
ext/zstdlib/ruby/zlib-2.3/zstdlib.c,
ext/zstdlib/ruby/zlib-2.3/zstdlib.c,
ext/zstdlib/ruby/zlib-2.2/zstdlib.c,
ext/zstdlib/ruby/zlib-2.2/zstdlib.c
Overview
Zstdlib::GzipFile is an abstract class for handling a gzip formatted compressed file. The operations are defined in the subclasses, Zstdlib::GzipReader for reading, and Zstdlib::GzipWriter for writing.
GzipReader should be used by associating an IO, or IO-like, object.
== Method Catalogue
- ::wrap
- ::open (Zstdlib::GzipReader::open and Zstdlib::GzipWriter::open)
- #close
- #closed?
- #comment
- comment= (Zstdlib::GzipWriter#comment=)
- #crc
- eof? (Zstdlib::GzipReader#eof?)
- #finish
- #level
- lineno (Zstdlib::GzipReader#lineno)
- lineno= (Zstdlib::GzipReader#lineno=)
- #mtime
- mtime= (Zstdlib::GzipWriter#mtime=)
- #orig_name
- orig_name (Zstdlib::GzipWriter#orig_name=)
- #os_code
- path (when the underlying IO supports #path)
- #sync
- #sync=
- #to_io
(due to internal structure, documentation may appear under Zstdlib::GzipReader or Zstdlib::GzipWriter)
Direct Known Subclasses
Defined Under Namespace
Classes: CRCError, Error, LengthError, NoFooter
Class Method Summary collapse
-
.wrap(*args) ⇒ Object
call-seq: Zstdlib::GzipReader.wrap(io, ...) { |gz| ... } Zstdlib::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 +nil+ if 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: Zstdlib::GzipReader.wrap(io, ...) { |gz| ... } Zstdlib::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 Zstdlib::GzipFile#finish method in the block.
3167 3168 3169 3170 3171 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3167
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.
3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3391
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?
3430 3431 3432 3433 3434 3435 3436 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3430
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.
3267 3268 3269 3270 3271 3272 3273 3274 3275 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3267
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.
3206 3207 3208 3209 3210 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3206
static VALUE
rb_gzfile_crc(VALUE obj)
{
return rb_uint2inum(get_gzfile(obj)->crc);
}
|
#finish ⇒ Object
Closes the GzipFile object. Unlike Zstdlib::GzipFile#close, this method never calls the close method of the associated IO object. Returns the associated IO object.
3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3413
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.
3228 3229 3230 3231 3232 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3228
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.
3217 3218 3219 3220 3221 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3217
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.
3251 3252 3253 3254 3255 3256 3257 3258 3259 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3251
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.
3239 3240 3241 3242 3243 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3239
static VALUE
rb_gzfile_os_code(VALUE obj)
{
return INT2FIX(get_gzfile(obj)->os_code);
}
|
#sync ⇒ Object
Same as IO#sync
3456 3457 3458 3459 3460 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3456
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.
3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3471
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.
3195 3196 3197 3198 3199 |
# File 'ext/zstdlib/ruby/zlib-3.0/zstdlib.c', line 3195
static VALUE
rb_gzfile_to_io(VALUE obj)
{
return get_gzfile(obj)->io;
}
|