Хэл Фултон - Программирование на языке Ruby
- Название:Программирование на языке Ruby
- Автор:
- Жанр:
- Издательство:ДМК Пресс
- Год:2007
- Город:Москва
- ISBN:5-94074-357-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Хэл Фултон - Программирование на языке Ruby краткое содержание
Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов.
Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии.
Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.
Программирование на языке Ruby - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
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
Here's a horizontal rule:
---
Here's a list:
- item one
- item two
- item three
=end
=begin
This block comment is untagged and will not show up in
rdoc output. Also, I'm not putting blank lines between
the comments, as this will terminate the comments until
some real program source is seen. If this comment had
been before the previous one, processing would have
stopped here until program text appeared.
=end

Рис. 17.2. Результат работы RDoc для примера из листинга 17.2
В листинге 17.2 приведено несколько правил разбора документов, принятых в RDoc
. Не все они интуитивно очевидны. Считается, что пустые строки завершают блок комментариев, даже если вслед за пустой строкой сразу идет еще один такой блок.
Внутри блока комментариев, начинающегося со знака #
, можно отключить копирование текста в выходной файл, вставив строку #--
(а следующая такая строка вновь включает копирование). Ведь не все комментарии должны быть частью пользовательской документации.
Отметим еще, что если используются маркеры =begin
и =end
, то после =begin
должен находиться тег rdoc
, иначе RDoc
проигнорирует весь блок целиком. Это сделано во избежание конфликтов с более старыми инструментами, в которых такие блоки активно использовались.
17.1.2. Более сложное форматирование
RDoc
позволяет довольно точно управлять тем, какие части исходного текста документируются и как к ним следует относиться. Для этого служат специальные теги в комментариях (модификаторы документации).
Одним из самых важных является тег :nodoc:
, отключающий вывод документации для определенного фрагмента. Обычно он ставится в той же строке, где начинается определение класса или метода.
class Alpha # :nodoc:
class Beta
# ...
end
# ...
end
Здесь класс Alpha
не будет документироваться. Однако тег :nodoc:
не является рекурсивным — класс Beta
документируется. Если желательно рекурсивное
поведение, укажите :nodoc: all
. В следующем примере игнорируются оба класса Gamma
и Delta
:
class Alpha # :nodoc: all
class Beta
# ...
end
# ...
end
Имеется также модификатор :doc:
с прямо противоположным смыслом. Он включает документацию для фрагментов, которые иначе не были бы документированы.
Модификатор :notnew:
специальный; он предотвращает документирование метода new
(на основе существующего метода initialize
).
Если вы хотите дать осмысленные имена параметрам yield
, воспользуйтесь тегом :yields:
. Например, если в самом тексте употребляются ничего не значащие имена x
и у
, то в документации их можно заменить.
def iterate # :yields: element, index
# ...
yield x, i
end
Некоторые теги используются только внутри блока комментариев, например:
• :include:
— включить содержимое указанного файла в документацию. При этом будут сформированы подходящие отступы;
• :titlе:
— задать заголовок документа;
• :main:
— задать начальную страницу документации.
Дополнительную информацию вы найдете в книге «Programming Ruby» или в любом онлайновом справочном руководстве.
17.2. Установка и подготовка пакета
У пользователя должно быть ощущение «коробочного продукта». Как пользователи мы готовы подписаться под этим тезисом обеими руками, но как разработчики не любим заниматься вопросами создания пакетов и установки.
К счастью, в Ruby все это не так болезненно, как в некоторых других языках и средах. Вы обязательно должны знать о библиотеке setup
и системе RubyGems — «родных» для Ruby инструментах создания пакетов и развертывания.
17.2.1. Библиотека setup.rb
Автором библиотеки setup.rb
является Минеро Аоки (Minero Aoki). Он же разработал библиотеку install.rb
, которая сейчас используется реже.
Кто-то скажет, что по мере развития системы RubyGems все это становится не актуальным. А кто-то возразит, что у gem-пакетов есть свои проблемы (технические, политические и пр.). А кто-то считает, что «добропорядочный гражданин» должен включать setup.rb
даже в gem-пакет (упрощая задачу перепакетирования, например для создания Linux-дистрибутива). Решать вам.
Интервал:
Закладка: