Посмотреть доступные методы ruby - PullRequest
11 голосов
/ 14 декабря 2009

как я могу просмотреть все доступные методы для объекта в ruby. Я использую aptana IDE, когда набираю File. методы не отображаются. Я исхожу из фона затмения / Java.

Спасибо

Ответы [ 5 ]

23 голосов
/ 14 декабря 2009

Есть несколько методов:

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

Обновление

  1. Чтобы отделить методы объекта от всех унаследованных методов, вы можете сделать:

    obj.methods (ложные)

  2. Как упомянул Tempus в комментариях, следующая команда очень полезна для отделения текущих методов объекта от унаследованных от Object (базового класса) методов:

    obj.methods - Object.methods

4 голосов
/ 14 декабря 2009

Вы можете передать true методам, если хотите игнорировать методы, определенные в суперклассах:

obj.methods(true)
obj.public_methods(true)
obj.private_methods(true)
obj.protected_methods(true)
obj.singleton_methods(true)

Или, если вы хотите удалить только самые распространенные методы, определенные в классе Object, вам нужно добавить либо - Object.methods, либо - Object.instance_methods, в зависимости от того, является ли obj классом или экземпляром. класса.

3 голосов
/ 14 декабря 2009

Я бы также отметил, что obj.methods не возвращает отсортированные имена методов, поэтому вы можете захотеть сделать obj.methods.sort.

3 голосов
/ 14 декабря 2009

Если у вас работает интерпретатор Ruby, <object>.methods покажет доступные методы для объекта. В Eclipse, когда я набрал File., ничего не происходило, пока я не выполнил команду Content Assist (CTRL + пробел). В этот момент я получил список методов.

2 голосов
/ 14 декабря 2009

Вы можете вызвать File.methods в интерактивном интерпретаторе Ruby, чтобы увидеть все доступные методы. Я не уверен, есть ли способ, которым вы пользуетесь в IDE, так как я не использовал его раньше.

...