rubydep
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)。
研究でどうしても必要になったため作りました。多分、当分更新しないと思います。