Class: ActionDispatch::Flash

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_4_session_flash_backport/rails2/flash_hash.rb,
lib/rails_4_session_flash_backport/rails3/flash_hash.rb

Defined Under Namespace

Classes: FlashHash

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/rails_4_session_flash_backport/rails3/flash_hash.rb', line 40

def call(env)
  @app.call(env)
ensure
  session    = env['rack.session'] || {}
  flash_hash = env[KEY]

  if flash_hash
    if !flash_hash.empty? || session.key?('flash')
      session["flash"] = flash_hash.to_session_value
      new_hash = flash_hash.dup
    else
      new_hash = flash_hash
    end

    env[KEY] = new_hash
  end

  if session.key?('flash') && session['flash'].nil?
    session.delete('flash')
  end
end