Архив рубрики: Ruby on Rails

Vagrant и chef-solo

vagrant_header_background-482a12a7

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

Как это работает? Есть Vagrantfile, в котором написано, какой базовый образ виртуальной машины взять, и каким образом его налить, то есть, поставить и настроить нужный софт.

Базовый образ — это образ диска виртуальной машины от одной из популярных платформ виртуализации. Поддерживаются и VirtualBox, и Parallels и VMWare. Важный момент заключается в том, что под каждую платформу виртуализации (провайдер в терминах Vagrant) нужно готовить отдельный образ, а потом его поддерживать. Для сборки образов существует Packer от HashiCorp же, но я им не пользовался, предпочитая использовать минимальный образ, который не нужно часто обновлять.

Читать далее Vagrant и chef-solo

Несколько gems для работы с терминалом

1__ruby

Короткий список ruby gems для работы с терминалом или Rails консолью. На все случаи жизни, если потребуется что-то напечатать или спросить у пользователя. На Locum.ru очень активно используются все четыре в различных внутренних консольных инструментах.

  • Highline для проектирования интерактивных интерфейсов. Ввод-вывод на терминал, множественный выбор, цвета, все дела. Очень сильно облегчает задачу спросить что-нибудь из консоли или дать выбрать.
  • Thor для проектирования консольных приложений. Самые разные опции с кучей синтаксического сахара для парсинга аргументов командной строки. Сравнивая с далекими девяностыми, понимаешь, насколько стало проще получать желаемое.
  • Colorize для вывода цветных букв на терминал. Простой gem, который удобно использовать для выделения сервисных сообщений в Rails консоли. Как и положено хорошему инструменту, очень прост в использовании.
  • Terminal table для рисования ASCII табличек. Достаточно передать массив, а табличку он нарисует сам. Задача, для которой раньше нужно было написать кучу кода, теперь решается в пару строк.

И в качестве послесловия: в Gemfile  есть группа :console , которая подключается только из консоли.

Генерация статики на лету

Введенный в Rails 3 Assets Pipeline очень сильно ускоряет загрузку статики. С другой стороны, стало сложнее работать с по-настоящему статическими страничками, вроде 404 и 500, особенно, если они опираются на те же таблицы стилей и графику, что и остальная часть проекта.

Как мне кажется, элегантное решение получается, если при деплое генерировать html-файлы нужных страниц и включать их в сборку.

Читать далее Генерация статики на лету