Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > zlibライブラリ > Zlib::GzipReaderクラス > wrap

singleton method Zlib::GzipReader.wrap

wrap(io) -> Zlib::GzipReader[permalink][rdoc]
wrap(io) {|gz| ... } -> object

io と関連付けられた GzipReader オブジェクトを作成します。

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

[PARAM] io:
IO オブジェクトを指定します。
require 'zlib'

=begin
# hoge.gz がない場合はこれで作成する。
Zlib::GzipWriter.open('hoge.gz') { |gz|
  gz.puts 'hoge'
}
=end

f = File.open('hoge.gz')
Zlib::GzipReader.wrap(f){|gz|
  print gz.read
}
p f.closed? #=> true

f = File.open('hoge.gz')
Zlib::GzipReader.wrap(f){|gz|
  print gz.read
  gz.finish
}
p f.closed? #=> false