diff options
Diffstat (limited to 'railties/lib')
-rw-r--r-- | railties/lib/initializer.rb | 11 | ||||
-rw-r--r-- | railties/lib/plugin/locator.rb | 16 |
2 files changed, 11 insertions, 16 deletions
diff --git a/railties/lib/initializer.rb b/railties/lib/initializer.rb index 36797026c4..4e4e260056 100644 --- a/railties/lib/initializer.rb +++ b/railties/lib/initializer.rb @@ -192,6 +192,7 @@ module Rails plugin.load end end + ensure_all_registered_plugins_are_loaded! $LOAD_PATH.uniq! end @@ -339,6 +340,16 @@ module Rails load(initializer) end end + + private + def ensure_all_registered_plugins_are_loaded! + unless configuration.plugins.nil? + unless loaded_plugins == configuration.plugins + missing_plugins = configuration.plugins - loaded_plugins + raise LoadError, "Could not locate the following plugins: #{missing_plugins.to_sentence}" + end + end + end end # The Configuration class holds all the parameters for the Initializer and diff --git a/railties/lib/plugin/locator.rb b/railties/lib/plugin/locator.rb index 2e3b34cee6..6c4f2605bb 100644 --- a/railties/lib/plugin/locator.rb +++ b/railties/lib/plugin/locator.rb @@ -29,27 +29,11 @@ module Rails class FileSystemLocator < Locator private def located_plugins - returning locate_plugins do |loaders| - ensure_all_registered_plugins_are_loaded!(loaders) - end - end - - def locate_plugins initializer.configuration.plugin_paths.flatten.inject([]) do |plugins, path| plugins.concat locate_plugins_under(path) plugins end.flatten end - - def ensure_all_registered_plugins_are_loaded!(loaders) - registered_plugins = initializer.configuration.plugins - unless registered_plugins.nil? || registered_plugins.empty? - missing_plugins = registered_plugins - loaders.map(&:name) - unless missing_plugins.empty? - raise LoadError, "Could not locate the following plugins: #{missing_plugins.to_sentence}" - end - end - end # This starts at the base path looking for directories that pass the plugin_path? test of the Plugin::Loader. # Since plugins can be nested arbitrarily deep within an unspecified number of intermediary directories, |