Commit df49d0370604ea29397ef74537e75373be1fef9f

Authored by Victor Costa
1 parent 5de43a78

Accept proc in user_data_extras from plugins

app/controllers/public/account_controller.rb
@@ -315,7 +315,11 @@ class AccountController < ApplicationController @@ -315,7 +315,11 @@ class AccountController < ApplicationController
315 session[:notice] = nil # consume the notice 315 session[:notice] = nil # consume the notice
316 end 316 end
317 317
318 - @plugins.each { |plugin| user_data.merge!(plugin.user_data_extras) } 318 + @plugins.each do |plugin|
  319 + user_data_extras = plugin.user_data_extras
  320 + user_data_extras = instance_exec(&user_data_extras) if user_data_extras.kind_of?(Proc)
  321 + user_data.merge!(user_data_extras)
  322 + end
319 323
320 render :text => user_data.to_json, :layout => false, :content_type => "application/javascript" 324 render :text => user_data.to_json, :layout => false, :content_type => "application/javascript"
321 end 325 end
test/functional/account_controller_test.rb
@@ -712,7 +712,9 @@ class AccountControllerTest < ActionController::TestCase @@ -712,7 +712,9 @@ class AccountControllerTest < ActionController::TestCase
712 712
713 class Plugin2 < Noosfero::Plugin 713 class Plugin2 < Noosfero::Plugin
714 def user_data_extras 714 def user_data_extras
715 - {:test => 5} 715 + proc do
  716 + {:test => 5}
  717 + end
716 end 718 end
717 end 719 end
718 Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) 720 Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name])