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
Другие вопросы по тегам