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 13
def start
  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 21
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 34
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

configuration() click to toggle source

Convenience method for access the configuration object.

@return [Configuration] The configuration object.

# File lib/pusher-fake/server.rb, line 54
def configuration
  PusherFake.configuration
end
socket_server_options() click to toggle source

Return a hash of options for the socket server based on the configuration.

@return [Hash] The socket server configuration options.

# File lib/pusher-fake/server.rb, line 62
def socket_server_options
  { host: configuration.socket_host,
    port: configuration.socket_port }
end