diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-07-29 19:33:14 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-07-29 21:43:06 -0700 |
commit | c83e147e47ded37116cbfa8d3612019e7603fd82 (patch) | |
tree | 85b8f597fbee6bab75a9e6b41a5d9dfe4775af2d /actionpack/lib/action_controller | |
parent | 38cfbb8aa7e4aa4d9467e1706c50c3573cc714aa (diff) | |
download | rails-c83e147e47ded37116cbfa8d3612019e7603fd82.tar.gz rails-c83e147e47ded37116cbfa8d3612019e7603fd82.tar.bz2 rails-c83e147e47ded37116cbfa8d3612019e7603fd82.zip |
adding some docs
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r-- | actionpack/lib/action_controller/metal/live.rb | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/live.rb b/actionpack/lib/action_controller/metal/live.rb index 48818cb8e4..03f9cd6d58 100644 --- a/actionpack/lib/action_controller/metal/live.rb +++ b/actionpack/lib/action_controller/metal/live.rb @@ -1,7 +1,32 @@ require 'action_dispatch/http/response' require 'delegate' -module ActionController +module ActionController # :nodoc: + # Mix this module in to your controller, and all actions in that controller + # will be able to stream data to the client as it's written. For example: + # + # class MyController < ActionController::Base + # include ActionController::Live + # + # def stream + # response.headers['Content-Type'] = 'text/event-stream' + # 100.times { + # response.stream.write "hello world\n" + # sleep 1 + # } + # response.stream.close + # end + # end + # + # There are a few caveats with this use. You *cannot* write headers after the + # response has been committed (Response#committed? will return truthy). + # Calling +write+ or +close+ on the response stream will cause the response + # object to be committed. Make sure all headers are set before calling write + # or close on your stream. + # + # The other caveat is that you actions are executed in a separate thread than + # the main thread. Make sure your actions are thread safe, and this shouldn't + # be a problem (don't share state across threads, etc). module Live class Response < ActionDispatch::Response class Buffer < ActionDispatch::Response::Buffer # :nodoc: |