Ответ 1
Ищите методы в ядре, объекте и модуле: например. local_variables, instance_methods, instance_variables.
Другие отличные методы. inspect - это еще один.
Когда я перехожу в irb и набираю команду, которая не существует, я получаю сообщение об ошибке
"undefined local variable or method 'my_method' for main:Object (NameError)"
Есть ли способ получить список доступных локальных переменных или методов? Это было бы действительно полезно для изучения рубина.
Ищите методы в ядре, объекте и модуле: например. local_variables, instance_methods, instance_variables.
Другие отличные методы. inspect - это еще один.
Отличные ответы.
По мере того как вы исследуете, вы имеете их в своем распоряжении:
obj.private_methods
obj.public_methods
obj.protected_methods
obj.singleton_methods
и
MyClass.private_instance_methods
MyClass.protected_instance_methods
MyClass.public_instance_methods
Использование:
obj.public_methods.sort
Может облегчить просмотр.
Существуют некоторые особые случаи, такие как
String.instance_methods(false).sort
... даст вам только методы экземпляров, определенные в классе String, опуская классы, которые он унаследовал от любых предков. Как я надеюсь, вы знаете, вы можете увидеть больше здесь: http://www.ruby-doc.org/docs/ProgrammingRuby/, но это не так забавно, как проверка и отражение в irb.
Счастливое изучение -
Перри
Чтобы узнать переменные экземпляра, вы можете использовать Kernel#instance_variables
, как указал Забба.
Для методов, доступных для объекта, я использую my_object.methods - Object.methods
, чтобы узнать, какие неочевидные методы доступны для моего объекта. Это сужает список и значительно упрощается для чтения.