kind=defined
names=wrap
visibility=public

--- wrap(io, level = Zlib::DEFAULT_COMPRESSION, strategy = Zlib::DEFAULT_STRATEGY) -> Zlib::GzipWriter
--- wrap(io, level = Zlib::DEFAULT_COMPRESSION, strategy = Zlib::DEFAULT_STRATEGY) {|gz| ... } -> object

io と関連付けられた GzipWriter オブジェクトを作成します。
ブロックが与えられた場合、
それを引数としてブロックを実行します。
ブロックの実行が終了すると、GzipWriter オブジェクトは自動的に
クローズされます。関連付けられている IO オブジェクトまで
クローズしたくない時は、ブロック中で [[m:Zlib::GzipFile#finish]]
メソッドを呼び出して下さい。

@param io  IOオブジェクト、もしくは少なくとも、
           [[m:IO#write]] と 同じ動作をする write メソッドが定義されている必要があります。
@param level  0-9の範囲の整数を指定します。詳細はzlib.hを参照してください。 
@param strategy [[m:Zlib::FILTERED]], [[m:Zlib::HUFFMAN_ONLY]], [[m:Zlib::DEFAULT_STRATEGY]]など指定します。
                詳細はzlib.h を参照してください。

  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

