module Sinatra module Flash module Style # A view helper for rendering flash messages to HTML with reasonable CSS structure. Handles # multiple flash messages in one request. Wraps them in a
tag with id #flash containing # a
for each message with classes of .flash and the message type. E.g.: # # @example #
#
Today is Tuesday, April 27th.
#
Missiles are headed to destroy the Earth!
#
# # It is your responsibility to style these classes the way you want in your stylesheets. # # @param[optional, String, Symbol] key Specifies which flash collection you want to display. # If you use this, the collection key will be appended to the top-level div id (e.g., # 'flash_login' if you pass a key of :login). # # @return [String] Styled HTML if the flash contains messages, or an empty string if it's empty. # def styled_flash(key=:flash) return '' if flash(key).empty? id = (key == :flash ? 'flash' : "flash_#{key}") messages = flash(key).collect { |message| "
#{message[1]}
\n" } "
\n" + messages.join + '
' end end end end