[Note: parts of this message were removed to make it a legal post.]
I express no curiosity about the illegal parts! (-;
Joshua Ball wrote:
I am curious if there is a programatic way to list all methods of a class.
(Yes, I know about "ri", I am just curious here)
ri only returns what the documentor felt like telling you.
Here's my favorite wrapper on the 'public_methods' system:
def what?(anObject)
p anObject.class.name
puts (anObject.public_methods - Object.new.public_methods).sort
end
Now you just say 'what? f', and it tells you what f's all about. It also throws away all the stuff f inherited from Object, because you should already know it!
> [Note: parts of this message were removed to make it a legal post.]
I express no curiosity about the illegal parts! (-;
Joshua Ball wrote:
I am curious if there is a programatic way to list all methods of a class.
(Yes, I know about "ri", I am just curious here)
ri only returns what the documentor felt like telling you.
Here's my favorite wrapper on the 'public_methods' system:
def what?(anObject)
p anObject.class.name
puts (anObject.public_methods - Object.new.public_methods).sort
end
You do not need to construct an instance of Object - you can as well use Object.public_instance_methods.
Now you just say 'what? f', and it tells you what f's all about. It also throws away all the stuff f inherited from Object, because you should already know it!
Here's an alternative version, which prints methods with the defining class. Note that this omits methods defined at the instance level.
def what? o
o.class.ancestors.each do |cl|
p cl, cl.public_instance_methods(false).sort
end
end