Skip to content

Instantly share code, notes, and snippets.

@calas
Created June 12, 2009 15:53
Show Gist options
  • Save calas/128719 to your computer and use it in GitHub Desktop.
Save calas/128719 to your computer and use it in GitHub Desktop.
FLASH_NOTICE_KEYS = [:error, :notice, :warning, :message, :success]
def flash_messages
return unless messages = flash.keys.select{|k| FLASH_NOTICE_KEYS.include?(k)}
formatted_messages = messages.map do |type|
content_tag :div, :class => "#{type}Explanation" do
flash_message_for(flash[type])
end
end
formatted_messages.join
end
def flash_message_for(message)
if message.is_a?(Array)
flash_message_for_array(message)
elsif message.is_a?(Hash)
flash_message_for_hash(message)
else
content_tag :p, message
end
end
def flash_message_for_array(messages)
formatted_messages = messages.map { |msg| content_tag(:li, msg) }
content_tag :ul, formatted_messages.join
end
def flash_message_for_hash(message)
[content_tag(:h2, message[:title]), flash_message_for(message[:body])].join
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment