gem「object_tree」作りました。
https://github.com/siman-man/object_tree
Rubyでクラス継承やら、モジュールのincludeなどをしたときに、ancestorsメソッドなどで継承関係を調べることができるのですが、これをtreeコマンドっぽくして視覚的に見やすくしました。(1.8は確認してないです。)
使い方
gem install object_tree
require 'object_tree' class A end class B < A end class C < A end tree = ObjectTree::Tree.create(A) tree.draw
<C>A ├──── <C>B └──── <C>C
ObjectTree::Tree.createメソッドにrootにするクラスを指定します。(moduleは指定できません)そして、drawメソッドを使用して出力します。
Moduleも含めた表示
createメソッドの第2引数はmodule表示の有無を指定です。trueを入れるとmoduleを含めた表示になります。
require 'object_tree' module D; end module E; end class A end class B < A include D end class C < A include E end tree = ObjectTree::Tree.create(A, true) tree.draw
<C>A ├──── <M>E │ └──── <C>C └──── <M>D └──── <C>B
これで継承関係が視覚的に見れるようになりました。