2010-03-22 6 views
3

Railroad est un excellent outil UML pour Ruby on Rails. Il peut générer automatiquement des diagrammes de classes de modèles et de contrôleurs. Pour les modèles, un diagramme de classes généré par chemin de fer montre les attributs de chaque modèle et les associations entre un modèle et un autre. A sample diagram peut être trouvé ici. Il est très utile pour un développeur de voir les attributs et les associations de modèles. Alors que les attributs et les associations révèlent les états internes et les relations des modèles, les méthodes spécifient leurs comportements. Ils sont tous souhaitables dans un diagramme de classe. Je voudrais que le chemin de fer génère un diagramme de classes qui énumère également des méthodes pour les modèles, ce qui m'aidera à savoir ce que fait chaque modèle. Je sais que les méthodes sont affichées dans a diagram that is generated for controllers, mais je ne vois pas une telle option pour un diagramme des modèles. Est-ce que quelqu'un sait comment faire cela avec le chemin de fer? Ou est-ce possible?Créer un diagramme de modèles en utilisant Railroad

Merci!

Répondre

2

chemin de fer n'ajoute pas les méthodes de modèle au diagramme. Vous pouvez modifier le code de chemin de fer pour obtenir cette fonctionnalité.

Créez un fichier appelé rail_road_monkey_patch.rb dans le répertoire config/initializers et ajoutez le code suivant. Maintenant, vous avez besoin d'une tâche râteau pour exécuter le chemin de fer (vous en avez besoin pour vous assurer que le patch est chargé).

namespace :doc do 
namespace :diagram do 
    task :models => :environment do 
    sh "railroad -i -l -a -m -M | dot -Tsvg | sed 's/font-size:14.00/font-size:11.00/g' > doc/models.svg" 
    end 

    task :controllers => :environment do 
    sh "railroad -i -l -C | neato -Tsvg | sed 's/font-size:14.00/font-size:11.00/g' > doc/controllers.svg" 
    end 
end 

task :diagrams => %w(diagram:models diagram:controllers) 
end 

Ensuite, rake doc:diagrams produit doc/models.svg et doc/controllers.svg. Si vous utilisez Windows, modifiez la tâche de rake de manière appropriée.

Remarque 1: La tâche de râteau provient du fichier readme Railroad.

Note 2 Je n'ai pas testé le code.

+0

J'ai mis à jour la réponse pour ajouter la tâche de rake, jetez un oeil. –

+0

Merci. Laissez-moi voir comment ça fonctionne. – Shuo

1

extrait de "http://railroad.rubyforge.org/"

Utilisation:

railroad [options] command 


Models diagram options 

* -a, --all 
    Include all models (not only ActiveRecord::Base derived) 
+0

Merci Hock. Cette option me donne tous les modèles. Mais ce que je veux, c'est que les modèles montrent les méthodes. – Shuo

Questions connexes