diff options
author | Nicholas Seckar <nseckar@gmail.com> | 2006-09-02 21:13:30 +0000 |
---|---|---|
committer | Nicholas Seckar <nseckar@gmail.com> | 2006-09-02 21:13:30 +0000 |
commit | 26f28e7cfaa91fa03af7fae15246cd38f917d443 (patch) | |
tree | 8b5bfd51b6457d15d503d40585990688879f1140 /activesupport | |
parent | d0696d764189996422c3dea649c388b7685a10e5 (diff) | |
download | rails-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/CHANGELOG | 2 | ||||
-rw-r--r-- | activesupport/lib/active_support/dependencies.rb | 10 | ||||
-rw-r--r-- | activesupport/test/dependencies_test.rb | 10 |
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 |