While trying to navigate a large, unfamiliar application, I find a
cross referenced browser invaluable.
For statically typed languages, there exist a whole bunch: LXR, the
browser part of MSVC IDE, etc.
For Ruby, are there any?
I realize that it won’t be perfect, as you can’t always know excatly
where the method is defined. But a simple algorithm which would
certainly be at least 80/20 would be:
- If it is proceeded by a dot, it is a method name
- To guess the class of any object: If you see: variable_name =
CapitalLetter.something, you can guess that variable_name is an
instance of CapitalLetter
- To find a method definition, first look through the methods defined
for that class (RDoc is already able to parse them), then look through
the current file, then, through all the files required in. Failing
that, link to a simple search page, listing all of the places where it
For me, a simple browser like this makes all the difference navigating
I have no experience with CTags - maybe it could be used to do
something like this?
PS For a radically different approach, how 'bout using Ruby to load the
app in a sandbox, and reflect across the entire ObjectSpace to figure
everything out? Could this be done? I know it’s a lot of work -
beyond the scope of my initial request - but, if it could, it could add
code completion and refactoring to dynamic lang IDE’s, something which
many developers truely miss.