Как получить документацию по Ruby из командной строки
Есть ли способ узнать, какая часть моего ri
команда, которая не показывает документацию Ruby:
$ ruby --version
ruby 1.9.3p392 (2013-02-22 revision 39386) [i686-linux]
$ ri --version
ri 3.12.2
$ ri String
Nothing known about String
Когда я использую pry:
$ pry --version
Pry version 0.9.12 on Ruby 1.9.3
$ pry
[1] pry(main)> ri String
# shows String documentation
[2] pry(main)> ri String.split
error: 'String.split' not found
[3] pry(main)> ri String.strip
String.strip not found, maybe you meant:
String#strip_heredoc
Что я должен сделать, чтобы документация появилась?
4 ответа
Если вы используете RVM
для управления вашими установками Ruby вы можете сделать это:
rvm docs generate
Если нет, попробуйте сделать это:
gem install rdoc-data
rdoc-data --install
затем попробуйте ri
команда снова.
С pry лучше установить pry-doc
драгоценный камень, а затем использовать show-doc
команда:
[17] pry(main)> show-doc String#inspect
From: string.c (C Method):
Owner: String
Visibility: public
Signature: inspect()
Number of lines: 6
Returns a printable version of _str_, surrounded by quote marks,
with special characters escaped.
str = "hello"
str[3] = "\b"
str.inspect #=> "\"hel\\bo\""
[18] pry(main)> show-doc Array#pop
From: array.c (C Method):
Owner: Array
Visibility: public
Signature: pop(*arg1)
Number of lines: 11
Removes the last element from self and returns it, or
nil if the array is empty.
If a number n is given, returns an array of the last n elements
(or less) just like array.slice!(-n, n) does. See also
Array#push for the opposite effect.
a = [ "a", "b", "c", "d" ]
a.pop #=> "d"
a.pop(2) #=> ["b", "c"]
a #=> ["a"]
[19] pry(main)>
Примечание: вы также можете использовать ?
псевдоним для show-doc
Если вы предпочитаете.
В комментарии вы упомянули, что используете пакет Ruby из менеджера пакетов archlinux. Для чего вам нужно ri
это установить ruby-docs
пакет:
$ pacman -S ruby-docs
Я предполагаю, что они разделяют пакеты, чтобы люди, которые не хотят получать документы, могли сэкономить на использовании диска.
Когда я использую pry:
$ pry --version Pry version 0.9.12 on Ruby 1.9.3 $ pry [1] pry(main)> ri String # shows String documentation [2] pry(main)> ri String.split error: 'String.split' not found [3] pry(main)> ri String.strip String.strip not found, maybe you meant: String#strip_heredoc
Что я должен сделать, чтобы документация появилась?
Ну нету методов String.split
или же String.strip
, Есть, однако, методы String#split
а также String#strip
, Попробуйте попросить их, и вы, вероятно, получите их документацию.