diff options
author | Piotr Sarnacki <drogus@gmail.com> | 2010-07-14 13:38:36 +0200 |
---|---|---|
committer | Piotr Sarnacki <drogus@gmail.com> | 2010-09-03 22:59:04 +0200 |
commit | 15f95b98ac048407a1ce6873bb02fc5fbb6c991c (patch) | |
tree | ac71786040f34181e1297852ef63334ac4b336ee /railties/lib | |
parent | efe9555cd77b409c6965bf803a47b1230ee7dec7 (diff) | |
download | rails-15f95b98ac048407a1ce6873bb02fc5fbb6c991c.tar.gz rails-15f95b98ac048407a1ce6873bb02fc5fbb6c991c.tar.bz2 rails-15f95b98ac048407a1ce6873bb02fc5fbb6c991c.zip |
Ensure that plugins are not loaded twice
Diffstat (limited to 'railties/lib')
-rw-r--r-- | railties/lib/rails/plugin.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/railties/lib/rails/plugin.rb b/railties/lib/rails/plugin.rb index 4dab1c0b53..22a0eb10a8 100644 --- a/railties/lib/rails/plugin.rb +++ b/railties/lib/rails/plugin.rb @@ -18,6 +18,10 @@ module Rails # root during the boot process. # class Plugin < Engine + def self.global_plugins + @global_plugins ||= [] + end + def self.inherited(base) raise "You cannot inherit from Rails::Plugin" end @@ -28,6 +32,11 @@ module Rails Dir["#{path}/*"].each do |plugin_path| plugin = new(plugin_path) next unless list.include?(plugin.name) || list.include?(:all) + if global_plugins.include?(plugin.name) + warn "WARNING: plugin #{plugin.name} from #{path} was not loaded. Plugin with the same name has been already loaded." + next + end + global_plugins << plugin.name plugins << plugin end end |