From df49d0370604ea29397ef74537e75373be1fef9f Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Tue, 13 Jan 2015 15:33:29 -0300 Subject: [PATCH] Accept proc in user_data_extras from plugins --- app/controllers/public/account_controller.rb | 6 +++++- test/functional/account_controller_test.rb | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/controllers/public/account_controller.rb b/app/controllers/public/account_controller.rb index c409d91..18f6419 100644 --- 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 diff --git a/test/functional/account_controller_test.rb b/test/functional/account_controller_test.rb index 9421345..e6511b9 100644 --- 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]) -- libgit2 0.21.2