module PusherFake::Server
Socket and web server manager.
Public Class Methods
start()
click to toggle source
Start the servers.
@see start_socket_server
@see start_web_server
# File lib/pusher-fake/server.rb, line 14 def start chain_trap_handlers EventMachine.run do start_web_server start_socket_server end end
start_socket_server()
click to toggle source
Start the WebSocket server.
# File lib/pusher-fake/server.rb, line 24 def start_socket_server EventMachine::WebSocket.start(configuration.socket_options) do |socket| socket.onopen do connection = Connection.new(socket) connection.establish socket.onmessage { |data| connection.process(data) } socket.onclose { Channel.remove(connection) } end end end
start_web_server()
click to toggle source
Start the web server.
# File lib/pusher-fake/server.rb, line 37 def start_web_server options = configuration.web_options.dup host = options.delete(:host) port = options.delete(:port) Thin::Logging.silent = true Thin::Server.new(host, port, Application).tap do |server| options.each do |key, value| server.__send__(:"#{key}=", value) end server.start! end end
Private Class Methods
chain_trap_handlers()
click to toggle source
Force Thin::Server
and EventMachine::WebSocket
to call the chain of trap handlers to ensure other handles, such as RSpec
, can interrupt.
# File lib/pusher-fake/server.rb, line 56 def chain_trap_handlers EventMachine::WebSocket.singleton_class.prepend(ChainTrapHandlers) Thin::Server.prepend(ChainTrapHandlers) end
configuration()
click to toggle source
Convenience method for access the configuration object.
@return [Configuration] The configuration object.
# File lib/pusher-fake/server.rb, line 64 def configuration PusherFake.configuration end