Помимо хранения произвольных метаданных о драгоценном камне, одна важная вещь, которую делает Gemspec, - это указать Rubygems, какие файлы необходимы для создания вашего драгоценного камня.
Я думаю, что Bundler рекомендует исключать тесты, потому что они не являются функциональным кодом, который необходим для создания или запуска вашего драгоценного камня. Включение каждого набора тестов для каждого Gem в вселенной Ruby будет дорогостоящим. Нет никакой веской причины, по которой вам нужно было бы получить доступ к тестам Omniauth из вашего приложения.
Тесты важны, и именно поэтому они существовали как часть хранилища. Они просто не нужны в производстве, поэтому они не обернуты в пакет, который вы загружаете из Rubygems.
Что касается .gitignore
и .travis.yml
, вы можете исключить их самостоятельно. Я не думаю, что команда Бундлера пыталась задуматься о каждом сценарии, а скорее о наиболее вероятных.
Любопытно, что [Руководство по спецификации RubyGems] (http://guides.rubygems.org/specification-reference/#files) включает тесты. – fny
Да, я согласен. Я не думаю, что есть один правильный ответ. –