On 9/25/06, Cheshire Cat <cheshire137 / gmail.com> wrote:
> I'm wondering if there is a good, quick way to determine unused methods
> in a large Ruby or Rails application.  My situation is that I wrote a
> Rails app sometime last year, when I was first learning both Ruby and
> Rails, and coming back to it now, it looks like a PHP app that just
> happens to be written in Ruby (I came from PHP).  So, I'm refactoring a
> lot of things to make it more modular and Ruby-esque, but I haven't
> been deleting functionality along the way out of concern for keeping it
> working while I update it.  Now, though, I would like to be able to
> have something parse my source and, for every method defined, have a
> count of how many times it is used, where it is called, etc.  Is there
> a tool like this out there, or will I need to write such a beast?
> Thanks!

rcov (gem install rcov) will give you coverage info (i.e. what lines
have been visited during a program run). Using it will of course
require that you have tests that will walk all the possible paths.

You could use ParseTree[1] to build call graphs, but it would be much
harder, so I say write the tests as well.

[1] http://www.zenspider.com/ZSS/Products/ParseTree/index.html