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