aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/application.rb
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2011-11-22 23:26:27 +0100
committerPiotr Sarnacki <drogus@gmail.com>2011-11-23 21:36:33 +0100
commit40b19e063592fc30705f17aafe6a458e7b622ff2 (patch)
tree65f2617b16d37c97217868771f72caaecaec6a9c /railties/lib/rails/application.rb
parent8549f7a4f0c30c37050666f5661ea9e270a298fd (diff)
downloadrails-40b19e063592fc30705f17aafe6a458e7b622ff2.tar.gz
rails-40b19e063592fc30705f17aafe6a458e7b622ff2.tar.bz2
rails-40b19e063592fc30705f17aafe6a458e7b622ff2.zip
Allow to change engine's loading priority with config.railties_order=
Diffstat (limited to 'railties/lib/rails/application.rb')
-rw-r--r--railties/lib/rails/application.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb
index 0b72a7ed84..847445d29f 100644
--- a/railties/lib/rails/application.rb
+++ b/railties/lib/rails/application.rb
@@ -127,6 +127,28 @@ module Rails
})
end
+ def ordered_railties
+ @ordered_railties ||= begin
+ order = config.railties_order.map do |railtie|
+ if railtie == :main_app
+ self
+ elsif railtie.respond_to?(:instance)
+ railtie.instance
+ else
+ railtie
+ end
+ end
+
+ all = (railties.all - order)
+ all.push(self) unless all.include?(self)
+ order.push(:all) unless order.include?(:all)
+
+ index = order.index(:all)
+ order[index] = all
+ order.reverse.flatten
+ end
+ end
+
def initializers
Bootstrap.initializers_for(self) +
super +