1, 读出所有方法名. 2, 分析所有方法名调用的其他方法名,得到一个调用关系 Hash 表 :a 3, 利用 :a 和 Ruby-Graphviz 画出 关系图,也可以用 gnuplot , gem install gnuplot 4, 从主循环出发,调用层数可设置,默认 4 层 5, 支持方法名和中文名称的一一对应
期待楼主大作
感觉不大靠谱,有点像写 IDE 的节奏
刚发现了一个好东西:http://railroady.prestonlee.com/
类似的工具应该蛮多的,之前还拿来试过生成 Spree 的类图。不过可看性就太低了
#3 楼 @chunlea 这个是不错,但是,是给 rails 项目使用的,我要的是针对非 rails 的。
把源代码用编译器转成 AST 再把所有的 branch 都走一遍如何?
#6 楼 @chitsaou 嗯,也是个办法,执行效率先不管了。
打算 gem install ast 试试
要是有元编程能知道要调用哪个方法?
#8 楼 @xjz19901211 确实,有点像写解析器的节奏。太难了。