Call Graph

This makes a call graph among methods of a single Ruby file.

I made it to help me orient myself in unfamiliar legacy code and to help identify cohesive parts that could be split out.

Yes, it is quick and dirty.

Requirements

License

MIT

Running from Source

bundle install --path vendor/bundle
bundle exec bin/code-explorer  # otherwise Sinatra will not start

Example

One file in YaST has around 2700 lines and 73 methods. The call graph below was made with

$ bin/call-graph ../yast/packager/src/modules/Packages.rb
$ dot -Tpng -oPackages.png ../yast/packager/src/modules/Packages.dot

If the resulting size is too big, use ImageMagick:

$ convert Packages.png -resize 1200 Packages-small.png

Packages.png, an example output