Skip to content
Browse files

Add plugin library directories to the load path after the lib directo…

…ry so that libraries in the lib directory get precedence. Closes #2910.

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3122 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent f14625b commit 9a37fd44cb7df94d7b7652d03251bb6cd0675b45 Marcel Molina committed Nov 21, 2005
Showing with 10 additions and 3 deletions.
  1. +3 −0 railties/CHANGELOG
  2. +7 −3 railties/lib/initializer.rb
View
3 railties/CHANGELOG
@@ -1,4 +1,7 @@
*SVN*
+
+* Add plugin library directories to the load path after the lib directory so that libraries in the lib directory get precedence. #2910. [james.adam@gmail.com]
+
* Make help for the console command more explicit about how to specify the desired environment in which to run the console. #2911. [anonymous]
* PostgreSQL: the purge_test_database Rake task shouldn't explicitly specify the template0 template when creating a fresh test database. #2964 [dreamer3@gmail.com]
View
10 railties/lib/initializer.rb
@@ -299,9 +299,13 @@ def load_plugin(directory)
has_lib = File.directory?(lib_path)
has_init = File.file?(init_path)
- # Add lib to load path.
- $LOAD_PATH.unshift(lib_path) if has_lib
-
+ # Add lib to load path *after* the application lib, to allow
+ # application libraries to override plugin libraries.
+ if has_lib
+ application_lib_index = $LOAD_PATH.index(File.join(RAILS_ROOT, "lib")) || 0
+ $LOAD_PATH.insert(application_lib_index + 1, lib_path)
+ end
+
# Allow plugins to reference the current configuration object
config = configuration

0 comments on commit 9a37fd4

Please sign in to comment.
Something went wrong with that request. Please try again.