Commit 037e6360f53129c37e4e065cbe6185920dbff7fd
1 parent
d32bf3a4
Exists in
master
and in
29 other branches
Revert "plugins: only call default value if result is blank"
This reverts commit 8a3fb6f312e27c4225b95dff84ea365432e361ed.
Showing
3 changed files
with
12 additions
and
23 deletions
Show diff stats
lib/noosfero/plugin/manager.rb
... | ... | @@ -33,24 +33,26 @@ class Noosfero::Plugin::Manager |
33 | 33 | |
34 | 34 | alias :dispatch_scopes :dispatch_without_flatten |
35 | 35 | |
36 | - def default_for event, *args | |
37 | - Noosfero::Plugin.new.send event, *args | |
38 | - end | |
39 | - | |
40 | 36 | def dispatch_first(event, *args) |
37 | + default = Noosfero::Plugin.new.send(event, *args) | |
38 | + result = default | |
41 | 39 | each do |plugin| |
42 | 40 | result = plugin.send(event, *args) |
43 | - return result if result.present? | |
41 | + break if result != default | |
44 | 42 | end |
45 | - default_for event, *args | |
43 | + result | |
46 | 44 | end |
47 | 45 | |
48 | 46 | def fetch_first_plugin(event, *args) |
47 | + default = Noosfero::Plugin.new.send(event, *args) | |
48 | + result = nil | |
49 | 49 | each do |plugin| |
50 | - result = plugin.send event, *args | |
51 | - return plugin.class if result.present? | |
50 | + if plugin.send(event, *args) != default | |
51 | + result = plugin.class | |
52 | + break | |
53 | + end | |
52 | 54 | end |
53 | - nil | |
55 | + result | |
54 | 56 | end |
55 | 57 | |
56 | 58 | def pipeline(event, *args) | ... | ... |
test/unit/plugin_manager_test.rb
... | ... | @@ -291,17 +291,4 @@ class PluginManagerTest < ActiveSupport::TestCase |
291 | 291 | assert_equal [7,9], manager.filter(:invalid_numbers, [1,2,3,4,5,6,7,8,9,10]) |
292 | 292 | end |
293 | 293 | |
294 | - should 'only call default if value is blank' do | |
295 | - class Plugin1 < Noosfero::Plugin | |
296 | - def find_by_contents asset, scope, query, paginate_options={}, options={} | |
297 | - {results: [1,2,3]} | |
298 | - end | |
299 | - end | |
300 | - Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1']) | |
301 | - environment.enable_plugin(Plugin1) | |
302 | - | |
303 | - Noosfero::Plugin.any_instance.expects(:find_by_contents).never | |
304 | - @manager.dispatch_first :find_by_contents, :products, environment.products, 'product' | |
305 | - end | |
306 | - | |
307 | 294 | end | ... | ... |
test/unit/plugin_test.rb