Railroad

Je commence une série d’articles sur des outils qu’il m’arrive d’utiliser quand je fais du développement Rails et qui mériterait, à mon avis, d’être plus connu. Le premier article de la série est Railroad.

Railroad est un script Ruby qui permet de générer des graphes à partir d’une application d’une Rails, ce qui peut être très pratique pour accompagner une documentation quand on a la flemme de faire ces diagrammes soi-même. Railroad permet de générer 3 types de graphes : un pour les modèles, un pour les controlleurs et un pour les machines à états d‘acts_as_state_machine. Les diagrammes sont générés au format .dot, ce qui permet d’en faire facilement des .png ou des .svg avec la suite graphviz.

L’auteur du script original ne maintient plus ce script mais on peut en trouver des forks sur Github. Je conseille la branche de David Dollar : elle fonctionne avec les dernières versions de Rails et comporte mes patchs (1 2 et 3).

En pratique, on installe le gem ddollar-railroad, on ajoute une ligne à son fichier Rakefile et roulez jeunesse :

gem install ddollar-railroad
echo "require 'railroad/tasks/diagrams' if RAILS_ENV == 'development'" >> Rakefile
rake doc:diagrams

On obtient 3 diagrammes dans doc/diagrams (à condition que graphviz soit installé). Voici, par exemple, ceux que j’obtiens pour la version Rails de LinuxFr.org :

Railroad - controllers Railroad - models Railroad - states