Неопределенный метод для ри внутри IRB - PullRequest
1 голос
/ 23 мая 2010

Внутри интерактивной консоли ruby, если я набираю ri, я получаю неопределенную ошибку метода, нужно ли явно устанавливать документацию где-нибудь, чтобы это работало?

irb(main):015:0* ri --help
NoMethodError: undefined method `-@' for nil:NilClass
    from (irb):15
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:295
irb(main):016:0> ri Array
NoMethodError: undefined method `ri' for main:Object
    from (irb):16
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:295

Ответы [ 3 ]

4 голосов
/ 13 января 2011

Фактически ORI gem может перенести RI на вашу IRB-консоль и дать некоторые более удобные функции исследования класса.

Смотреть заставку .

Настройка (~/.irbrc)

require "rubygems"
require "ori"

Запрос RI для класса

Array.ri
String.ri
[].ri
"".ri
5.ri

Запрос RI на метод

String.ri :upcase
"".ri :upcase
[].ri :sort
Hash.ri :[]

Запросить список интерактивных методов

String.ri //
"".ri //
"".ri /case/
"".ri /^to_/
User.ri /^validates_/
* * Тысяча двадцать-одина и т.д.
3 голосов
/ 13 января 2011

Просто --help:

irb(main):040:0> --help

Enter the method name you want to look up.
You can use tab to autocomplete.
Enter a blank line to exit.

>> Array
←[0m←[1;32mArray < Object←[m

(from gem backports-1.18.2)
------------------------------------------

Чтобы вернуться в IRB, я нажал Crtl+C, но, возможно, есть какая-то команда выхода.

3 голосов
/ 23 мая 2010

Вы, вероятно, не хотите этого делать.То, что вы должны делать, это выходить в оболочку (или, предпочтительно, открыть новую вкладку терминала или сеанс экрана) и запускать ri отдельно, то есть программу, оттуда.Если вы действительно хотите сделать то, что делаете, вы всегда можете использовать backticks для запуска ri --help или любой другой команды оболочки.

irb (main): 015: 0 *`ri ​​--help`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...