RubyでZIPファイルの中身を読む

RubyでZIPファイルを扱う場合、ziprubyとrubyzipがあるみたいですね。ziprubyは開発が止まってるので今回はrubyzipを使用しました。

require 'zip'

doc = Zip::File.open("081220120514033218.zip") do |zip|
  zip.find {|entry| /tdnet-.+sm-.+\.xbrl/ =~ entry.name }
    .get_input_stream {|is| is.read.force_encoding "UTF-8" }
end

p doc # => ファイルの内容