Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > zlibライブラリ > Zlib::GzipWriterクラス > wrap
wrap(io, level = Zlib::DEFAULT_COMPRESSION, strategy = Zlib::DEFAULT_STRATEGY) -> Zlib::GzipWriterwrap(io, level = Zlib::DEFAULT_COMPRESSION, strategy = Zlib::DEFAULT_STRATEGY) {|gz| ... } -> objectio と関連付けられた GzipWriter オブジェクトを作成します。 ブロックが与えられた場合、 それを引数としてブロックを実行します。 ブロックの実行が終了すると、GzipWriter オブジェクトは自動的に クローズされます。関連付けられている IO オブジェクトまで クローズしたくない時は、ブロック中で Zlib::GzipFile#finish メソッドを呼び出して下さい。
require 'zlib'
def case1
filename='hoge1.txt'
f = File.open(filename, "w")
Zlib::GzipWriter.wrap(f, Zlib::NO_COMPRESSION){|gz|
gz.puts "hogehoge" * 100
}
p f.closed? #=> true
p FileTest.size(filename) #=> 824
end
def case2
filename='hoge1.gz'
f = File.open(filename, "w")
Zlib::GzipWriter.wrap(f, Zlib::BEST_COMPRESSION){|gz|
gz.puts "hogehoge" * 100
gz.finish
}
p f.closed? #=> false
f.close
p FileTest.size(filename) #=> 32
end
case1
case2