Как перейти от 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