Предварительная загрузка классов без Rails? - PullRequest
1 голос
/ 21 июля 2011

Я работаю над большим проектом, и я понял, что некоторые из компонентов были группами классов, которые я мог превратить в сервисы и убрать из Rails.Но теперь, когда я это сделал, я понимаю, что медленная загрузка классов без Spork не является функцией медленной Rails, а функцией Ruby медленной.Есть ли что-то вроде Spork, которое будет работать в не-Rails проектах?

1 Ответ

2 голосов
/ 22 июля 2011

Spork должен нормально работать для любого проекта ruby, просто требуется немного больше настроек.

Если вы используете rspec 2.x и spork 0.9, создайте spec_helper.rb, который выглядит примерно так:

require 'spork'

# the rspec require seems to be necessary, 
# without it you get "Missing or uninitialized constant: Object::RSpec" errors
require 'rspec' 

Spork.prefork do

  # do expensive one-time setup here
  require 'mylibrary'
  MyLibrary.setup_lots_of_stuff

end

Spork.each_run do

  # do setup that must be done on each test run here (setting up external state, etc):
  MyLibrary.reset_db

end

Все в блоке Spork.prefork будет запускаться только один раз (при запуске spork), остальные будут выполняться при каждом вызове теста.

Если у вас много специфичных для фреймворкаПри установке, вам, вероятно, лучше создать AppFramework для вашей библиотеки.См. Пример padrino AppFramework .

...