Module: Padrino::WebSockets

Defined in:
lib/padrino-websockets.rb,
lib/padrino-websockets/faye.rb,
lib/padrino-websockets/faye/helpers.rb,
lib/padrino-websockets/faye/routing.rb,
lib/padrino-websockets/spider-gazelle.rb,
lib/padrino-websockets/base-event-manager.rb,
lib/padrino-websockets/faye/event-manager.rb,
lib/padrino-websockets/spider-gazelle/helpers.rb,
lib/padrino-websockets/spider-gazelle/routing.rb,
lib/padrino-websockets/spider-gazelle/event-manager.rb

Defined Under Namespace

Modules: Faye, Helpers, SpiderGazelle Classes: BaseEventManager

Class Method Summary collapse

Class Method Details

.registered(app) ⇒ Object Also known as: included

Main class that register this extension.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/padrino-websockets.rb', line 14

def registered(app)
  require 'padrino-websockets/base-event-manager'

  if defined?(::SpiderGazelle)
    require 'padrino-websockets/spider-gazelle'
    app.helpers Padrino::WebSockets::SpiderGazelle::Helpers
    app.extend Padrino::WebSockets::SpiderGazelle::Routing
  elsif defined?(::Faye::WebSocket)
    require 'padrino-websockets/faye'
    ::Faye::WebSocket.load_adapter('thin') if defined?(::Thin)
    require 'padrino-websockets/faye/puma-patch' if defined?(Puma)
    app.helpers Padrino::WebSockets::Faye::Helpers
    app.extend Padrino::WebSockets::Faye::Routing
  else
    logger.error %Q{Can't find a WebSockets backend. At the moment we only support
      SpiderGazelle and Faye Websockets friendly application backends (Puma and Thin work,
      Rainbows, Goliath and Phusion Passenger remain untested and may break).}
    raise NotImplementedError
  end

  app.helpers Padrino::WebSockets::Helpers
end