Если у вас есть процесс сборки, который состоит из нескольких задач (например, тестирование, создание драгоценного камня, публикация драгоценного камня) и имеет зависимости между этими задачами (например, драгоценный камень должен быть создан только в случае успешных испытаний, чтобыопубликуйте гем, его нужно сначала создать), вы можете использовать инструмент для сборки , чтобы автоматизировать это.
На самом деле, инструменты для сборки можно использовать гораздо больше, чем просто создание, котороепочему некоторые люди предпочитают термин задачно-ориентированное программирование или (мое личное предпочтение) зависимо-ориентированное программирование для этого.
Самый известный из таких зависимо-ориентированных программинструменты, вероятно, make
.Если вы знакомы с экосистемой Java, вы, вероятно, знаете Apache Ant и Gradle .В мире Microsoft существует Microsoft Build Engine (MSBuild) .Из экосистемы ECMAScript вы можете знать Grunt или Gulp .Новенький парень в блоке - Google Bazel .
Ruby также имеет свою долю таких инструментов, наиболее широко используемым является Rake .
Многие библиотеки и инструменты Ruby поставляются с собственными готовыми Rake Tasks, так что вам не придется их писать самостоятельно.Например, для вашего конкретного случая использования есть готовые задачи для сборки гемов и запуска тестов RSpec.