unused methods

C

Cheshire Cat

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!
 
P

Phlip

Cheshire Cat 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?

Grab Watir, and write acceptance tests for each feature in your project.

Now start whacking lines, and each time you do, pass all the tests. If a
test fails unexpectedly, put the line back.

Another thing you brought from PHP is no unit tests, right?

Write them also, in the test folder.
 
J

Jan Svitok

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,213
Messages
2,571,107
Members
47,699
Latest member
lovelybaghel

Latest Threads

Top