GzipReader метод each_line отсутствует в Рубиниусе
Я пытаюсь прочитать сжатый файл, используя Zlib:GzipReader. Это работает, как и ожидалось, используя ruby 1.9.3, но я получаю method_missing
ошибка для each_line
при использовании Рубиниуса.
Есть ли способ прочитать сжатый файл с помощью Rubinius?
require 'zlib'
Zlib::GzipReader.open("lines.txt.gz").each_line { |line|
puts "#{line}"
}
Kernel(Zlib::GzipReader)#each_line (method_missing) at kernel/delta/kernel.rb:81
1 ответ
Решение
Я считаю, что это ошибка в Rubinius, вы должны рассмотреть вопрос об открытии проблемы с проектом. Однако этот обходной путь должен помочь вам:
require 'zlib'
require 'stringio'
file = File.read("lines.txt.gz")
lines = Zlib::GzipReader.new(StringIO.new(file)).read