Почему я должен добавлять зависимости развития к моему gemspec

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

Ответ 1

Если кто-то решает взломать ваш камень по любой причине, например. они разветвляют его на Github, чтобы добавить к нему функцию (которую они могут захотеть внести), это помогает, если они знают, какие зависимости развития зависит от вашего драгоценного камня (например, рамки тестирования, насмешливые инструменты и т.д.).

Если вы используете bundler с командой gemspec, он будет подключаться к вашим зависимостям gemspec и устанавливать зависимости разработки вместе с исполняемыми файлами при запуске

bundle install

Это избавит вас от необходимости устанавливать эти драгоценные камни вручную.

Команда gem также может отображать все зависимости жемчужины, включая разработку:

gem dependency my_gem

Gem my_gem-0.1.3
  activerecord (~> 3.0.0)
  json (~> 1.4.3, development)
  rake (>= 0, development)
  rspec (~> 2.5.0, development)
  ruby-openid (~> 2.1.0)

Вновь это, вероятно, больше для других людей, чем для вас самих.

Ответ 2

Мои драгоценные камни обычно имеют единичный тест. Этот тест требует иногда драгоценных камней, которые не нужны для использования драгоценного камня. Или, возможно, вам нужны дополнительные драгоценные камни для создания частей драгоценного камня.


Как только я неправильно использовал зависимости развития для определения "необязательных зависимостей" (зависимости были необходимы для некоторых конкретных особенностей моего драгоценного камня, но не нужны для "нормального" использования).

Пример: Мое приложение предложило возможность экспорта в файл в виде текста или pdf. В формате pdf используется prawn. Таким образом, креветка является зависимой - но нет необходимости использовать приложение, ему нужна только конкретная функция.

Итак, я не добавлял креветки к зависимостям драгоценных камней (это не обязательно), но к зависимостям разработки (полезно для драгоценного камня).