views:

230

answers:

5

Hi,

how can I view all the available methods on an object in ruby. I'm using the aptana IDE when I type File. no methods are displayed. I'm coming from an eclipse/java background.

Thanks

+1  A: 

You can invoke File.methods in the interactive Ruby interpreter to see all the available methods. I'm not sure if there's a way in the IDE you're using, as I haven't used it before.

Kaleb Brasee
+3  A: 

There are several mehtods:

obj.methods
obj.public_methods
obj.private_methods
obj.protected_methods
obj.singleton_methods
khelll
I find `obj.methods - Object.methods` useful.
Geo
A: 

If you have a Ruby interpreter running, <object>.methods will show the available methods on the object. In Eclipse when I tiles File. nothing happened until I did a Content Assist command (CTRL+space). At that point I did get a list of methods.

Kathy Van Stone
Thanks. Ctrl space works for me. Unfortunately there doesn't seem to be any documentation associated with the methods ? All I see is their names and paramaters to be passed. Is this a weakness of the ruby IDE?
I'm getting documentation on the Kernal methods. It may be related to ruby docs being present or not
Kathy Van Stone
A: 

You can pass true to the methods if you want to ignore the methods defined in superclasses:

obj.methods(true)
obj.public_methods(true)
obj.private_methods(true)
obj.protected_methods(true)
obj.singleton_methods(true)

Or, if you only want to remove the most common methods that are defined in the Object class, you want to append either - Object.methods or - Object.instance_methods, depending on whether obj is a class or an instance of a class.

dvyjones
+1  A: 

I would also note that obj.methods does not return the method names sorted, so you might want to do obj.methods.sort .

ScottD