From e47c8381e127fe36aa20f8343e46d065045a6445 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Mon, 28 Nov 2005 20:39:26 +0000 Subject: Handle mutual dependencies with .rb suffix. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3193 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activesupport/lib/active_support/dependencies.rb | 26 ++++++++++-------------- 1 file changed, 11 insertions(+), 15 deletions(-) (limited to 'activesupport/lib/active_support') diff --git a/activesupport/lib/active_support/dependencies.rb b/activesupport/lib/active_support/dependencies.rb index 64732db136..8d1288cd96 100644 --- a/activesupport/lib/active_support/dependencies.rb +++ b/activesupport/lib/active_support/dependencies.rb @@ -27,13 +27,9 @@ module Dependencies #:nodoc: end def depend_on(file_name, swallow_load_errors = false) - unless loaded.include?(file_name) - begin - require_or_load(file_name) - rescue LoadError - raise unless swallow_load_errors - end - end + require_or_load(file_name) + rescue LoadError + raise unless swallow_load_errors end def associate_with(file_name) @@ -45,21 +41,21 @@ module Dependencies #:nodoc: end def require_or_load(file_name) - if load? - # Append .rb if we have a bare file name. - load_file_name = (file_name =~ /\.rb$/ ? file_name : "#{file_name}.rb") + file_name = $1 if file_name =~ /^(.*)\.rb$/ + return if loaded.include?(file_name) - # Record that we've seen this file *before* loading it to avoid an - # infinite loop with mutual dependencies. - loaded << file_name + # Record that we've seen this file *before* loading it to avoid an + # infinite loop with mutual dependencies. + loaded << file_name + if load? begin # Enable warnings iff this file has not been loaded before and # warnings_on_first_load is set. if !warnings_on_first_load or history.include?(file_name) - load load_file_name + load "#{file_name}.rb" else - enable_warnings { load load_file_name } + enable_warnings { load "#{file_name}.rb" } end rescue loaded.delete file_name -- cgit v1.2.3