В чем разница между ri и rdoc - PullRequest
       36

В чем разница между ri и rdoc

33 голосов
/ 05 сентября 2010

Всякий раз, когда я устанавливаю гемы, я вижу, что следуют ri и rdoc.Я знаю, что это документация, но в чем разница между ними и как их использовать?

Ответы [ 3 ]

29 голосов
/ 05 сентября 2010

RDoc [..] - это встроенный генератор документации для языка программирования Ruby.[..] RDoc включен как часть дистрибутива ядра Ruby.

RDoc также предоставляет механизм для создания файлов данных Ruby ri.ri - это (более или менее) версия справочных страниц Ruby, предоставляющая информацию об API из командной строки.

From: http://en.wikipedia.org/wiki/RDoc

19 голосов
/ 28 февраля 2013

Чтобы получить доступ к локальному RDoc для ваших драгоценных камней, введите gem server и укажите в браузере http://localhost:8808.

Если RDocs для ваших драгоценных камней не установлены, gem rdoc --all установит документацию для всех ваших драгоценных камней.

Может показаться, что локальная документация не нужна. Многие разработчики намеренно пропускают установку в пользу онлайн-документации. Тем не менее, для тех из нас, кто использует устаревшие инструменты, такие как Rails 2, можно быстро и легко найти нужную документацию.

12 голосов
/ 27 февраля 2013
  • RDoc автоматически генерирует документацию из комментариев и структуры вашего кода.https://github.com/rdoc/rdoc Так что подумайте, Doxygen.Используйте его, чтобы сгенерировать автоматическую документацию для написанного вами кода.
  • ri - это файлы автономной справки, например, если у вас нет Интернета.http://www.caliban.org/ruby/rubyguide.shtml#ri Подумайте perldoc.Используйте его, когда у вас есть вопрос о классе, например, ri Enumerator должен вызвать

Перечислитель


= Включает: Enumerable (из ruby ​​core)

(из ruby ​​core) ------------------------------------------------------------------------------ Класс, который допускает как внутреннюю, так и внешнюю итерацию.

Перечислитель может быть создан следующими способами.* Kernel # to_enum * Kernel # enum_for * Enumerator.new

Большинство методов имеют две формы: блочную форму, где содержимое оценивается для каждого элемента в перечислении, и неблокированную форму, которая возвращает новый перечислительперенос итерации.

enumerator =% w (один два три) .each помещает enumerator.class # => перечислитель enumerator.each_with_object ("foo") do | item, obj |помещает "# {obj}: # {item}" end # foo: один # foo: два # foo: три enum_with_obj = enumerator.each_with_object ("foo") помещает enum_with_obj.class # => перечислитель enum_with_obj.each do | item,OBJ |помещает "# {obj: # {item}" end # foo: one # foo: two # foo: three

Это позволяет объединять счетчики в цепочку ........

...