diff --git a/lib/noosfero/plugin/manager.rb b/lib/noosfero/plugin/manager.rb index 08e0adb..322818d 100644 --- a/lib/noosfero/plugin/manager.rb +++ b/lib/noosfero/plugin/manager.rb @@ -33,24 +33,26 @@ class Noosfero::Plugin::Manager alias :dispatch_scopes :dispatch_without_flatten - def default_for event, *args - Noosfero::Plugin.new.send event, *args - end - def dispatch_first(event, *args) + default = Noosfero::Plugin.new.send(event, *args) + result = default each do |plugin| result = plugin.send(event, *args) - return result if result.present? + break if result != default end - default_for event, *args + result end def fetch_first_plugin(event, *args) + default = Noosfero::Plugin.new.send(event, *args) + result = nil each do |plugin| - result = plugin.send event, *args - return plugin.class if result.present? + if plugin.send(event, *args) != default + result = plugin.class + break + end end - nil + result end def pipeline(event, *args) diff --git a/test/unit/plugin_manager_test.rb b/test/unit/plugin_manager_test.rb index bd4265b..dfeeb57 100644 --- a/test/unit/plugin_manager_test.rb +++ b/test/unit/plugin_manager_test.rb @@ -291,17 +291,4 @@ class PluginManagerTest < ActiveSupport::TestCase assert_equal [7,9], manager.filter(:invalid_numbers, [1,2,3,4,5,6,7,8,9,10]) end - should 'only call default if value is blank' do - class Plugin1 < Noosfero::Plugin - def find_by_contents asset, scope, query, paginate_options={}, options={} - {results: [1,2,3]} - end - end - Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1']) - environment.enable_plugin(Plugin1) - - Noosfero::Plugin.any_instance.expects(:find_by_contents).never - @manager.dispatch_first :find_by_contents, :products, environment.products, 'product' - end - end diff --git a/test/unit/plugin_test.rb b/test/unit/plugin_test.rb index 487a415..a2ad18e 100644 --- a/test/unit/plugin_test.rb +++ b/test/unit/plugin_test.rb @@ -23,7 +23,7 @@ class PluginTest < ActiveSupport::TestCase end should 'returns empty hash for class method extra_blocks by default if no blocks are defined on plugin' do - + class SomePlugin1 < Noosfero::Plugin end -- libgit2 0.21.2