суббота, 7 февраля 2015 г.

Четыре простеньких гема

Вот, наваял... Иконки рядом с названием ведут на GitHub и RubyGems соответственно.

set_version

Развитие идеи, ранее начатой в геме is-build — автонумерация билдов. Теперь, если указать флаг git: true, изменения в файле версий сразу же закоммитятся. Это довольно существенный момент, поскольку вручную я регулярно забывал это делать, в результате изменение версии попадало в какой-нибудь левый последующий коммит.

В планах — сделать то же самое для Mercurial и SVN.

current_spec

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

wflt

У интерпретатора Ruby есть прекрасная опция — „-w“ — показывать предупреждения. Для разработки очень полезно выставить ее по умолчанию, дабы писать «чисто» и обращать внимание на потенциальные проблемы сразу.

Однако, предупреждения — это именно потенциальные проблемы, а не ошибки, и зачастую выдаются в случаях, когда код на самом деле правильный. Кроме того, предупреждения выдаются и на чужой код — в установленных гемах. Сообщения не по делу ужасно раздражают и сводят на нет психологическую пользу от контроля кода. Данный гем предназначен для того, чтобы их фильтровать. В принципе фильтры могут быть самые разные — для проверки используется «волшебный» оператор „===“, а в частности в репозиторий включен пример конфига, отфильтровывающий предупреждения в чужих исходниках, находящихся где-то внутри /usr.

drctrl

А этот гем уже посерьезней, хотя и тоже маленький. Он предназначен для управления скриптами, предоставляющими сервисы Distributed Ruby, и работает как такой же сервис, но только локально — через unix domain sockets. Позволяет останавливать и перезапускать сервисы.

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

Краткие инструкции на плохом английском можно прочитать в README-файлах на GitHub. Более подробная документация ждет своего часа.

PS. Все четыре гема требуют версии Ruby не ниже 2.0 — пора «закопать стюардессу».