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