def stream(keep_open = false)
      scheduler = env['async.callback'] ? EventMachine : Stream
      current   = @params.dup
      body Stream.new(scheduler, keep_open) { |out| with_params(current) { yield(out) } }
    end
def stream(keep_open = false)
      scheduler = env['async.callback'] ? EventMachine : Stream
      current   = @params.dup
      body Stream.new(scheduler, keep_open) { |out| with_params(current) { yield(out) } }
    end
Allows to start sending data to the client even though later parts of
 the response body have not yet been generated.

 The close parameter specifies whether Stream#close should be called
 after the block has been executed. This is only relevant for evented
 servers like Thin or Rainbows.