Зачем мне добавлять зависимости разработки в мой gemspec? - PullRequest
10 голосов
/ 08 августа 2011

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

Ответы [ 2 ]

13 голосов
/ 09 августа 2011

Если кто-то решит взломать ваш камень по любой причине, например, они разветвляют его на 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)

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

3 голосов
/ 08 августа 2011

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


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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...