Вопрос по ruby – Как использовать 'debugger' и 'pry' при разработке гема? (Рубин)

1

Я разрабатываю драгоценный камень, и мой Gemfile выглядит так:

source :rubygems

gemspec

group :development, :test do
  gem "pry"
  gem "debugger"
  gem "rake"
end

Однако я не хочу, чтобы люди устанавливалиpry а такжеdebugger при выполнении тестов, но я также хочу иметь возможность требовать их в своих тестах (потому что я запускаю тесты с префиксомbundle execи я не могу получить их в моем пути загрузки, если они не находятся в Gemfile). Как мне этого добиться?

Кроме того, когда помещать гемы, которые я использую для разработки, в gemspec, и когда помещать их в Gemfile? Я действительно не знаю разницу.

Вы автоматически генерируете свой gemspec? Reactormonk
Что это значит? janko-m

Ваш Ответ

4   ответа
1

source :rubygems

gemspec

group :development, :test do
  gem "rake"
end

gem "debugger", :group => :debugger
gem "pry",      :group => :pry

Таким образом, участник может выбрать не устанавливать их:

bundle install --without debugger pry
5

я разработки, например так:

Gem::Specification.new do |s|
  # ...
  s.add_development_dependency 'pry'
  s.add_development_dependency 'debugger'
  s.add_development_dependency 'rake'
end

Они будут установлены только при работе с камнем, а не при установке самого камня.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

что сочетание ответов выше работает. В настоящее время я работаю с ruby 2.2.4 и добавляю его в .gempsec:

s.add_development_dependency 'pry-byebug'
s.add_development_dependency 'rake'

и это для моегоspec_helper.rb:

require 'pry'

Не уверен, что это кому-нибудь поможет.

3

вы можете добавить его в спецификации вашего гема как зависимость для разработки

Gem::Specification.new do |spec|
   #...
   spec.add_development_dependency "pry"
   spec.add_development_dependency "debugger"
   #...
end

Так как это будет зависеть от разработки, вы не хотите добавлятьrequire 'pry' в ваше главное приложение для драгоценных камней, так что просто добавьте его в свойspec_helper.rb или каков ваш файл настроек теста.

require 'rspec'
require 'vcr'
require 'pry'
#...

Затем, когда вы запустите свои спецификации, вы все равно можете добавить свойbinding.pry в код для вашей песочницы. Убедитесь, что ваши спецификации работают, прежде чем нажать ваш код. Таким образом, если он сломается, вы увидите, что забыли точку останова в своем коде.

Похожие вопросы