Class: FlashCookieSession::Middleware
- Inherits:
-
Object
- Object
- FlashCookieSession::Middleware
- Defined in:
- lib/flash_cookie_session/middleware.rb
Constant Summary collapse
- USER_AGENT_MATCHER =
/^(Adobe|Shockwave) Flash/.freeze
- HTTP_REFERER_MATCHER =
/\.swf$/.freeze
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, session_key = Rails.application.config.session_options[:key]) ⇒ Middleware
constructor
A new instance of Middleware.
Constructor Details
#initialize(app, session_key = Rails.application.config.session_options[:key]) ⇒ Middleware
Returns a new instance of Middleware.
6 7 8 9 |
# File 'lib/flash_cookie_session/middleware.rb', line 6 def initialize(app, session_key = Rails.application.config.[:key]) @app = app @session_key = session_key end |
Instance Method Details
#call(env) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/flash_cookie_session/middleware.rb', line 11 def call(env) referrer = env['HTTP_REFERER'].to_s.split('?').first if env['HTTP_USER_AGENT'] =~ USER_AGENT_MATCHER || referrer =~ HTTP_REFERER_MATCHER req = Rack::Request.new(env) the_session_key = [ @session_key, req.params[@session_key] ].join('=').freeze if req.params[@session_key] if req.params['remember_token'] && req.params['remember_token'] != 'null' the_remember_token = [ 'remember_token', req.params['remember_token'] ].join('=').freeze else the_remember_token = nil end = [ the_remember_token, the_session_key ].compact.join('\;').freeze env['HTTP_COOKIE'] = env['HTTP_ACCEPT'] = "#{req.params['_http_accept']}".freeze if req.params['_http_accept'] end @app.call(env) end |