Forum: Ruby Is there a tool to document method invocations?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Larry F. (Guest)
on 2007-03-30 01:22
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.
Joel VanderWerf (Guest)
on 2007-03-30 01:35
(Received via mailing list)
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.
Larry F. (Guest)
on 2007-03-30 01:51
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.
Gary W. (Guest)
on 2007-03-30 02:38
(Received via mailing list)
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.
Larry F. (Guest)
on 2007-03-30 02:42
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?
Lugovoi N. (Guest)
on 2007-03-30 03:06
(Received via mailing list)
Perhaps, rcov:  http://eigenclass.org/hiki.rb?rcov
Though, you'll need really good test suite to see info for usage of
*all* methods :)

2007/3/30, Larry F. <removed_email_address@domain.invalid>:
Gary W. (Guest)
on 2007-03-30 03:13
(Received via mailing list)
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.
Larry F. (Guest)
on 2007-03-30 03:55
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.
This topic is locked and can not be replied to.