class Zlib::GzipFile
Zlib::GzipFile ist eine abstrakte Klasse zur Handhabung einer komprimierten Datei im Gzip-Format. Die Operationen sind in den Unterklassen Zlib::GzipReader zum Lesen und Zlib::GzipWriter zum Schreiben definiert.
GzipReader sollte durch die Verknüpfung mit einem IO- oder IO-ähnlichen Objekt verwendet werden.
Methoden-Katalog
-
::open (
Zlib::GzipReader::openundZlib::GzipWriter::open) -
comment= (
Zlib::GzipWriter#comment=) -
eof? (
Zlib::GzipReader#eof?) -
lineno (
Zlib::GzipReader#lineno) -
lineno= (
Zlib::GzipReader#lineno=) -
mtime= (
Zlib::GzipWriter#mtime=) -
path (wenn das zugrundeliegende
IOden Pfad unterstützt)
(aufgrund der internen Struktur kann die Dokumentation unter Zlib::GzipReader oder Zlib::GzipWriter erscheinen)
Öffentliche Klassenmethoden
Source
static VALUE
rb_gzfile_s_wrap(int argc, VALUE *argv, VALUE klass)
{
return gzfile_wrap(argc, argv, klass, 0);
}
Erstellt einen GzipReader oder GzipWriter, der mit io verknüpft ist, übergibt alle notwendigen zusätzlichen Optionen und führt den Block mit dem neu erstellten Objekt aus, genau wie bei File.open.
Das GzipFile-Objekt wird nach der Ausführung des Blocks automatisch geschlossen. Wenn Sie das zugehörige IO-Objekt geöffnet lassen möchten, können Sie die Methode Zlib::GzipFile#finish im Block aufrufen.
Öffentliche Instanzmethoden
Source
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;
}
Source
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;
}
Dasselbe wie IO#closed?
Source
static VALUE
rb_gzfile_comment(VALUE obj)
{
VALUE str = get_gzfile(obj)->comment;
if (!NIL_P(str)) {
str = rb_str_dup(str);
}
return str;
}
Gibt Kommentare zurück, die in der Gzip-Dateikopfzeile aufgezeichnet sind, oder nil, wenn die Kommentare nicht vorhanden sind.
Source
static VALUE
rb_gzfile_crc(VALUE obj)
{
return rb_uint2inum(get_gzfile(obj)->crc);
}
Gibt den CRC-Wert der unkomprimierten Daten zurück.
Source
static VALUE
rb_gzfile_finish(VALUE obj)
{
struct gzfile *gz = get_gzfile(obj);
VALUE io;
io = gz->io;
gzfile_close(gz, 0);
return io;
}
Schließt das GzipFile-Objekt. Im Gegensatz zu Zlib::GzipFile#close ruft diese Methode niemals die close-Methode des zugehörigen IO-Objekts auf. Gibt das zugehörige IO-Objekt zurück.
Source
static VALUE
rb_gzfile_level(VALUE obj)
{
return INT2FIX(get_gzfile(obj)->level);
}
Gibt die Kompressionsstufe zurück.
Source
static VALUE
rb_gzfile_mtime(VALUE obj)
{
return rb_time_new(get_gzfile(obj)->mtime, (time_t)0);
}
Gibt die letzte Änderungszeit zurück, die in der Gzip-Dateikopfzeile aufgezeichnet ist.
Source
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;
}
Gibt den ursprünglichen Dateinamen zurück, der in der Gzip-Dateikopfzeile aufgezeichnet ist, oder nil, wenn der ursprüngliche Dateiname nicht vorhanden ist.
Source
static VALUE
rb_gzfile_os_code(VALUE obj)
{
return INT2FIX(get_gzfile(obj)->os_code);
}
Gibt die OS-Codenummer zurück, die in der Gzip-Dateikopfzeile aufgezeichnet ist.
Source
static VALUE
rb_gzfile_sync(VALUE obj)
{
return (get_gzfile(obj)->z.flags & GZFILE_FLAG_SYNC) ? Qtrue : Qfalse;
}
Dasselbe wie IO#sync
Source
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;
}