ruby の Zlib::Inflate 実行時に incorrect header check エラーが出たので回避。

rubyを使って、HTTPで取得した内容がContent-Encoding: gzip のファイルだったら解凍したいけど、 の Zlib::Inflate 実行時に incorrect header check エラーが出て解凍できないものがあったので、以下の方法で対応。

def extract_file(gzip)
  zstream = Zlib::Inflate.new(Zlib::MAX_WBITS + 32) 
    ## 試してないけど16でもよかったのかも
  buf = zstream.inflate(string)
  return buf
end

参考:
http://znz.s1.xrea.com/t/?date=20050225
%!zt! diary(2005-02-25)

http://www.ruby-lang.org/ja/man/?cmd=view;name=Zlib;em=zlib
Rubyリファレンスマニュアル - Zlib

http://jp.rubyist.net/magazine/?0018-BundledLibraries
Rubyist Magazine - 標準添付ライブラリ紹介 【第 11 回】 zlib

http://www.ruby-lang.org/ja/man/?cmd=view;name=Zlib%3A%3AInflate
Rubyリファレンスマニュアル - Zlib::Inflate