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.
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
|
# File 'lib/pr/zlib.rb', line 1075
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
1071
1072
1073
|
# File 'lib/pr/zlib.rb', line 1071
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
1125
1126
1127
|
# File 'lib/pr/zlib.rb', line 1125
def <<(str)
@gz.io << str
end
|
1054
1055
1056
1057
1058
1059
1060
1061
1062
|
# File 'lib/pr/zlib.rb', line 1054
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
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
|
# File 'lib/pr/zlib.rb', line 1096
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
1179
1180
1181
1182
1183
1184
1185
1186
1187
|
# File 'lib/pr/zlib.rb', line 1179
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
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
|
# File 'lib/pr/zlib.rb', line 1168
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
1033
1034
1035
1036
1037
1038
1039
1040
1041
|
# File 'lib/pr/zlib.rb', line 1033
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
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
|
# File 'lib/pr/zlib.rb', line 1043
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
1064
1065
1066
1067
|
# File 'lib/pr/zlib.rb', line 1064
def pos
raise GzipFile::Error, "closed gzip stream" unless @gz.z.ZSTREAM_IS_READY()
@gz.z.stream.total_in
end
|
#print(*arg) ⇒ Object
1133
1134
1135
|
# File 'lib/pr/zlib.rb', line 1133
def print(*arg)
@gz.io.print(*arg)
end
|
#printf(*arg) ⇒ Object
1129
1130
1131
|
# File 'lib/pr/zlib.rb', line 1129
def printf(*arg)
@gz.io.printf(*arg)
end
|
#putc(ch) ⇒ Object
1119
1120
1121
1122
1123
|
# File 'lib/pr/zlib.rb', line 1119
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
1137
1138
1139
|
# File 'lib/pr/zlib.rb', line 1137
def puts(str)
@gz.io.puts(str)
end
|
#write(str) ⇒ Object
1112
1113
1114
1115
1116
1117
|
# File 'lib/pr/zlib.rb', line 1112
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
|