module ActionDispatch::Flash::RequestMethods

def commit_flash # :nodoc:

:nodoc:
def commit_flash # :nodoc:
  session    = self.session || {}
  flash_hash = self.flash_hash
  if flash_hash && (flash_hash.present? || session.key?('flash'))
    session["flash"] = flash_hash.to_session_value
    self.flash = flash_hash.dup
  end
  if (!session.respond_to?(:loaded?) || session.loaded?) && # (reset_session uses {}, which doesn't implement #loaded?)
      session.key?('flash') && session['flash'].nil?
    session.delete('flash')
  end
end

def flash

to put a new one.
read a notice you put there or flash["notice"] = "hello"
Access the contents of the flash. Use flash["notice"] to
def flash
  flash = flash_hash
  return flash if flash
  self.flash = Flash::FlashHash.from_session_value(session["flash"])
end

def flash=(flash)

def flash=(flash)
  set_header Flash::KEY, flash
end

def flash_hash # :nodoc:

:nodoc:
def flash_hash # :nodoc:
  get_header Flash::KEY
end

def reset_session # :nodoc

:nodoc
def reset_session # :nodoc
  super
  self.flash = nil
end