Class: Zlib::GzipWriter
Constant Summary
Constants inherited
from GzipFile
Zlib::GzipFile::GZFILE_FLAG_FOOTER_FINISHED, Zlib::GzipFile::GZFILE_FLAG_HEADER_FINISHED, Zlib::GzipFile::GZFILE_FLAG_SYNC, Zlib::GzipFile::GZFILE_READ_SIZE, Zlib::GzipFile::GZ_EXTRAFLAG_FAST, Zlib::GzipFile::GZ_EXTRAFLAG_SLOW, Zlib::GzipFile::GZ_FLAG_COMMENT, Zlib::GzipFile::GZ_FLAG_ENCRYPT, Zlib::GzipFile::GZ_FLAG_EXTRA, Zlib::GzipFile::GZ_FLAG_MULTIPART, Zlib::GzipFile::GZ_FLAG_ORIG_NAME, Zlib::GzipFile::GZ_FLAG_UNKNOWN_MASK, Zlib::GzipFile::GZ_MAGIC1, Zlib::GzipFile::GZ_MAGIC2, Zlib::GzipFile::GZ_METHOD_DEFLATE, Zlib::GzipFile::OS_CODE
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from GzipFile
#GZFILE_IS_FINISHED, #close, #closed?, #comment, #crc, #finish, #gzfile_close, #gzfile_ensure_close, gzfile_s_open, #level, #mtime, #orig_name, #os_code, #sync, #sync=, #to_io, wrap
Constructor Details
#initialize(io, level = Z_DEFAULT_COMPRESSION, strategy = Z_DEFAULT_STRATEGY) ⇒ GzipWriter
Returns a new instance of GzipWriter.
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
|
# File 'lib/pr/zlib.rb', line 1071
def initialize(io, level=Z_DEFAULT_COMPRESSION, strategy=Z_DEFAULT_STRATEGY)
gzfile_new(DeflateFuncs, :gzfile_writer_end)
@gz.level = level
err = deflateInit2(
@gz.z.stream,
@gz.level,
Z_DEFLATED,
-MAX_WBITS,
DEF_MEM_LEVEL,
strategy
)
if err != Z_OK
raise_zlib_error(err, @gz.stream.msg)
end
@gz.io = io
@gz.z.ZSTREAM_READY()
end
|
Class Method Details
.open(filename, level = Z_DEFAULT_COMPRESSION, strategy = Z_DEFAULT_STRATEGY, &blk) ⇒ Object
1067
1068
1069
|
# File 'lib/pr/zlib.rb', line 1067
def self.open(filename, level=Z_DEFAULT_COMPRESSION, strategy=Z_DEFAULT_STRATEGY, &blk)
GzipWriter.gzfile_s_open(filename, 'wb', level, strategy, &blk)
end
|
Instance Method Details
#<<(str) ⇒ Object
1121
1122
1123
|
# File 'lib/pr/zlib.rb', line 1121
def <<(str)
@gz.io << str
end
|
1050
1051
1052
1053
1054
1055
1056
1057
1058
|
# File 'lib/pr/zlib.rb', line 1050
def (str)
raise GzipFile::Error, "closed gzip stream" unless @gz.z.ZSTREAM_IS_READY()
if (@gz.z.flags & GZFILE_FLAG_HEADER_FINISHED).nonzero?
raise GzipFile::Error,"header is already written"
end
@gz. = str.dup
end
|
#flush(v_flush = Z_SYNC_FLUSH) ⇒ Object
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
|
# File 'lib/pr/zlib.rb', line 1092
def flush(v_flush=Z_SYNC_FLUSH)
raise GzipFile::Error, "closed gzip stream" unless @gz.z.ZSTREAM_IS_READY()
if v_flush != Z_NO_FLUSH
@gz.z.zstream_run("", 0, v_flush)
end
gzfile_write_raw()
if defined?(@gz.io.flush)
@gz.io.flush()
end
self
end
|
#gzfile_writer_end ⇒ Object
1175
1176
1177
1178
1179
1180
1181
1182
1183
|
# File 'lib/pr/zlib.rb', line 1175
def gzfile_writer_end
return if @gz.z.ZSTREAM_IS_CLOSING()
@gz.z.flags |= ZSTREAM_FLAG_CLOSING
begin
gzfile_writer_end_run()
ensure
@gz.z.zstream_end()
end
end
|
#gzfile_writer_end_run ⇒ Object
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
|
# File 'lib/pr/zlib.rb', line 1164
def gzfile_writer_end_run
if (@gz.z.flags & GZFILE_FLAG_HEADER_FINISHED).zero?
()
end
@gz.z.zstream_run("", 0, Z_FINISH)
()
gzfile_write_raw()
return nil
end
|
#mtime=(mtime) ⇒ Object
1029
1030
1031
1032
1033
1034
1035
1036
1037
|
# File 'lib/pr/zlib.rb', line 1029
def mtime=(mtime)
raise GzipFile::Error, "closed gzip stream" unless @gz.z.ZSTREAM_IS_READY()
if (@gz.z.flags & GZFILE_FLAG_HEADER_FINISHED).nonzero?
raise GzipFile::Error,"header is already written"
end
@gz.mtime = mtime.to_i
end
|
#orig_name=(str) ⇒ Object
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
|
# File 'lib/pr/zlib.rb', line 1039
def orig_name=(str)
raise GzipFile::Error, "closed gzip stream" unless @gz.z.ZSTREAM_IS_READY()
if (@gz.z.flags & GZFILE_FLAG_HEADER_FINISHED).nonzero?
raise GzipFile::Error,"header is already written"
end
ap = str[0.chr]
@gz.orig_name = ap ? str[0,ap] : str.dup
end
|
#pos ⇒ Object
Also known as:
tell
1060
1061
1062
1063
|
# File 'lib/pr/zlib.rb', line 1060
def pos
raise GzipFile::Error, "closed gzip stream" unless @gz.z.ZSTREAM_IS_READY()
@gz.z.stream.total_in
end
|
#print(*arg) ⇒ Object
1129
1130
1131
|
# File 'lib/pr/zlib.rb', line 1129
def print(*arg)
@gz.io.print(*arg)
end
|
#printf(*arg) ⇒ Object
1125
1126
1127
|
# File 'lib/pr/zlib.rb', line 1125
def printf(*arg)
@gz.io.printf(*arg)
end
|
#putc(ch) ⇒ Object
1115
1116
1117
1118
1119
|
# File 'lib/pr/zlib.rb', line 1115
def putc(ch)
raise GzipFile::Error, "closed gzip stream" unless @gz.z.ZSTREAM_IS_READY()
gzfile_write(ch.chr, 1)
ch
end
|
#puts(str) ⇒ Object
1133
1134
1135
|
# File 'lib/pr/zlib.rb', line 1133
def puts(str)
@gz.io.puts(str)
end
|
#write(str) ⇒ Object
1108
1109
1110
1111
1112
1113
|
# File 'lib/pr/zlib.rb', line 1108
def write(str)
raise GzipFile::Error, "closed gzip stream" unless @gz.z.ZSTREAM_IS_READY()
str = str.to_s
gzfile_write(str, str.length)
str.length
end
|