Comment ça marche ?

Ce plugin est une extension d'ActionView qui permet d'insérer dans vos vues le code nécessaire à l'affichage de vos messages flash en affectant, en fonction du type de flash, la classe CSS adéquate.

Il est dès lors possible d'utiliser les messages flash dans vos contrôleurs sans vous soucier de l'affichage. Vous pouvez par exemple faire appel au flash helper depuis votre layout, les messages seront donc affichables sur n'importe quel page.

Installation

Dans une console, à la racine de votre projet Rails, il vous suffit d'entrer la commande suivante :

$ cd vendor/plugins  
$ hg clone http://www.bitbucket.org/Bounga/flash-helper

Si vous souhaitez installer la CSS associée :

$ rake flash_helpers:install

Exemple d'utilisation

Dans votre layout :

display_flashes

Puis dans vos contrôleurs, vous pouvez maintenant utiliser :

flash[:notice] = "Utilisateur ajouté..."
flash[:errors] = "La création a échouée !"
flash[:errors] = @news.errors
flash[:warning] = "Le nouvel utilisateur n'a pas de blog associé ..."

Paramètrer display_flashes

Les options pour les flash helpers sont optionnelles, leurs valeurs par défaut étant stockées dans le hash Bounga::FlashHelpers::ViewHelpers.flash_options. Vous pouvez écrire dans ce hash pour modifier les options par défaut de manière globale :

Bounga::FlashHelpers::ViewHelpers.flash_options[:notice_class] = 'my_notice'

Les options disponibles (et leurs valeurs par défaut) sont :

:list_class       => 'errors_list'
:notice_class     => 'notice'
:errors_class     => 'errors'
:warning_class    => 'warning'
:default_message  => 'There are problems in your submission:'

Il suffit de modifier ces options dans "config/initializers/flash_helpers.rb" (ou simplement dans environment.rb pour les anciennes versions de Rails) pour qu'elles soient prises en compte.

display_flashes prend un paramètre optionnel qui permet de modifier directement :default_message, par exemple :

display_flashes("Des erreurs sont survenues :")

Et les sources ?!

Le projet est hébergé chez BitBucket. J'utilise le SCM Mercurial pour le contrôle des sources.

Vous pourrez donc le trouver à cette adresse : http://www.bitbucket.org/Bounga/flash-helper/.

Vous pouvez suivre les commits, avoir accès à de jolis graphes, récupérer les sources ou encore forker le projet !

Le mot de la fin

J'espère que ce plugin pourra vous être utile.

Tout rapports de problèmes, commentaires ou suggestions sont les bienvenues.