いつも最初にきちんと設計するんですが、あれこれと仕様変更でどんどんコードが変わっていく・・
しかもRspecでテスト書いているので仕様変更にも柔軟に対応できてしまう。
そうなると、後でこれってどうなってたっけ?みたいなことになる。
そんなときに簡単に設計をチェックできる、いわゆるリバースエンジニアリングに近いことができます。
http://railroad.rubyforge.org/
# sudo port install graphviz # sudo gem install railroad
RAILS_ROOTに移動して、コマンド実行。
# railroad -C -o doc/controllers.dot # railroad -M -o doc/models.dot # neato -Tpng doc/controllers.dot > doc/controllers.png # neato -Tpng doc/models.dot
簡単なクラス図を生成してくれます。
いちいちコマンドが面倒なのでrakeタスクにしちゃいます。
namespace :doc do
namespace :railroad do
task :models do
sh "railroad -i -l -a -m -M -o doc/models.dot"
sh "neato -Tpng doc/models.dot > doc/models.png"
end
task :controllers do
sh "railroad -i -l -C -o doc/controllers.dot"
sh "neato -Tpng doc/controllers.dot > doc/controllers.png"
end
end
task :railroad => %w(railroad:models railroad:controllers)
end
私はコントローラーのアクションとか確認するのによく使います。