Commit 62be815f13c02da663f6aa5991adf00cb4b66655

Authored by Rodrigo Souto
1 parent 07caf3d4

[macro-support-review] Adding identifier method for macro

app/helpers/macros_helper.rb
@@ -67,13 +67,12 @@ module MacrosHelper @@ -67,13 +67,12 @@ module MacrosHelper
67 67
68 def macro_default_generator(macro) 68 def macro_default_generator(macro)
69 code = "var params = {};" 69 code = "var params = {};"
70 - macro_name = macro.name.undescore  
71 configuration = macro_configuration(macro) 70 configuration = macro_configuration(macro)
72 configuration[:params].map do |field| 71 configuration[:params].map do |field|
73 code += "params.#{field[:name]} = jQuery('*[name=#{field[:name]}]', dialog).val();" 72 code += "params.#{field[:name]} = jQuery('*[name=#{field[:name]}]', dialog).val();"
74 end 73 end
75 code + " 74 code + "
76 - var html = jQuery('<div class=\"macro mceNonEditable\" data-macro=\"#{macro_name}\">'+#{macro_title(macro).to_json}+'</div>')[0]; 75 + var html = jQuery('<div class=\"macro mceNonEditable\" data-macro=\"#{macro.identifier}\">'+#{macro_title(macro).to_json}+'</div>')[0];
77 for(key in params) html.setAttribute('data-macro-'+key,params[key]); 76 for(key in params) html.setAttribute('data-macro-'+key,params[key]);
78 return html.outerHTML; 77 return html.outerHTML;
79 " 78 "
app/views/shared/tiny_mce.rhtml
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 first_line = "print,separator,copy,paste,separator,undo,redo,separator,search,replace,separator,forecolor,fontsizeselect,formatselect" 12 first_line = "print,separator,copy,paste,separator,undo,redo,separator,search,replace,separator,forecolor,fontsizeselect,formatselect"
13 second_line = "bold,italic,underline,strikethrough,separator,bullist,numlist,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,link,unlink,image,table,separator,cleanup,code,macros" 13 second_line = "bold,italic,underline,strikethrough,separator,bullist,numlist,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,link,unlink,image,table,separator,cleanup,code,macros"
14 <% macros_with_buttons.each do |macro| %> 14 <% macros_with_buttons.each do |macro| %>
15 - second_line += ',<%=macro.name.underscore %>' 15 + second_line += ',<%=macro.identifier %>'
16 <% end %> 16 <% end %>
17 <% end %> 17 <% end %>
18 18
@@ -76,7 +76,7 @@ tinyMCE.init({ @@ -76,7 +76,7 @@ tinyMCE.init({
76 entity_encoding: 'raw', 76 entity_encoding: 'raw',
77 setup : function(ed) { 77 setup : function(ed) {
78 <% macros_with_buttons.each do |macro| %> 78 <% macros_with_buttons.each do |macro| %>
79 - ed.addButton('<%= macro.name.underscore %>', { 79 + ed.addButton('<%= macro.identifier %>', {
80 title: <%= macro_title(macro).to_json %>, 80 title: <%= macro_title(macro).to_json %>,
81 onclick: <%= generate_macro_config_dialog(macro) %>, 81 onclick: <%= generate_macro_config_dialog(macro) %>,
82 image : '<%= macro.configuration[:icon_path]%>' 82 image : '<%= macro.configuration[:icon_path]%>'
lib/noosfero/plugin/macro.rb
@@ -2,12 +2,18 @@ class Noosfero::Plugin::Macro @@ -2,12 +2,18 @@ class Noosfero::Plugin::Macro
2 2
3 attr_accessor :context 3 attr_accessor :context
4 4
5 - def self.configuration  
6 -# {:generator => ''}  
7 - end 5 + class << self
  6 + def configuration
  7 + # {:generator => ''}
  8 + end
8 9
9 - def self.plugin  
10 - name.split('::')[0...-1].join('::').constantize 10 + def plugin
  11 + name.split('::')[0...-1].join('::').constantize
  12 + end
  13 +
  14 + def identifier
  15 + name.underscore
  16 + end
11 end 17 end
12 18
13 def initialize(context=nil) 19 def initialize(context=nil)
lib/noosfero/plugin/manager.rb
@@ -66,7 +66,7 @@ class Noosfero::Plugin::Manager @@ -66,7 +66,7 @@ class Noosfero::Plugin::Manager
66 66
67 def enabled_macros 67 def enabled_macros
68 @enabled_macros ||= dispatch(:macros).inject({}) do |memo, macro| 68 @enabled_macros ||= dispatch(:macros).inject({}) do |memo, macro|
69 - memo.merge!(macro.name.underscore => macro.new(context)) 69 + memo.merge!(macro.identifier => macro.new(context))
70 end.merge('default' => Noosfero::Plugin::Macro.new(context)) 70 end.merge('default' => Noosfero::Plugin::Macro.new(context))
71 end 71 end
72 72
test/unit/application_helper_test.rb
@@ -678,8 +678,8 @@ class ApplicationHelperTest &lt; ActiveSupport::TestCase @@ -678,8 +678,8 @@ class ApplicationHelperTest &lt; ActiveSupport::TestCase
678 environment = Environment.default 678 environment = Environment.default
679 environment.enable_plugin(Plugin1) 679 environment.enable_plugin(Plugin1)
680 @plugins = Noosfero::Plugin::Manager.new(environment, self) 680 @plugins = Noosfero::Plugin::Manager.new(environment, self)
681 - macro1_name = Plugin1::Macro1.name.underscore  
682 - macro2_name = Plugin1::Macro2.name.underscore 681 + macro1_name = Plugin1::Macro1.identifier
  682 + macro2_name = Plugin1::Macro2.identifier
683 683
684 html = " 684 html = "
685 <div class='macro nonEdit' data-macro='#{macro1_name}' data-macro-param='123'></div> 685 <div class='macro nonEdit' data-macro='#{macro1_name}' data-macro-param='123'></div>
test/unit/plugin_manager_test.rb
@@ -190,8 +190,8 @@ class PluginManagerTest &lt; ActiveSupport::TestCase @@ -190,8 +190,8 @@ class PluginManagerTest &lt; ActiveSupport::TestCase
190 environment.enable_plugin(Plugin1) 190 environment.enable_plugin(Plugin1)
191 macro = 'My name is %{name}!' 191 macro = 'My name is %{name}!'
192 192
193 - assert_equal 'My name is Macro1!', manager.parse_macro(Plugin1::Macro1.name.underscore, macro)  
194 - assert_equal 'My name is Macro2!', manager.parse_macro(Plugin1::Macro2.name.underscore, macro) 193 + assert_equal 'My name is Macro1!', manager.parse_macro(Plugin1::Macro1.identifier, macro)
  194 + assert_equal 'My name is Macro2!', manager.parse_macro(Plugin1::Macro2.identifier, macro)
195 end 195 end
196 196
197 end 197 end