aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/railtie.rb
diff options
context:
space:
mode:
authorkennyj <kennyj@gmail.com>2012-05-29 23:31:27 +0900
committerBen Holley <benolee@gmail.com>2012-12-16 00:06:43 -0600
commit38af3540ae53b9f2fbdb649a68cde3edf182fe67 (patch)
tree98ce599950855ef8e08d8aef7f7cf2769f478a8f /railties/lib/rails/railtie.rb
parentdf048b574b5ab5a449a3b1dfc50dbf3baa18869e (diff)
downloadrails-38af3540ae53b9f2fbdb649a68cde3edf182fe67.tar.gz
rails-38af3540ae53b9f2fbdb649a68cde3edf182fe67.tar.bz2
rails-38af3540ae53b9f2fbdb649a68cde3edf182fe67.zip
backport runner fixes to 3-2-stable
Add a runner hook to Rails::Application and Rails::Engine that requires ActiveRecord::Base to avoid circular constant loading when using observers. This commit backports cc7dd66, c0ba0f0 and 8d01c61.
Diffstat (limited to 'railties/lib/rails/railtie.rb')
-rw-r--r--railties/lib/rails/railtie.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/railties/lib/rails/railtie.rb b/railties/lib/rails/railtie.rb
index 07a122e7d0..9eb7e7c65d 100644
--- a/railties/lib/rails/railtie.rb
+++ b/railties/lib/rails/railtie.rb
@@ -145,6 +145,12 @@ module Rails
@load_console
end
+ def runner(&blk)
+ @load_runner ||= []
+ @load_runner << blk if blk
+ @load_runner
+ end
+
def generators(&blk)
@generators ||= []
@generators << blk if blk
@@ -179,6 +185,10 @@ module Rails
self.class.console.each { |block| block.call(app) }
end
+ def load_runner(app=self)
+ self.class.runner.each { |block| block.call(app) }
+ end
+
def load_tasks(app=self)
extend Rake::DSL if defined? Rake::DSL
self.class.rake_tasks.each { |block| self.instance_exec(app, &block) }