Class: Zstdlib::GzipFile
- Inherits:
-
Object
- Object
- Zstdlib::GzipFile
- Defined in:
- 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.
3112 3113 3114 3115 3116 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3112 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.
3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3337 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?
3376 3377 3378 3379 3380 3381 3382 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3376 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.
3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3213 static VALUE rb_gzfile_comment(VALUE obj) { VALUE str = get_gzfile(obj)->comment; if (!NIL_P(str)) { str = rb_str_dup(str); } OBJ_TAINT(str); /* for safe */ return str; } |
#crc ⇒ Object
Returns CRC value of the uncompressed data.
3151 3152 3153 3154 3155 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3151 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.
3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3359 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.
3173 3174 3175 3176 3177 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3173 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.
3162 3163 3164 3165 3166 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3162 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.
3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3196 static VALUE rb_gzfile_orig_name(VALUE obj) { VALUE str = get_gzfile(obj)->orig_name; if (!NIL_P(str)) { str = rb_str_dup(str); } OBJ_TAINT(str); /* for safe */ return str; } |
#os_code ⇒ Object
Returns OS code number recorded in the gzip file header.
3184 3185 3186 3187 3188 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3184 static VALUE rb_gzfile_os_code(VALUE obj) { return INT2FIX(get_gzfile(obj)->os_code); } |
#sync ⇒ Object
Same as IO#sync
3402 3403 3404 3405 3406 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3402 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.
3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3417 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.
3140 3141 3142 3143 3144 |
# File 'ext/zstdlib/ruby/zlib-2.6/zstdlib.c', line 3140 static VALUE rb_gzfile_to_io(VALUE obj) { return get_gzfile(obj)->io; } |