Sha256: bc121d8efdab8e73e63baa0e90c0349bcf0e0129e09477d704319b6f621aad66
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
module FayeRails class Middleware DEFAULTS = { :mount => '/faye', :timeout => 25, :extensions => nil, :engine => nil, :ping => nil, :server => 'thin' } 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) Faye::WebSocket.load_adapter(options.delete(:server)) @adapter = FayeRails::RackAdapter.new(@app, options) @adapter.instance_eval(&block) if block.respond_to? :call end def call(env) @adapter.call(env) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
faye-rails-2.0.0 | lib/faye-rails/middleware.rb |