[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

class hierarchy with rdoc

Googy

4/7/2007 12:21:00 PM

Hi,

I am newbie to ruby, I have extensive experience in java & with
javadoc, javadoc shows class hierarchy i.e. its parent classes and
interfaces in a tree view, so you can easily understand the whole
hierarchy but when I moved to ruby the feature missing is to see the
class hierarchy for ruby classes. Every time I can't fire irb and
create an object and see its ancestors
(<obj>.class. ancestors).

So am I missing something? Is it possible to see the class hierarchy
in rdoc generated documentation ?

Particularly when you go to http://www.ruby-doc... for core
documentation there is no way to see even Fixnum parent classes.
Fixnum is only for example. And from my experience good
documentation plays important role in its adaptability.

Suggest me if there are any alternative ruby documentation generators
or class browsers.

Thanks.

4 Answers

Stefano Crocco

4/7/2007 12:46:00 PM

0

Alle sabato 7 aprile 2007, Googy ha scritto:
> Hi,
>
> I am newbie to ruby, I have extensive experience in java & with
> javadoc, javadoc shows class hierarchy i.e. its parent classes and
> interfaces in a tree view, so you can easily understand the whole
> hierarchy but when I moved to ruby the feature missing is to see the
> class hierarchy for ruby classes. Every time I can't fire irb and
> create an object and see its ancestors
> (<obj>.class. ancestors).
>
> So am I missing something? Is it possible to see the class hierarchy
> in rdoc generated documentation ?
>
> Particularly when you go to http://www.ruby-doc... for core
> documentation there is no way to see even Fixnum parent classes.
> Fixnum is only for example. And from my experience good
> documentation plays important role in its adaptability.
>
> Suggest me if there are any alternative ruby documentation generators
> or class browsers.
>
> Thanks.

RDoc doesn't allow you to see the full class hierarchy, but it does allow you
to see the parent class of a given class. It's specified just below the name
of the class. Taking Fixnum as an example, at the beginning of the
documentation page, there is:

Class Fixnum
In: numeric.c
lib/mathn.rb
lib/rational.rb
lib/rexml/xpath_parser.rb
Parent: Integer

This last line is the one you need. It tells you that the parent class of
Fixnum is Integer.

You can also see it using ri: if you type, for example:

ri Fixnum,

the very first line you get says:

Class: Fixnum < Integer

which tells you the parent of Fixnum. If no parent is displayed, it means that
the class inherit directly from Object.

I hope this helps

Stefano

Scott Taylor

4/7/2007 12:47:00 PM

0


Use ri 'ClassName' at the command line.

A better alternative is to download the fast-ri gem (ri is incredibly
slow).

Just to let you know, Ruby does not have multiple Inheritance, so
most of the base classes subclass from class Object. What you are
seeing when you call "ancestors" are the modules which are included
in the class. All of this information is given to you through ri.

If you are looking for rdoc documentation, use the gem_server command
at the command line and go to http://localhost:8808/. That should
give you the docs for any gems you have installed on your system.

Hope that helps,

Scott Taylor


On Apr 7, 2007, at 8:25 AM, Googy wrote:

> Hi,
>
> I am newbie to ruby, I have extensive experience in java & with
> javadoc, javadoc shows class hierarchy i.e. its parent classes and
> interfaces in a tree view, so you can easily understand the whole
> hierarchy but when I moved to ruby the feature missing is to see the
> class hierarchy for ruby classes. Every time I can't fire irb and
> create an object and see its ancestors
> (<obj>.class. ancestors).
>
> So am I missing something? Is it possible to see the class hierarchy
> in rdoc generated documentation ?
>
> Particularly when you go to http://www.ruby-doc... for core
> documentation there is no way to see even Fixnum parent classes.
> Fixnum is only for example. And from my experience good
> documentation plays important role in its adaptability.
>
> Suggest me if there are any alternative ruby documentation generators
> or class browsers.
>
> Thanks.
>
>


Googy

4/7/2007 12:57:00 PM

0

@Stefano Crocco
Thanks, I overlooked it.

@Scott Taylor
Thanks for suggesting ri.

matt

4/7/2007 3:23:00 PM

0

Googy <cooldudevamsee@gmail.com> wrote:

> @Stefano Crocco
> Thanks, I overlooked it.
>
> @Scott Taylor
> Thanks for suggesting ri.

Also I find it useful to have on hand a little utility for generating a
report about a class's ancestry, such as this:

def method_report(klass)
result = klass.ancestors.inject(Array.new) do |result, anc|
ms = (anc.instance_methods + anc.methods).sort.uniq
result.last[1] -= ms if result.last
result << [anc.name, ms]
end
result.each do |k, v|
puts "----", k
v.each {|m| puts "\s\s#{m}"}
end
end
# and here's how to use it
method_report(File)

That's basically what you were already doing in irb, but going a little
further. :) HTH - m.


--
matt neuburg, phd = matt@tidbits.com, http://www.tidbits...
Tiger - http://www.takecontrolbooks.com/tiger-custom...
AppleScript - http://www.amazon.com/gp/product/...
Read TidBITS! It's free and smart. http://www.t...