class RenderSync::FayeExtension
Public Instance Methods
batch_incoming(message, callback)
click to toggle source
# File lib/render_sync/faye_extension.rb, line 13 def batch_incoming(message, callback) message["data"].each do |message| incoming(message, callback) end end
batch_publish?(message)
click to toggle source
# File lib/render_sync/faye_extension.rb, line 23 def batch_publish?(message) message['channel'] == "/batch_publish" end
handle_eror(message, callback)
click to toggle source
# File lib/render_sync/faye_extension.rb, line 35 def handle_eror(message, callback) message['error'] = 'Invalid authentication token' callback.call(message) end
incoming(message, callback)
click to toggle source
# File lib/render_sync/faye_extension.rb, line 4 def incoming(message, callback) return handle_eror(message, callback) unless message_authenticated?(message) if batch_publish?(message) batch_incoming(message, callback) else single_incoming(message, callback) end end
message_authenticated?(message)
click to toggle source
# File lib/render_sync/faye_extension.rb, line 40 def message_authenticated?(message) !(message['channel'] !~ %r{^/meta/} && message['ext']['auth_token'] != RenderSync.auth_token) end
outgoing(message, callback)
click to toggle source
IMPORTANT: clear out the auth token so it is not leaked to the client
# File lib/render_sync/faye_extension.rb, line 28 def outgoing(message, callback) if message['ext'] && message['ext']['auth_token'] message['ext'] = {} end callback.call(message) end
single_incoming(message, callback)
click to toggle source
# File lib/render_sync/faye_extension.rb, line 19 def single_incoming(message, callback) callback.call(message) end