noosfero | 3 new commits pushed to repository

Bráulio Bhavamitra gitlab at gitlab.com
Sun Feb 22 20:18:07 BRT 2015


Bráulio Bhavamitra pushed to refs/heads/master at <a href="https://gitlab.com/noosfero/noosfero">Noosfero / noosfero</a>

Commits:
<a href="https://gitlab.com/noosfero/noosfero/commit/77064dd35440b3a6e247b1a9227a37bac8eb0cf7">77064dd3</a> by Braulio Bhavamitra
plugins: Support namespaced controllers' classes

Let us write FooPlugin::MyprofileController instead of
FooPluginMyprofileController

- - - - -
<a href="https://gitlab.com/noosfero/noosfero/commit/e7b77af425454feb7e2e2f168b9b72bab6e154f9">e7b77af4</a> by Braulio Bhavamitra
plugins: Do not redeclare routes constant inside loop

- - - - -
<a href="https://gitlab.com/noosfero/noosfero/commit/b3f0b7f35e0d61eb9ab994a3f8d33f4bea8a5af5">b3f0b7f3</a> by Bráulio Bhavamitra
Merge branch 'plugins-namespaced-controllers' into 'master'

Support plugins' namespaced controllers

See merge request !447

- - - - -


Changes:

=====================================
lib/noosfero/plugin/routes.rb
=====================================
--- a/lib/noosfero/plugin/routes.rb
+++ b/lib/noosfero/plugin/routes.rb
@@ -1,17 +1,20 @@
 plugins_root = Rails.env.test? ? 'plugins' : '{baseplugins,config/plugins}'
+prefixes_by_folder = {public: 'plugin',
+                      profile: 'profile/:profile/plugin',
+                      myprofile: 'myprofile/:profile/plugin',
+                      admin: 'admin/plugin'}
 
 Dir.glob(Rails.root.join(plugins_root, '*', 'controllers')) do |controllers_dir|
-  prefixes_by_folder = {'public' => 'plugin',
-                        'profile' => 'profile/:profile/plugin',
-                        'myprofile' => 'myprofile/:profile/plugin',
-                        'admin' => 'admin/plugin'}
+  plugin_name = File.basename(File.dirname(controllers_dir))
 
   controllers_by_folder = prefixes_by_folder.keys.inject({}) do |hash, folder|
-    hash.merge!({folder => Dir.glob(File.join(controllers_dir, folder, '*')).map {|full_names| File.basename(full_names).gsub(/_controller.rb$/,'')}})
+    path = "#{controllers_dir}/#{folder}/"
+    hash[folder] = Dir.glob("#{path}{*.rb,#{plugin_name}_plugin/*.rb}").map do |filename|
+      filename.gsub(path, '').gsub(/_controller.rb$/, '')
+    end
+    hash
   end
 
-  plugin_name = File.basename(File.dirname(controllers_dir))
-
   controllers_by_folder.each do |folder, controllers|
     controllers.each do |controller|
       controller_name = controller.gsub("#{plugin_name}_plugin_",'')

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20150222/3f10fee3/attachment-0001.html>


More information about the Noosfero-dev mailing list