記事の引越しから漏れていたのでサルベージ。

RubyInsideで紹介されていたUsing Omnigraffle to visualise Rails model associationsに触発されて、 Model同士の関係をグラフで表示するプラグインを作ってみました。

こんな感じのグラフを表示します。

使い方は、まずプラグインをインストールします。

$ ./script/plugin install http://svn.labs.drecom.jp/rails/plugins/trunk/model_graph
このプラグインはControllerジェネレータになっているので、次のように ModelGraphを表示するControllerを生成します。
$ ./script/generate model_graph
これによってModelGraphControllerが生成されるので、あとは'/model_graph'にアクセスすれば、上図のようなグラフが表示されます。もちろんGraphVizに依存しているので、事前にインストールしておく必要があります。

オリジナルの実装に加えて、app/models以外の場所に存在するすべてのModelの関係を表せるように改良してあります。

デフォルトのURLマッピングを削除している場合は、routes.rbにmodel_graphコントローラのindexアクションにマップするURLの記述を追加してください。

map.connect 'model_graph', :controller => 'model_graph'
ジェネレータプラグインなので、不要になったら
$ ./script/destroy model_graph
を実行すれば削除できます。

デフォルトではPNG形式の画像が出力されますが、'/model_graph?format=svg'のようにフォーマットを指定する事で、GraphVizがサポートするpng、gif、jpeg、svgの4種類の形式で出力する事ができます。

posted by Png genki on Wed 21 Nov 2007 at 13:16

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry213
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ