Is there a tool to document method invocations?


#1

I’m looking for something that will create a cross-reference document
showing where all my methods are being used. An ideal world would
include forward and reverse links within an editor. Are there any
editors, environments or tools that provide this functionality for Ruby?

Thanks,
Larry F.


#2

Larry F. wrote:

I’m looking for something that will create a cross-reference document
showing where all my methods are being used. An ideal world would
include forward and reverse links within an editor. Are there any
editors, environments or tools that provide this functionality for Ruby?

Thanks,
Larry F.

You can use the excellent ruby-prof in this way.

gem install ruby-prof

If you request the HTML output, you get a page with links from each
method to callers and callees, plus timing information.

It’s a really nice tool.


#3

Joel VanderWerf wrote:

gem install ruby-prof
It’s a really nice tool.

OK, but doesn’t it just produce runtime reports? I’m looking for a
static report on WHERE in my code various objects and methods are used.
Is this capability buried in ruby-prof somewhere? The docs just talk
about runtime.


#4

On Mar 29, 2007, at 5:51 PM, Larry F. wrote:

Joel VanderWerf wrote:

gem install ruby-prof
It’s a really nice tool.

OK, but doesn’t it just produce runtime reports? I’m looking for a
static report on WHERE in my code various objects and methods are
used.
Is this capability buried in ruby-prof somewhere? The docs just talk
about runtime.

I’d be surprised if it were even possible to generate a call graph
based on the static text. Ruby is simply too dynamic of a language.

The main problem is that it is really difficult (impossible?) to
intuit the class of the object returned by a method call by simply
looking at the text. Add in the possibility that methods are
created at run time and it becomes a really hard problem.

Gary W.


#5

Gary W. wrote:

The main problem is that it is really difficult (impossible?) to
intuit the class of the object returned by a method call by simply
looking at the text. Add in the possibility that methods are
created at run time and it becomes a really hard problem.

… so hard that nobody has even bothered to produce the basics? Don’t
other development languages have this? How do you live without it?


#6

Perhaps, rcov: http://eigenclass.org/hiki.rb?rcov
Though, you’ll need really good test suite to see info for usage of
all methods :slight_smile:

2007/3/30, Larry F. removed_email_address@domain.invalid:


#7

Gary W. wrote:

grep
Gary W.

Yep. That’s what I’m doin’ 'til I build up enough test cases to exercise
most of my code. rcov sounds like an important piece of this puzzle.


#8

On Mar 29, 2007, at 6:42 PM, Larry F. wrote:

Gary W. wrote:

The main problem is that it is really difficult (impossible?) to
intuit the class of the object returned by a method call by simply
looking at the text. Add in the possibility that methods are
created at run time and it becomes a really hard problem.

… so hard that nobody has even bothered to produce the basics?
Don’t
other development languages have this? How do you live without it?

grep

But I have looked at call graphs generated when I run my test suites.
You might find the rcov tool useful for this.

http://eigenclass.org/hiki.rb?rcov

Gary W.