Documentation in Ruby

Hi
I have a problem with Ruby Reference. How can I see all the methods of a
class? for example from where I know that array has a method that its
name is "detect" ?

thanks

···

--
Posted via http://www.ruby-forum.com/.

"amir e." <aef1370@gmail.com> writes:

I have a problem with Ruby Reference. How can I see all the methods of a
class?

Use 'Class#instance_methods' method. 'Array.instance_methods', for.example. By
default it returns all class' instance methods, if you pass 'false' as
an argument to it - only those defined in class itself, without
ancestors'

amir e. wrote in post #1013953:

Hi
I have a problem with Ruby Reference. How can I see all the methods of a
class? for example from where I know that array has a method that its
name is "detect" ?

thanks

All the methods that an object can call come from several sources:

its singleton class
its class
all it's parent classes
modules its class includes
modules its parent class's include

One way to find 'detect' is to go to the docs for Array, and when you
don't see the method listed there, look under the heading Included
Modules. In this case, Enumerable is listed, and if you click on that
link, you will be taken to the Enumerable class and the methods listed
there include detect.

···

--
Posted via http://www.ruby-forum.com/\.

If you look at http://rdoc.info/stdlib/core/1.9.2/Array you will see "detect" listed under "Methods included from Enumerable".

-Justin

···

On 07/31/2011 01:28 AM, amir e. wrote:

Hi
I have a problem with Ruby Reference. How can I see all the methods of a
class? for example from where I know that array has a method that its
name is "detect" ?

thanks

There are several useful methods:
obj.methods # public methods
obj.public_methods
obj.private_methods
obj.protected_methods
obj.singleton_methods
Class.instance_methods
Class.instance_methods(false) # no inherited methods

Note that array arithmetic can sometimes be useful, ie:
module M
  def m
  end
end
class C
  include M
  def c
  end
end
C.instance_methods - Object.new.methods # => [:c, :m]

Also note that grepping can sometimes be useful, ie:
Array.new.methods.grep(/index/) # => [:each_index, :find_index, :index,
:rindex, :each_with_index]

Also, if you're doing this in IRB, consider trying Pry, which offers the
`ls` command that makes this sort of thing less tedious. I give a few
examples of it in my screencast @ Pry Screencast on Vimeo here's all the
options it supports:

pry(main)> ls -h
Usage: ls [OPTIONS] [VAR]
List information about VAR (the current context by default).
Shows local and instance variables by default.

···

On Sun, Jul 31, 2011 at 3:28 AM, amir e. <aef1370@gmail.com> wrote:

Hi
I have a problem with Ruby Reference. How can I see all the methods of a
class? for example from where I know that array has a method that its
name is "detect" ?

thanks

--
Posted via http://www.ruby-forum.com/\.

--
    -g, --globals Display global variables.
    -c, --constants Display constants.
    -l, --locals Display locals.
    -i, --ivars Display instance variables.
    -k, --class-vars Display class variables.
    -m, --methods Display methods (public methods by
default).
    -M, --instance-methods Display instance methods (only relevant
to classes and modules).
    -P, --public Display public methods (with -m).
    -r, --protected Display protected methods (with -m).
    -p, --private Display private methods (with -m).
    -j, --just-singletons Display just the singleton methods
(with -m).
    -s, --super Include superclass entries excluding
Object (relevant to constant and methods options).
    -e, --everything Include superclass entries including
Object (must be combined with -s switch).
    -a, --all Display all types of entries.
    -v, --verbose Verbose ouput.
    -f, --flood Do not use a pager to view text longer
than one screen.
        --grep REG Regular expression to be used.
    -h, --help Show this message.

On Sun, Jul 31, 2011 at 7:24 AM, 7stud -- <bbxx789_05ss@yahoo.com> wrote:

All the methods that an object can call come from several sources:

all it's parent classes

Presumably you mean classes inherited from its class and singleton class?

modules its parent class's include

Presumably you mean classes its singleton class includes?

If one knows enough internals, the list can be made elegant: its class and
classes its class inherits from. But for that, you have to understand how
Ruby lies to you in order to have singleton classes and look like multiple
inheritance. If anyone is interested in that, there is a fantastic blog
entry that covers most of it @
http://carboni.ca/blog/p/Modules-How-Do-They-Work\.

What does this mean?

···

On Sun, Jul 31, 2011 at 09:24:46PM +0900, 7stud -- wrote:

modules its parent class's include

--
Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ]

Chad Perrin wrote in post #1013996:

···

On Sun, Jul 31, 2011 at 09:24:46PM +0900, 7stud -- wrote:

modules its parent class's include

What does this mean?

s/class's/classes'/gc

--
Posted via http://www.ruby-forum.com/\.