Changeset 3193
- Timestamp:
- 11/28/05 20:39:26 (3 years ago)
- Files:
-
- trunk/activesupport/lib/active_support/dependencies.rb (modified) (2 diffs)
- trunk/activesupport/test/dependencies/mutual_one.rb (modified) (1 diff)
- trunk/activesupport/test/dependencies/mutual_two.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/activesupport/lib/active_support/dependencies.rb
r3190 r3193 28 28 29 29 def depend_on(file_name, swallow_load_errors = false) 30 unless loaded.include?(file_name) 31 begin 32 require_or_load(file_name) 33 rescue LoadError 34 raise unless swallow_load_errors 35 end 36 end 30 require_or_load(file_name) 31 rescue LoadError 32 raise unless swallow_load_errors 37 33 end 38 34 … … 46 42 47 43 def require_or_load(file_name) 44 file_name = $1 if file_name =~ /^(.*)\.rb$/ 45 return if loaded.include?(file_name) 46 47 # Record that we've seen this file *before* loading it to avoid an 48 # infinite loop with mutual dependencies. 49 loaded << file_name 50 48 51 if load? 49 # Append .rb if we have a bare file name.50 load_file_name = (file_name =~ /\.rb$/ ? file_name : "#{file_name}.rb")51 52 # Record that we've seen this file *before* loading it to avoid an53 # infinite loop with mutual dependencies.54 loaded << file_name55 56 52 begin 57 53 # Enable warnings iff this file has not been loaded before and 58 54 # warnings_on_first_load is set. 59 55 if !warnings_on_first_load or history.include?(file_name) 60 load load_file_name56 load "#{file_name}.rb" 61 57 else 62 enable_warnings { load load_file_name}58 enable_warnings { load "#{file_name}.rb" } 63 59 end 64 60 rescue trunk/activesupport/test/dependencies/mutual_one.rb
r3181 r3193 1 1 $mutual_dependencies_count += 1 2 2 require_dependency 'mutual_two' 3 require_dependency 'mutual_two.rb' 4 require_dependency 'mutual_two' trunk/activesupport/test/dependencies/mutual_two.rb
r3181 r3193 1 1 $mutual_dependencies_count += 1 2 require_dependency 'mutual_one.rb' 2 3 require_dependency 'mutual_one' 4 require_dependency 'mutual_one.rb'