Как быстро инициализировать среду разработки проекта ruby?
Вопрос
Как указать gem-зависимости таким образом, чтобы пользователь с установленными только ruby, rake и rubygems мог выполнить одну команду rake для установки всех необходимых зависимостей? Можно ли использовать ту же спецификацию зависимостей при сборке gem с GemBuildTask?
Решение
На самом деле довольно просто настроить задачу rake, которая устанавливает кучу драгоценных камней:
task :install_gems do
require "rubygems"
require "rubygems/dependency_installer"
installer = Gem::DependencyInstaller.new
[["rack"], ["merb-core", "1.0.12"]].each do |args|
installer.install(*args)
end
end
Конечно, вы можете извлечь это в метод и написать более симпатичный способ указать свои зависимости, но это должно работать отлично.
Другие советы
Я думаю, что в настоящее время вам нужно написать специальное задание для граблей, которое взаимодействует с библиотекой Gem.
Возможно, rip , (очень) новый ребенок в блоке, сделает все это проще, но это очень рано.
Но у кого-то еще может быть лучше ...
Если ваше приложение упаковано как гем, вы можете добавить зависимости в gemspec, и rubygems попытается установить их для вас при установке гема.
Есть множество способов сделать драгоценный камень из некоторого кода ruby. Недавно я начал пользоваться ювелиром .
С его помощью вы можете установить проект как гем, запустив rake install
. Есть несколько инструкций о том, как сделать зависимости на его github wiki.