class DrunkMonkey::Transport::Comet
Public Class Methods
resume(request, options = {})
click to toggle source
Calls superclass method
DrunkMonkey::Transport::Base::resume
# File lib/drunkmonkey/transport.rb, line 123 def self.resume request, options = {} comet = super comet.handle_connection(request) end
Public Instance Methods
handle_connection(request)
click to toggle source
# File lib/drunkmonkey/transport.rb, line 128 def handle_connection request params = self.class.parse_params(request) request.post? ? upstream(params) : downstream(params) end
push(message)
click to toggle source
# File lib/drunkmonkey/transport.rb, line 133 def push message @messages << message signal :pushed end
Private Instance Methods
downstream(params)
click to toggle source
# File lib/drunkmonkey/transport.rb, line 144 def downstream params if params["when"] == "open" @controller.async.fire :open, Actor.current "" else wait :pushed if @messages.empty? message = @messages.shift message ? portal(message) : "" end end
upstream(params)
click to toggle source
# File lib/drunkmonkey/transport.rb, line 139 def upstream params @controller.async.fire :message, Actor.current, params["data"] "" end