Как перейти от spork к весне?

В настоящее время я использую Spork с Guard, Rspec и Cucumber. Я бы хотел перейти в Spring, но не могу найти никакой документации о том, что мне нужно изменить.

В частности, мне любопытно, если мне нужно изменить мой:

require 'spork'

Spork.prefork do
  # ...
end

Spork.each_run do
  # ...
end

... с чем-то вроде:

require 'spring'

Spring.prefork do
  # ...
end

Spring.each_run do
  # ...
end

Тем не менее, я знаю, что нет Spring.prefork потому что в документации так сказано. Так что я должен просто удалить ссылки на Spork или мне нужно их чем-то заменить?

2 ответа

Решение

Как вы упомянули в своем вопросе, блока Prefork нет. Документы предоставляют обходной путь: просто переместите существующий Spork.prefork заблокировать инициализатор или любое другое место, где он будет загружен и запущен Rails во время загрузки.

С https://github.com/rails/spring:

Обратного вызова Spring.before_fork нет. Чтобы запустить что-то перед вилкой, вы можете поместить это в ~/.spring.rb или же config/spring.rb или в любом из файлов, которые запускаются при инициализации приложения, например config/application.rb, config/environments/*.rb или же config/initializers/*.rb,

Что касается вашего Spork.each_run блок, так как вы используете Rspec, вы можете переместить его в before(:suite) блок. Смотрите документацию по Rspec до и после хуков

Просто удалите все вхождения Spork и установить spring,

После бега bundle exec spring binstub --all,

Теперь, если вы бежите bin/rails c это будет использовать spring,

За rspec использование spring-commands-rspec

Другие вопросы по тегам