class TestSessionManager::Middleware

Public Class Methods

new(app, manager) click to toggle source
# File lib/test_session_manager/middleware.rb, line 5
def initialize(app, manager)
  @app = app
  @manager = manager
end

Public Instance Methods

call(env) click to toggle source
# File lib/test_session_manager/middleware.rb, line 10
def call(env)
  session = env['rack.session']

  if @manager.flash.any?
    flash = flash_from_session(session['flash'])
    flash.update(@manager.flash)
    session['flash'] = flash.to_session_value
  end

  @manager.session.each do |key, value|
    session[key] = value
  end

  @manager.reset!

  @app.call(env)
end
flash_from_session(value) click to toggle source
# File lib/test_session_manager/middleware.rb, line 28
def flash_from_session(value)
  if value.is_a?(Hash)
    ActionDispatch::Flash::FlashHash.new(value['flashes'], value['discard'] || [])
  else
    ActionDispatch::Flash::FlashHash.new
  end
end