Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get all local variables or available methods from irb?

Tags:

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.

like image 627
George Mauer Avatar asked Apr 25 '11 03:04

George Mauer


2 Answers

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.

like image 199
Zabba Avatar answered Sep 28 '22 09:09

Zabba


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

like image 23
Perry Horwich Avatar answered Sep 28 '22 09:09

Perry Horwich