rails_2_preload 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/rails_2_preload/spin.rb +33 -0
- metadata +2 -1
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'rails_2_preload'
|
2
|
+
|
3
|
+
module Rails2Preload
|
4
|
+
module Spin
|
5
|
+
|
6
|
+
# Called from .spin.rb to add all hooks necessary to integrate
|
7
|
+
# Rails2Preload.
|
8
|
+
def self.add_spin_hooks
|
9
|
+
# Inside the context of Spin, we'll preload until the application classes
|
10
|
+
# (i.e. models) are loaded. This is optimal for unit testing.
|
11
|
+
Rails2Preload.preload_until(:load_application_classes)
|
12
|
+
::Spin.hook(:before_preload) { Rails2Preload.prepare_rails }
|
13
|
+
|
14
|
+
::Spin.hook(:after_preload) do
|
15
|
+
if Rails2Preload.preload_methods.include? :load_application_classes
|
16
|
+
# If classes are preloaded, empty the connection pool so forked
|
17
|
+
# processes are forced to establish new connections. Otherwise, the
|
18
|
+
# second time a test is run, an exception like this is raised:
|
19
|
+
# ActiveRecord::StatementInvalid PGError: no connection to the server
|
20
|
+
ActiveRecord::Base.connection_pool.disconnect!
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
::Spin.hook(:after_fork) do
|
25
|
+
# Create a new initializer instance, but reuse the configuration already
|
26
|
+
# established by the preload phase.
|
27
|
+
initializer = ::Rails::Initializer.new(::Rails.configuration)
|
28
|
+
initializer.postload
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_2_preload
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -19,6 +19,7 @@ executables: []
|
|
19
19
|
extensions: []
|
20
20
|
extra_rdoc_files: []
|
21
21
|
files:
|
22
|
+
- lib/rails_2_preload/spin.rb
|
22
23
|
- lib/rails_2_preload.rb
|
23
24
|
homepage: https://github.com/paperlesspost/rails-2-preload
|
24
25
|
licenses: []
|