aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/metal/helpers.rb
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2012-05-27 14:01:44 +0200
committerPiotr Sarnacki <drogus@gmail.com>2012-05-28 06:58:48 +0200
commite4aaac1301ea21d57c0bc986da0c4e274620bdab (patch)
tree07e746e2d14fa31d158722700233d434e342cd06 /actionpack/lib/action_controller/metal/helpers.rb
parent523d0f09e4cc3ba46d851e2144587df26fdc7603 (diff)
downloadrails-e4aaac1301ea21d57c0bc986da0c4e274620bdab.tar.gz
rails-e4aaac1301ea21d57c0bc986da0c4e274620bdab.tar.bz2
rails-e4aaac1301ea21d57c0bc986da0c4e274620bdab.zip
Fix sorting of helpers from different paths
When more than one directory for helpers is provided to a controller, it should preserver the order of directories. Given 2 paths: MyController.helpers_paths = ["dir1/helpers", "dir2/helpers"] helpers from dir1 should be loaded first. Before this commit, all helpers were mixed and then sorted alphabetically, which essentially would require to rename helpers to get desired order. This is a problem especially for engines, where you would like to be able to predict accurately which engine helpers will load first. (closes #6496)
Diffstat (limited to 'actionpack/lib/action_controller/metal/helpers.rb')
-rw-r--r--actionpack/lib/action_controller/metal/helpers.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/actionpack/lib/action_controller/metal/helpers.rb b/actionpack/lib/action_controller/metal/helpers.rb
index 86d061e3b7..66cdfd40ff 100644
--- a/actionpack/lib/action_controller/metal/helpers.rb
+++ b/actionpack/lib/action_controller/metal/helpers.rb
@@ -95,9 +95,9 @@ module ActionController
helpers = []
Array(path).each do |_path|
extract = /^#{Regexp.quote(_path.to_s)}\/?(.*)_helper.rb$/
- helpers += Dir["#{_path}/**/*_helper.rb"].map { |file| file.sub(extract, '\1') }
+ names = Dir["#{_path}/**/*_helper.rb"].map { |file| file.sub(extract, '\1') }
+ helpers += names.sort
end
- helpers.sort!
helpers.uniq!
helpers
end