Я пытаюсь написать сценарий ruby fcgi, который на лету сжимает файлы в каталоге и отправляет выходные данные в виде ответа http. Очень важно, чтобы это сжатие выполнялось как потоковая операция, иначе клиент получит таймаут для огромных каталогов.
У меня есть следующий код:
d="/tmp/delivery/"
# send zip header
header(MimeTypes::ZIP)
# pseudocode from here on
IO.open(d) { |fh|
block=fh.readblock(1024)
#send zipped block as http response
print zip_it(block)
}
Как мне добиться того, что я написал как псевдо-рубин в приведенном выше листинге?