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

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

Жанры

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

gem help install

 Более подробные справки:

gem help commands показать все команды 'gem'

gem help examples показать примеры использования

gem help COMMAND вывести справку о команде COMMAND

(например, 'gem help install')

 Дополнительная информация:

 forge.org

Самые важные команды не вызывают

затруднений. Например, чтобы установить библиотеку
feedtools
, нужно выполнить команду:

gem install feedtools

Сначала она будет искать gem-пакет локально, а если не найдет, то обратится к серверу Ruby Forge. По умолчанию устанавливается последняя версия (хотя в некоторых случаях вам задают вопрос, какой именно пакет вы хотите установить). Можно и явно указать версию с помощью флага

– v
или
– -version
. Есть еще несколько флагов, управляющих установкой; подробную информацию дает команда
gem help install
.

Иногда gem-пакет зависит от других пакетов. В таком случае вас спросят, надо ли их устанавливать. Понятно, что, отказавшись от требуемых пакетов, вы не сможете установить и тот, что хотели изначально.

Как узнать имя нужного вам пакета? Если он находится на сайте RubyForge, то обычно называется так же, как проект. Например, программа

rake
находится на страницеили простопоэтому для установки нужно выполнить команду
gem install rake
.

Если вы не располагаете даже такой информацией, попробуйте воспользоваться командой

gem search
. Если указать часть предполагаемого имени gem-пакета, то будут найдены все пакеты с похожими именами. По умолчанию поиск производится на локальном компьютере; чтобы искать в центральном репозитории, задайте флаг
– -remote
. Например, команда
gem search xml --remote
нашла 12 пакетов.

Чтобы получить информацию об установленном пакете, введите команду

gem specification
— она напечатает все содержащиеся в пакете метаданные (в основном содержимое самого файла
gemspec
). Флаг
– -remot
e существует, но пока не реализован.

Кроме того, имеется команда деинсталляции

uninstall
, а также команды
query
и
list
, отчасти перекрывающие друг друга и команду
search
. Есть и еще много команд (дополнительную информацию вы найдете во встроенной справке или в онлайновой документации).

Полезно установить gem-сервер и на своей системе — не в качестве репозитория, из которого другие смогут дистанционно устанавливать пакеты, а как централизованный механизм, позволяющий просматривать в браузере все локально установленные пакеты вместе с документацией.

Для запуска gem-сервера просто наберите команду

gem_server
(обычно сервер работает в фоновом режиме). Указав в адресной строке браузера URL
localhost:8808
, вы увидите страницу «RubyGems Documentation Index», где в алфавитном порядке перечислены все установленные gem-пакеты со ссылками на документацию в формате
rdoc
и на домашнюю страницу проекта в Web.

О системе RubyGems можно еще многое сказать; к тому же она постоянно развивается. Самая актуальная информация

представлена на сайте http://rubygems.rubyforge.org.

21.2. Программа Rake

Утилита

rake
— это вариация на тему давно известной в UNIX программы
make
. Но вместо «странного» синтаксиса
make
, который все мы знаем и терпеть не можем, в
rake
используется код на самом Ruby. Программу написал Джим Вайрих (Jim Weirich); это первый, насколько мне известно, пример формальной реализации языка DSL (domain-specific language — язык предметной области) на Ruby.

Есть два варианта написания названия: Rake и

rake
. Первый - это название инструмента, второй — имя самого исполняемого файла. На мой взгляд, различие несущественное.

Нет сомнения, что на дизайн Rake оказала большое влияние программа make, так что терминология одна и та же. Как и раньше, мы говорим о целях, действиях, зависимостях и правилах.

Применениям Rake нет числа. Вы можете пользоваться ею для сборки проектов, написанных на С, C++ или Java (или на любом другом языке). Годится она и для генерирования документации с помощью RDoc, развертывания программ, обновления проекта на сайте Ruby Forge и множества других задач.

Неудивительно, что на вход Rake подается командный файл (rake-файл), который по умолчанию называется

rakefile
или
Rakefile
. Если вы хотите назвать его иначе, укажите имя с помощью флага
– f
или
– -rakefile
:

$ rake # Искать сначала 'rakefile', потом 'Rakefile'.

$ rake -f myfile # Использовать файл с именем 'myfile'.

Основная «единица работы» в Rake — задание; именуются задания посредством символов Ruby. Предполагается, что в каждом rake-файле есть задание по умолчанию

:default
— оно будет выполняться, если явно не указано другое имя.

$ rake # Выполнить задание по умолчанию.

$ rake mytask # Выполнить задание с именем 'mytask'.

Внутри rake-файла мы указываем задания с помощью метода

task
, передавая символ и блок:

task :mytask do

 # ...

end

Содержимое блока в примере выше опущено. То, что в нем находится, называется действием.

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

sh
(название которого напоминает об интерпретаторе команд в UNIX) запускает системную команду.

Методы

cp
,
mv
и
rm
предназначены соответственно для копирования, перемещения и удаления файлов. (Как и
make
, Rake беззастенчиво выдает свое происхождение от UNIX.) Есть и другие подобные команды; дополнительную информацию вы найдете в онлайновой документации на сайте http://docs.rubyrake.org.

При желании можете заключать блок в фигурные скобки, но обычно в этом случае интерпретатор Ruby ожидает, что параметры будут заключены в круглые скобки.

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

Имперец. Том 1 и Том 2

Романов Михаил Яковлевич
1. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Имперец. Том 1 и Том 2

#НенавистьЛюбовь

Джейн Анна
Любовные романы:
современные любовные романы
6.33
рейтинг книги
#НенавистьЛюбовь

Личный аптекарь императора. Том 2

Карелин Сергей Витальевич
2. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Личный аптекарь императора. Том 2

Наследник

Кулаков Алексей Иванович
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги
Наследник

Диверсант

Азольский Анатолий
Проза:
военная проза
7.59
рейтинг книги
Диверсант

Шайтан Иван

Тен Эдуард
1. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Шайтан Иван

Лекарь Империи 3

Карелин Сергей Витальевич
3. Лекарь Империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
попаданцы
5.00
рейтинг книги
Лекарь Империи 3

Дважды одаренный

Тарс Элиан
1. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Дважды одаренный

Воронцов. Перезагрузка. Книга 3

Тарасов Ник
3. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
6.00
рейтинг книги
Воронцов. Перезагрузка. Книга 3

Кодекс Охотника. Книга IV

Винокуров Юрий
4. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга IV

Неофит

Листратов Валерий
3. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неофит

Этот мир не выдержит меня. Том 2

Майнер Максим
2. Первый простолюдин в Академии
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Этот мир не выдержит меня. Том 2

Слово мастера

Лисина Александра
11. Гибрид
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Слово мастера

Жена по ошибке

Ардова Алиса
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Жена по ошибке