ruby reflection irb

ruby - Obtener todas las variables locales o métodos disponibles de irb?



reflection (3)

Busque métodos en el Kernel, Objeto y Módulo: por ejemplo, local_variables , instance_methods , instance_variables .

Otros grandes métodos allí. inspect es otro.

Cuando entro en irb y escribo un comando que no existe, aparece un error que indica

"undefined local variable or method ''my_method'' for main:Object (NameError)"

¿Hay alguna manera de obtener una lista de las variables locales o los métodos disponibles? Esto sería realmente útil para explorar el rubí.


Grandes respuestas.
A medida que exploras, tienes estos a tu disposición:

obj.private_methods obj.public_methods obj.protected_methods obj.singleton_methods

y

MyClass.private_instance_methods MyClass.protected_instance_methods MyClass.public_instance_methods

Uso como

obj.public_methods.sort

Puede hacer la revisión más fácil también.

Existen algunos casos especiales como

String.instance_methods(false).sort

... le dará solo los métodos de instancia definidos en la clase String, omitiendo las clases que heredó de cualquier ancestro. Como espero que sepas, puedes ver más aquí: http://www.ruby-doc.org/docs/ProgrammingRuby/ pero no es tan divertido como inspeccionar y reflexionar en irb.

Feliz explorando

Sidra de pera


Para averiguar las variables de instancia, puede usar Kernel#instance_variables como lo señaló Zabba.

Para los métodos disponibles en un objeto, uso my_object.methods - Object.methods para averiguar qué métodos no obvios están disponibles para mi objeto. Esto reduce la lista y es considerablemente fácil de leer.