http://soutaro.com/rubydep-20060628.tgz

Rubyソースコードを解析して、クラス・モジュール間の依存関係を出力します。

画像ファイルは、去年TAをやっているときに作った「レポートのプログラムをメールで提出してもらって、適当にユニットテストを走らせて、正否を返信するプログラム」の依存関係です。読めん。

依存しているとみなすのは

クラスを明示的に継承している場合

モジュールをincludeしている場合

クラス・モジュールのメソッドを呼び出している場合

です。リテラルは全て無視します。プログラム中でclassやmoduleの構文で定義されたもの意外は無視します。

OCamlとextlibとfindlibと、あともちろんRubyが必要です。

$ cd nodedump $ ruby extconf $ make $ cd ../src $ make $ cd .. $ ./rubydep ~/gonzui-1.2 2>gonzui.dot

などとして使います。

標準出力とかの使い方がおかしいですが、許してください。Graphvizのdotになるので、あとは好きに下降してください。gonzui-1.2を解析した結果のイメージがあります(http://soutaro.com/gonzui-1.2.png)。

研究でどうしても必要になったため作りました。多分、当分更新しないと思います。