Ajouter facilement les modes verbeux / silencieux à votre application Ruby
Par Bounga le lundi, 20 mars 2006, 19:07 - Trucs et astuces - Lien permanent
Il est parfois intéressant d'ajouter à son application les modes verbeux / silencieux. Les utilisateurs peuvent ainsi contrôler facilement la quantité d'informations qu'ils souhaitent avoir à propos du fonctionnement de l'application. Ces modes sont tout particulièrement utiles lorsque vous utilisez des applications en mode texte. Si vous développez votre application en Ruby, vous pouvez tirer partie des fonctionnalités disponibles dans le langage pour mettre facilement en place ces modes.
Lorsqu'un interpréteur Ruby est lancé, il crée automatiquement un certain nombre de variables globales. Celle à laquelle nous nous intéresserons est $VERBOSE. Par défaut cette variable se voit affecter la valeur false.
La méthode warn()[1] de la librairie standard permet d'envoyer un message sur la sortie d'erreur standard[2]. Cette méthode n'affiche la chaîne passée en argument que si la variable $VERBOSE est différente de nil. Pour activer notre mode verbeux il nous suffit donc d'utiliser warn() à la place de puts()[3] lorsqu'on veut afficher un avertissement, un message d'erreur, etc. Ensuite, à l'éxecution de notre programme, on changera le contenu de la variable $VERBOSE, selon que l'utilisateur veuille beaucoup d'informations ou non.
Concrétement, dans notre code, il n'y a que quelques étapes simples à suivre pour activer cette fonctionnalité. On considérera dans un premier temps que le comportement par défaut de notre programme est d'être silencieux. Dans notre code, avant tout affichage on ajoutera donc : $VERBOSE = nil. L'activation du mode verbeux pourra se faire à l'aide des options de la ligne de commande. On pourra utiliser, par exemple, la librairie OptParse qui est livrée en standard avec l'interpréteur. Dans ce cas, Vous pourrez procéder de la façon suivante :
opts.on("-V", "--verbose", "Active le mode verbeux") { $VERBOSE = true }[4]
Vous voilà donc, en quelques lignes de code, avec un petit système de gestion des modes verbeux / silencieux qui pourra vous être très utile.
