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

      if Rails.application.config.middleware.include? Rack::Lock
        message = "\nWARNING: You have the Rack::Lock middlware enabled.\n\nfaye-rails can't work when Rack::Lock is enabled, as it will cause\na deadlock on every request.\n\nPlease add:\n\nconfig.middleware.delete Rack::Lock\n\nto your application config in application.rb\n\n"
        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