aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorNicholas Seckar <nseckar@gmail.com>2006-09-02 21:13:30 +0000
committerNicholas Seckar <nseckar@gmail.com>2006-09-02 21:13:30 +0000
commit26f28e7cfaa91fa03af7fae15246cd38f917d443 (patch)
tree8b5bfd51b6457d15d503d40585990688879f1140 /activesupport
parentd0696d764189996422c3dea649c388b7685a10e5 (diff)
downloadrails-26f28e7cfaa91fa03af7fae15246cd38f917d443.tar.gz
rails-26f28e7cfaa91fa03af7fae15246cd38f917d443.tar.bz2
rails-26f28e7cfaa91fa03af7fae15246cd38f917d443.zip
Add ApplicationController special case to Dependencies.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4910 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/CHANGELOG2
-rw-r--r--activesupport/lib/active_support/dependencies.rb10
-rw-r--r--activesupport/test/dependencies_test.rb10
3 files changed, 19 insertions, 3 deletions
diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG
index 98342358ab..b15cdc9aab 100644
--- a/activesupport/CHANGELOG
+++ b/activesupport/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Add ApplicationController special case to Dependencies. [Nicholas Seckar]
+
* Don't pad remaining places with in_groups_of if specified padding value is false. [Marcel Molina Jr.]
* Fix cases where empty xml nodes weren't being translated to nil in Hash.create_from_xml [Rick Olson]
diff --git a/activesupport/lib/active_support/dependencies.rb b/activesupport/lib/active_support/dependencies.rb
index 7a74884dc7..39244b23be 100644
--- a/activesupport/lib/active_support/dependencies.rb
+++ b/activesupport/lib/active_support/dependencies.rb
@@ -123,6 +123,7 @@ module Dependencies #:nodoc:
def loadable_constants_for_path(path, bases = load_paths - load_once_paths)
path = $1 if path =~ /\A(.*)\.rb\Z/
expanded_path = File.expand_path(path)
+
bases.collect do |root|
expanded_root = File.expand_path root
next unless expanded_path.starts_with? expanded_root
@@ -131,8 +132,13 @@ module Dependencies #:nodoc:
nesting = nesting[1..-1] if nesting && nesting[0] == ?/
next if nesting.blank?
- nesting.camelize
- end.compact.uniq
+ names = [nesting.camelize]
+
+ # Special case: application.rb might define ApplicationControlller.
+ names << 'ApplicationController' if nesting == 'application'
+
+ names
+ end.flatten.compact.uniq
end
# Search for a file in load_paths matching the provided suffix.
diff --git a/activesupport/test/dependencies_test.rb b/activesupport/test/dependencies_test.rb
index 5960425e8e..9c5ee0146a 100644
--- a/activesupport/test/dependencies_test.rb
+++ b/activesupport/test/dependencies_test.rb
@@ -404,7 +404,7 @@ class DependenciesTest < Test::Unit::TestCase
assert ! Dependencies.autoloaded?("ModuleFolder::NestedClass")
assert ! Dependencies.autoloaded?(ModuleFolder)
- ModuleFolder::NestedClass
+ 1 if ModuleFolder::NestedClass # 1 if to avoid warning
assert ! Dependencies.autoloaded?(ModuleFolder::NestedClass)
end
ensure
@@ -412,4 +412,12 @@ class DependenciesTest < Test::Unit::TestCase
Dependencies.load_once_paths = []
end
+ def test_application_should_special_case_application_controller
+ with_loading 'autoloading_fixtures' do
+ require_dependency 'application'
+ assert_equal 10, ApplicationController
+ assert Dependencies.autoloaded?(:ApplicationController)
+ end
+ end
+
end