When I go into irb and type in a command that does not exist I get an error stating
"undefined local variable or method 'my_method' for main:Object (NameError)"
Is there a way to just get a list of what local variables or methods ARE available? This would be really useful for exploring ruby.
Look for methods in the Kernel, Object and Module : e.g. local_variables, instance_methods, instance_variables.
Other great methods in there. inspect is another one.
Great answers.
As you explore, you have these at your disposal:
obj.private_methods obj.public_methods obj.protected_methods obj.singleton_methods
and
MyClass.private_instance_methods MyClass.protected_instance_methods MyClass.public_instance_methods
Usage like :
obj.public_methods.sort
Can make review easier too.
Some special cases exist like
String.instance_methods(false).sort
... will give you only the instance methods defined in the String class, omitting the classes it inherited from any ancestors. As I expect you know, you can see more here: http://www.ruby-doc.org/docs/ProgrammingRuby/ but it's not as fun as inspecting and reflecting in irb.
Happy exploring -
Perry
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With