Тем самым вы можете получить более или менее полезный HTML-файл из исходного текста, не содержащего никакой внутренней документации. Если раньше не пробовали, попробуйте сейчас.
Но это еще не все. RDoc
также пытается ассоциировать найденные комментарии с конкретными частями программы. Общее правило таково: блочный комментарий, предшествующий определению (скажем, класса или метода), считается описанием этого определения.
Если просто вызвать RDoc
для какого-нибудь исходного текста на Ruby, будет создан каталог doc
, в который помещаются все выходные файлы (этот стандартный шаблон уже неплох, но есть и другие). Откройте в браузере файл index.html и изучите его.
В листинге 17.1 приведен простой (почти ничего не содержащий) исходный файл. Все определенные в нем методы пусты. Но RDoc
даже в таком случае формирует симпатичную страницу документации (рис. 17.1).
require ' foo'
# Внешний класс MyClass.
class MyClass
CONST = 237
# Внутренний класс MyClass::Alpha...
class Alpha
# Класс The MyClass::Alpha::Beta...
class Beta
# Метод класса Beta mymeth1.
def mymeth1
end
end
# Метод класса Alpha mymeth2.
def mymeth2
end
end
# Инициализировать объект.
def initialize(a,b,c)
end
# Создать объект со значениями по умолчанию
def self.create
end
# и метод экземпляра.
def do_something
end
end
Рис. 17.1. Выходной файл, формируемый программой RDoc по исходному тексту в листинге 17.1
В этом разделе мы обсудим еще две полезные функции. Имя каждого метода является ссылкой, при щелчке по которой открывается исходный текст метода. При изучении библиотеки это оказывается исключительно полезно - документация API ссылается на сам код.
Кроме того, когда программа RDoc распознает URL, она помещает в выходной файл гиперссылку. По умолчанию текст гиперссылки совпадает с самим URL, но это можно изменить. Если перед URL поместить в фигурных скобках какой-нибудь описательный текст, то он и станет содержимым ссылки. Если текст состоит из одного слова, фигурные скобки можно опустить.
17.1.1. Простая разметка
Если вы хотите «разукрасить» вывод, то редактировать HTML-файлы вручную необязательно. На самом деле даже нежелательно, так как при повторной генерации документации ваши изменения будут затерты.
RDoc располагает собственным механизмом разметки, поэтому можно включать в исходный текст информацию о форматировании. Правила языка разметки выбраны так, что текст в редакторе выглядит «естественно», но вместе с тем может быть легко преобразован в HTML.
В листинге 17.2 приведено несколько примеров разметки; дополнительную информацию ищите в книге «Programming Ruby» или в документации по RDoc
. На рис. 17.2 показано, во что преобразуется текст в листинге 17.2 (нижний фрейм).
# This block comment will be detected and
# included in the rdoc output.
#
=begin rdoc
So will this one. Note the presence of the 'rdoc'
tag on the begin-line. This is to distinguish the
block comment as belonging to rdoc as opposed to
being read by some other tool.
=end
=begin rdoc
Here are some formatting tricks.
Boldface, italics, and 'code' (without spaces):
This is *bold*, this is _italic_, and this is +code+.
With spaces:
This is a bold phrase. Have you read Intruder
in the Dust? Don't forget to require thread
at the top.
= First level heading
== Second level heading
=== Third level heading