diff options
author | Piotr Sarnacki <drogus@gmail.com> | 2011-11-22 23:26:27 +0100 |
---|---|---|
committer | Piotr Sarnacki <drogus@gmail.com> | 2011-11-23 21:36:33 +0100 |
commit | 40b19e063592fc30705f17aafe6a458e7b622ff2 (patch) | |
tree | 65f2617b16d37c97217868771f72caaecaec6a9c /railties/lib/rails/application.rb | |
parent | 8549f7a4f0c30c37050666f5661ea9e270a298fd (diff) | |
download | rails-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.rb | 22 |
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 + |