Чтение онлайн

на главную - закладки

Жанры

Программирование на языке Ruby
Шрифт:

На самом деле в библиотеке

pp
есть много средств для подготовки ваших классов к совместной работе с методом
pp
. Методы
object_group
,
seplist
,
breakable
и прочие позволяют управлять расстановкой запятых, разбиением на строки и другими способами форматирования. Дополнительную информацию можно найти в документации на сайте http://ruby-doc.org.

16.8. Заключение

В этой главе мы рассмотрели некоторые подходы к тестированию (преимущественно,

к автономному тестированию компонентов). Мы познакомились с библиотекой
Test::Unit
и комплектом инструментов ZenTest.

Мы бросили беглый взгляд на отладчик Ruby, а также показали, как с помощью библиотеки

ruby-breakpoint
можно переходить в интерактивную оболочку
irb
для проведения сеанса отладки.

Мы рассмотрели инструмент для анализа покрытия кода

rcov
и обсудили, для чего могут понадобиться такие измерения. Наконец, остановились на профилировании и замере временных характеристик программы на Ruby.

Предположим, что вы работаете над программой, которую собираетесь предложить обществу. Что вы делаете по завершении тестирования? Пришло время задуматься над оформлением дистрибутивного пакета и способами его распространения. Этим мы и займемся в следующей главе.

Глава 17. Создание пакетов и распространение программ

Все больше и больше продуктов — и в первую очередь аспирин — выпускается в упаковке, защищенной до такой степени, что потребитель уже и воспользоваться ими не может.

Дэйв Бэрри

Эта глава посвящена вопросу о том, как проявлять уважение к конечному пользователю своей программы. Если у вас конечного пользователя нет или вы не хотите казаться вежливым, можете пропустить ее.

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

Однако данная глава оказалась короткой. Дополнительную информацию о затронутых в ней темах можете почерпнуть, изучая сделанное другими.

Один из самых замечательных имеющихся инструментов — программа

RDoc
, написанная Дэйвом Томасом. С нее и начнем.

17.1. Программа RDoc

RDoc
— не единственный инструмент документирования для Ruby: его предшественником является программа RDTOOL. Но во многих отношениях
RDoc
превосходит своих конкурентов; к тому же он наиболее распространенный, по крайней мере, в США.

Замечательной особенностью

RDoc
является то, что он пытается вывести нечто полезное, даже если в исходном тексте вообще нет комментариев. Для этого он анализирует текст программы и собирает информацию обо всех классах, модулях, константах, методах и т.д.

Тем самым вы можете получить более или менее полезный HTML-файл из исходного текста, не содержащего никакой внутренней документации. Если раньше не пробовали, попробуйте сейчас.

Но это еще не все.

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

Если просто вызвать

RDoc
для какого-нибудь исходного текста на Ruby, будет создан каталог
doc
, в который помещаются все выходные файлы (этот стандартный шаблон уже неплох, но есть и другие). Откройте в браузере файл index.html и изучите его.

В листинге 17.1 приведен простой (почти ничего не содержащий) исходный файл. Все определенные в нем методы пусты. Но

RDoc
даже в таком случае формирует симпатичную страницу документации (рис. 17.1).

Листинг 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 поместить в фигурных скобках какой-нибудь описательный текст, то он и станет содержимым ссылки. Если текст состоит из одного слова, фигурные скобки можно опустить.

Поделиться:
Популярные книги

Хроники Тамула

Эддингс Дэвид
Тамули
Фантастика:
фэнтези
5.00
рейтинг книги
Хроники Тамула

#Бояръ-Аниме. Газлайтер. Том 36

Володин Григорий Григорьевич
36. История Телепата
Фантастика:
боевая фантастика
аниме
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 36

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Троелсен Эндрю
Компьютеры и Интернет:
программирование
5.00
рейтинг книги
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Толковая Библия. Ветхий Завет. Книги пророческие.

Лопухин Александр Павлович
Религия и эзотерика:
религия
5.00
рейтинг книги
Толковая Библия. Ветхий Завет. Книги пророческие.

Бояръ-Аниме. Газлайтер. Том 34

Володин Григорий Григорьевич
34. История Телепата
Фантастика:
фэнтези
боевая фантастика
аниме
7.17
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 34

Большая кулинарная книга

Рощин Илья
Дом и Семья:
кулинария
7.50
рейтинг книги
Большая кулинарная книга

И она поблагодарила богов

Адлер-Ольсен Юсси
Детективы:
триллеры
5.00
рейтинг книги
И она поблагодарила богов

Лекарь

Назимов Константин Геннадьевич
2. Травник
Фантастика:
фэнтези
5.25
рейтинг книги
Лекарь

Князь Медведев. Дилогия

Вяч Павел
Медведев
Фантастика:
аниме
фэнтези
попаданцы
5.67
рейтинг книги
Князь Медведев. Дилогия

Основные произведения иностранной художественной литературы. Азия. Африка

Коллектив авторов
Научно-образовательная:
языкознание
литературоведение
5.00
рейтинг книги
Основные произведения иностранной художественной литературы. Азия. Африка

Крестный сын

Алесько С.
Фантастика:
фэнтези
2.78
рейтинг книги
Крестный сын

Книга 4. Постижение высших миров

Лайтман Михаэль Семенович
Научно-образовательная:
прочая научная литература
религиоведение
5.00
рейтинг книги
Книга 4. Постижение высших миров

Город, в котором...

Набатникова Татьяна Алексеевна
Проза:
современная проза
5.00
рейтинг книги
Город, в котором...

Последняя жертва

Мид Райчел
Фантастика:
ужасы и мистика
6.75
рейтинг книги
Последняя жертва