class FayeRails::Middleware

Constants

DEFAULTS

Public Class Methods

new(app, options={}, &block) click to toggle source
# File lib/faye-rails/middleware.rb, line 13
    def initialize(app, options={}, &block)
      @app = app

      if Rails.application.config.middleware.include? Rack::Lock
        message = <<-EOF

WARNING: You have the Rack::Lock middlware enabled.

faye-rails can't work when Rack::Lock is enabled, as it will cause
a deadlock on every request.

Please add:

    config.middleware.delete Rack::Lock

to your application config in application.rb

        EOF
        Rails.logger.fatal message
        $stdout.puts message
        exit 1
      end

      unknown_options = options.keys - DEFAULTS.keys
      if unknown_options.one?
        raise ArgumentError, "Unknown option: #{unknown_options.first}."
      elsif unknown_options.any?
        raise ArgumentError, "Unknown options: #{unknown_options * ", "}."
      end

      options = DEFAULTS.merge(options)
      server = options.delete(:server)
      Faye::WebSocket.load_adapter(server) if server && server != 'passenger'

      @adapter = FayeRails::RackAdapter.new(@app, options)
      @adapter.instance_eval(&block) if block.respond_to? :call
    end

Public Instance Methods

call(env) click to toggle source
# File lib/faye-rails/middleware.rb, line 51
def call(env)
  @adapter.call(env)
end