Class: FlashCookieSession::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/flash_cookie_session/middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, session_key = Rails.application.config.session_options[:key]) ⇒ Middleware

Returns a new instance of Middleware.



3
4
5
6
# File 'lib/flash_cookie_session/middleware.rb', line 3

def initialize(app, session_key = Rails.application.config.session_options[:key])
  @app = app
  @session_key = session_key
end

Instance Method Details

#call(env) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/flash_cookie_session/middleware.rb', line 8

def call(env)
  if env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/
    req = Rack::Request.new(env)
    the_session_key = [ @session_key, req.params[@session_key] ].join('=').freeze if req.params[@session_key]
    the_remember_token = [ 'remember_token', req.params['remember_token'] ].join('=').freeze if req.params['remember_token']
    cookie_with_remember_token_and_session_key = [ the_remember_token, the_session_key ].compact.join(';').freeze
    env['HTTP_COOKIE'] = cookie_with_remember_token_and_session_key
    env['HTTP_ACCEPT'] = "#{req.params['_http_accept']}".freeze if req.params['_http_accept']
  end
  
  @app.call(env)
end