diff --git a/lib/noosfero/plugin.rb b/lib/noosfero/plugin.rb index 436bf34..870e502 100644 --- a/lib/noosfero/plugin.rb +++ b/lib/noosfero/plugin.rb @@ -24,11 +24,17 @@ class Noosfero::Plugin def initialize! return if !should_load - available_plugins.each do |plugin_dir| + + klasses = available_plugins.map do |plugin_dir| plugin_name = File.basename(plugin_dir) - plugin = load_plugin(plugin_name) - load_plugin_extensions(plugin_dir) - load_plugin_filters(plugin) + load_plugin plugin_name + end + available_plugins.each do |plugin_dir| + load_plugin_extensions plugin_dir + end + # filters must be loaded after all extensions + klasses.each do |plugin| + load_plugin_filters plugin end end @@ -88,7 +94,7 @@ class Noosfero::Plugin # This is a generic method that initialize any possible filter defined by a # plugin to a specific controller def load_plugin_filters(plugin) - Rails.configuration.to_prepare do + ActionDispatch::Reloader.to_prepare do filters = plugin.new.send 'application_controller_filters' rescue [] Noosfero::Plugin.add_controller_filters ApplicationController, plugin, filters @@ -116,7 +122,7 @@ class Noosfero::Plugin end def load_plugin_extensions(dir) - Rails.configuration.to_prepare do + ActionDispatch::Reloader.to_prepare do Dir[File.join(dir, 'lib', 'ext', '*.rb')].each {|file| require_dependency file } end end @@ -422,7 +428,7 @@ class Noosfero::Plugin def upload_files_extra_fields(article) nil end - + # -> Adds fields to the signup form # returns = proc that creates html code def signup_extra_contents diff --git a/lib/noosfero/plugin/spammable.rb b/lib/noosfero/plugin/spammable.rb index d220bd8..a8a1712 100644 --- a/lib/noosfero/plugin/spammable.rb +++ b/lib/noosfero/plugin/spammable.rb @@ -1,4 +1,4 @@ -Rails.configuration.to_prepare do +ActionDispatch::Reloader.to_prepare do Spammable.module_eval do def marked_as_spam plugins.dispatch(:marked_as_spam, self) -- libgit2 0.21.2