[noosfero/noosfero][next] Accept proc in user_data_extras from plugins

Victor Costa gitlab at gitlab.com
Thu Mar 19 17:46:11 BRT 2015


Victor Costa pushed to next at Noosfero / noosfero


Commits:
df49d037 by Victor Costa at 2015-03-19T16:59:15Z
Accept proc in user_data_extras from plugins

- - - - -


2 changed files:

- app/controllers/public/account_controller.rb
- test/functional/account_controller_test.rb


Changes:

=====================================
app/controllers/public/account_controller.rb
=====================================
--- a/app/controllers/public/account_controller.rb
+++ b/app/controllers/public/account_controller.rb
@@ -315,7 +315,11 @@ class AccountController < ApplicationController
       session[:notice] = nil # consume the notice
     end
 
-    @plugins.each { |plugin| user_data.merge!(plugin.user_data_extras) }
+    @plugins.each do |plugin|
+      user_data_extras = plugin.user_data_extras
+      user_data_extras = instance_exec(&user_data_extras) if user_data_extras.kind_of?(Proc)
+      user_data.merge!(user_data_extras)
+    end
 
     render :text => user_data.to_json, :layout => false, :content_type => "application/javascript"
   end

=====================================
test/functional/account_controller_test.rb
=====================================
--- a/test/functional/account_controller_test.rb
+++ b/test/functional/account_controller_test.rb
@@ -712,7 +712,9 @@ class AccountControllerTest < ActionController::TestCase
 
     class Plugin2 < Noosfero::Plugin
       def user_data_extras
-        {:test => 5}
+        proc do
+          {:test => 5}
+        end
       end
     end
     Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name])


View it on GitLab: https://gitlab.com/noosfero/noosfero/commit/df49d0370604ea29397ef74537e75373be1fef9f
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20150319/f3064056/attachment-0001.html>


More information about the Noosfero-dev mailing list