Почему 'bundler gem' добавляет 'rake' и 'rspe c' в Gemfile, а не в файл .gemspe c в качестве зависимостей разработки? - PullRequest
2 голосов
/ 28 мая 2020

Я плохо знаком с миром Ruby. Инструменты сборки Java обычно используют область тестирования для таких вещей, как jUnit.

Я инициализировал новый проект командой: bundle gem new_gem_from_bundler, а содержимое Gemfile равно

source "https://rubygems.org"

# Specify your gem's dependencies in new_gem_from_bundler.gemspec
gemspec

gem "rake", "~> 12.0"
gem "rspec", "~> 3.0"

Почему бы и нет:

group :development do
  gem "rspec", "~> 3.9.0"
  gem "rake", "~> 3.0"
end

Также, поскольку есть файл .gemspec Я ожидал бы, что rake и rspec будут определены следующим образом:

spec.add_development_dependency 'rake', '~> 12.0'
spec.add_development_dependency 'rspec', '~> 3.0'

Почему они объявлены как обычные зависимости «драгоценного камня»?

1 Ответ

1 голос
/ 29 мая 2020

Bundler использует файлы шаблонов для создания новых драгоценных камней. Вы можете изменить файлы шаблонов Gemfile.tt и newgem.gemspe c .tt в соответствии с вашими потребностями. Например, вы можете использовать это Gemfile.tt:

source "https://rubygems.org"

# Specify your gem's dependencies in <%= config[:name] %>.gemspec
gemspec

Чтобы найти, где находятся файлы шаблонов, вы можете использовать эту команду оболочки:

find $(dirname $(gem which -g bundler)) -name Gemfile.tt
...