Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > zlibライブラリ > Zlib::GzipWriterクラス > wrap
wrap(io, level = Zlib::DEFAULT_COMPRESSION, strategy = Zlib::DEFAULT_STRATEGY) -> Zlib::GzipWriter[permalink][rdoc]wrap(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