Como gravar arquivos (grandes) com Ruby Eventmachine

Passei vários dias agora encontrando alguns exemplos que não são de eco-servidor para eventmachine, mas simplesmente não parece haver nenhum. Digamos que eu queira escrever um servidor que aceite um arquivo e o grave em um arquivo temporário:

require 'rubygems'
require 'tempfile'
require 'eventmachine'

module ExampleServer

  def receive_data(data)
    f = Tempfile.new('random')
    f.write(data)
  ensure
    f.close
  end

end

EventMachine::run {
  EventMachine::start_server "127.0.0.1", 8081, ExampleServer
  puts 'running example server on 8081'
}

Escrever no arquivo bloquearia o reator, mas não entendi como fazê-lo 'estilo Eventmachine'. Eu precisaria ler os dados em pedaços e gravar cada pedaço em disco dentro de um bloco Em.next_tick?

Obrigado por qualquer ajuda Andreas

questionAnswers(4)

yourAnswerToTheQuestion