У меня есть zip-архив в строке, но, похоже, gim rubyzip хочет ввода из файла. Лучшее, что я придумал, чтобы написать архив зип к TempFile с единственной целью передачи имени файла в Zip::ZipFile.foreach()
, но это, кажется, пыткам:разархивировать zip-архив из строки
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
Есть более простой способ?
ПРИМЕЧАНИЕ: См. Также Ruby Unzip String.
Спасибо, что хорошо работает! См. Мой полный ответ в http://stackoverflow.com/a/14912237/558639 –