文字列にzipアーカイブがありますが、rubyzipgemがファイルからの入力を必要としているようです。私が思いついた最善の方法は、ファイル名をに渡すことだけを目的として、zipアーカイブを一時ファイルに書き込むことですZip::ZipFile.foreach()
が、これは苦痛のようです。
require 'zip/zip'
def unzip(page)
"".tap do |str|
Tempfile.open("unzip") do |tmpfile|
tmpfile.write(page)
Zip::ZipFile.foreach(tmpfile.path()) do |zip_entry|
zip_entry.get_input_stream {|io| str << io.read}
end
end
end
end
もっと簡単な方法はありますか?
注:RubyUnzipStringも参照してください。