diff --git a/lib/noosfero/plugin.rb b/lib/noosfero/plugin.rb index 5ee2245..8fc0061 100644 --- a/lib/noosfero/plugin.rb +++ b/lib/noosfero/plugin.rb @@ -64,6 +64,9 @@ class Noosfero::Plugin require init.gsub(/.rb$/, '') if File.file? init end + # load extensions + Dir[File.join(dir, 'lib', 'ext', '*.rb')].each {|file| require_dependency file } + # load class klass(plugin_name) end diff --git a/plugins/bsc/lib/bsc_plugin.rb b/plugins/bsc/lib/bsc_plugin.rb index 6268302..3f70c39 100644 --- a/plugins/bsc/lib/bsc_plugin.rb +++ b/plugins/bsc/lib/bsc_plugin.rb @@ -1,6 +1,3 @@ -require_dependency 'bsc_plugin/ext/enterprise' -require_dependency 'bsc_plugin/ext/product' - class BscPlugin < Noosfero::Plugin Bsc diff --git a/plugins/comment_group/lib/comment_group_plugin.rb b/plugins/comment_group/lib/comment_group_plugin.rb index 0dcf971..a2f21b8 100644 --- a/plugins/comment_group/lib/comment_group_plugin.rb +++ b/plugins/comment_group/lib/comment_group_plugin.rb @@ -1,6 +1,3 @@ -require_dependency 'comment_group_plugin/ext/article' -require_dependency 'comment_group_plugin/ext/comment' - class CommentGroupPlugin < Noosfero::Plugin def self.plugin_name diff --git a/plugins/comment_group/lib/comment_group_plugin/ext/article.rb b/plugins/comment_group/lib/comment_group_plugin/ext/article.rb deleted file mode 100644 index fb7e156..0000000 --- a/plugins/comment_group/lib/comment_group_plugin/ext/article.rb +++ /dev/null @@ -1,21 +0,0 @@ -require_dependency 'article' - -class Article - - #FIXME make this test - has_many :group_comments, :class_name => 'Comment', :foreign_key => 'source_id', :dependent => :destroy, :order => 'created_at asc', :conditions => [ 'group_id IS NOT NULL'] - - #FIXME make this test - validate :not_empty_group_comments_removed - - #FIXME make this test - def not_empty_group_comments_removed - if body - groups_with_comments = group_comments.collect {|comment| comment.group_id}.uniq - groups = Hpricot(body.to_s).search('.macro').collect{|element| element['data-macro-group_id'].to_i} - errors.add_to_base(N_('Not empty group comment cannot be removed')) unless (groups_with_comments-groups).empty? - end - end - -end - diff --git a/plugins/comment_group/lib/comment_group_plugin/ext/comment.rb b/plugins/comment_group/lib/comment_group_plugin/ext/comment.rb deleted file mode 100644 index 89bce1c..0000000 --- a/plugins/comment_group/lib/comment_group_plugin/ext/comment.rb +++ /dev/null @@ -1,12 +0,0 @@ -require_dependency 'comment' - -class Comment - - named_scope :without_group, :conditions => {:group_id => nil } - - named_scope :in_group, lambda { |group_id| { - :conditions => ['group_id = ?', group_id] - } - } - -end diff --git a/plugins/comment_group/lib/ext/article.rb b/plugins/comment_group/lib/ext/article.rb new file mode 100644 index 0000000..fb7e156 --- /dev/null +++ b/plugins/comment_group/lib/ext/article.rb @@ -0,0 +1,21 @@ +require_dependency 'article' + +class Article + + #FIXME make this test + has_many :group_comments, :class_name => 'Comment', :foreign_key => 'source_id', :dependent => :destroy, :order => 'created_at asc', :conditions => [ 'group_id IS NOT NULL'] + + #FIXME make this test + validate :not_empty_group_comments_removed + + #FIXME make this test + def not_empty_group_comments_removed + if body + groups_with_comments = group_comments.collect {|comment| comment.group_id}.uniq + groups = Hpricot(body.to_s).search('.macro').collect{|element| element['data-macro-group_id'].to_i} + errors.add_to_base(N_('Not empty group comment cannot be removed')) unless (groups_with_comments-groups).empty? + end + end + +end + diff --git a/plugins/comment_group/lib/ext/comment.rb b/plugins/comment_group/lib/ext/comment.rb new file mode 100644 index 0000000..89bce1c --- /dev/null +++ b/plugins/comment_group/lib/ext/comment.rb @@ -0,0 +1,12 @@ +require_dependency 'comment' + +class Comment + + named_scope :without_group, :conditions => {:group_id => nil } + + named_scope :in_group, lambda { |group_id| { + :conditions => ['group_id = ?', group_id] + } + } + +end diff --git a/plugins/custom_forms/lib/custom_forms_plugin.rb b/plugins/custom_forms/lib/custom_forms_plugin.rb index c92aad3..4caa8ee 100644 --- a/plugins/custom_forms/lib/custom_forms_plugin.rb +++ b/plugins/custom_forms/lib/custom_forms_plugin.rb @@ -1,5 +1,3 @@ -require 'ext/role_assignment_trigger' - class CustomFormsPlugin < Noosfero::Plugin def self.plugin_name diff --git a/plugins/foo/lib/ext/profile.rb b/plugins/foo/lib/ext/profile.rb new file mode 100644 index 0000000..058f5c7 --- /dev/null +++ b/plugins/foo/lib/ext/profile.rb @@ -0,0 +1,6 @@ +require_dependency 'profile' + +Profile.class_eval do + def bar + end +end diff --git a/plugins/foo/lib/foo_plugin.rb b/plugins/foo/lib/foo_plugin.rb index b6dc1af..b74f6f7 100644 --- a/plugins/foo/lib/foo_plugin.rb +++ b/plugins/foo/lib/foo_plugin.rb @@ -1,5 +1,3 @@ -require_dependency 'foo_plugin/ext/profile' - class FooPlugin < Noosfero::Plugin def self.plugin_name diff --git a/plugins/foo/lib/foo_plugin/ext/profile.rb b/plugins/foo/lib/foo_plugin/ext/profile.rb deleted file mode 100644 index 058f5c7..0000000 --- a/plugins/foo/lib/foo_plugin/ext/profile.rb +++ /dev/null @@ -1,6 +0,0 @@ -require_dependency 'profile' - -Profile.class_eval do - def bar - end -end diff --git a/plugins/google_analytics/lib/google_analytics_plugin.rb b/plugins/google_analytics/lib/google_analytics_plugin.rb index 4508597..1008c59 100644 --- a/plugins/google_analytics/lib/google_analytics_plugin.rb +++ b/plugins/google_analytics/lib/google_analytics_plugin.rb @@ -1,5 +1,3 @@ -require_dependency File.dirname(__FILE__) + '/ext/profile' - class GoogleAnalyticsPlugin < Noosfero::Plugin include ActionView::Helpers::JavaScriptHelper diff --git a/plugins/ldap/lib/ldap_plugin.rb b/plugins/ldap/lib/ldap_plugin.rb index 25182fe..b6d68be 100644 --- a/plugins/ldap/lib/ldap_plugin.rb +++ b/plugins/ldap/lib/ldap_plugin.rb @@ -1,7 +1,5 @@ -require_dependency File.dirname(__FILE__) + '/ext/environment' require File.dirname(__FILE__) + '/ldap_authentication.rb' - class LdapPlugin < Noosfero::Plugin def self.plugin_name diff --git a/plugins/pg_search/lib/pg_search_plugin.rb b/plugins/pg_search/lib/pg_search_plugin.rb index 36361bd..7ae5dc4 100644 --- a/plugins/pg_search/lib/pg_search_plugin.rb +++ b/plugins/pg_search/lib/pg_search_plugin.rb @@ -1,5 +1,3 @@ -require 'ext/active_record' - class PgSearchPlugin < Noosfero::Plugin def self.plugin_name diff --git a/plugins/require_auth_to_comment/lib/ext/profile.rb b/plugins/require_auth_to_comment/lib/ext/profile.rb new file mode 100644 index 0000000..9847e7b --- /dev/null +++ b/plugins/require_auth_to_comment/lib/ext/profile.rb @@ -0,0 +1,5 @@ +require_dependency 'profile' + +class Profile + settings_items :allow_unauthenticated_comments, :type => :boolean +end diff --git a/plugins/require_auth_to_comment/lib/require_auth_to_comment_plugin.rb b/plugins/require_auth_to_comment/lib/require_auth_to_comment_plugin.rb index 8e22fc5..086a078 100644 --- a/plugins/require_auth_to_comment/lib/require_auth_to_comment_plugin.rb +++ b/plugins/require_auth_to_comment/lib/require_auth_to_comment_plugin.rb @@ -1,5 +1,3 @@ -require_dependency 'require_auth_to_comment_plugin/ext/profile' - class RequireAuthToCommentPlugin < Noosfero::Plugin include ActionView::Helpers::TagHelper diff --git a/plugins/require_auth_to_comment/lib/require_auth_to_comment_plugin/ext/profile.rb b/plugins/require_auth_to_comment/lib/require_auth_to_comment_plugin/ext/profile.rb deleted file mode 100644 index 9847e7b..0000000 --- a/plugins/require_auth_to_comment/lib/require_auth_to_comment_plugin/ext/profile.rb +++ /dev/null @@ -1,5 +0,0 @@ -require_dependency 'profile' - -class Profile - settings_items :allow_unauthenticated_comments, :type => :boolean -end diff --git a/plugins/shopping_cart/lib/ext/enterprise.rb b/plugins/shopping_cart/lib/ext/enterprise.rb new file mode 100644 index 0000000..139a9a5 --- /dev/null +++ b/plugins/shopping_cart/lib/ext/enterprise.rb @@ -0,0 +1,5 @@ +require_dependency 'enterprise' + +class Enterprise + has_many :orders, :class_name => "ShoppingCartPlugin::PurchaseOrder", :foreign_key => 'seller_id' +end diff --git a/plugins/shopping_cart/lib/ext/person.rb b/plugins/shopping_cart/lib/ext/person.rb new file mode 100644 index 0000000..e01e85b --- /dev/null +++ b/plugins/shopping_cart/lib/ext/person.rb @@ -0,0 +1,5 @@ +require_dependency 'person' + +class Person + has_many :purchases, :class_name => "ShoppingCartPlugin::PurchaseOrder", :foreign_key => 'customer_id' +end diff --git a/plugins/shopping_cart/lib/shopping_cart_plugin.rb b/plugins/shopping_cart/lib/shopping_cart_plugin.rb index 934cd67..59d1a65 100644 --- a/plugins/shopping_cart/lib/shopping_cart_plugin.rb +++ b/plugins/shopping_cart/lib/shopping_cart_plugin.rb @@ -1,6 +1,3 @@ -require_dependency 'shopping_cart_plugin/ext/enterprise' -require_dependency 'shopping_cart_plugin/ext/person' - class ShoppingCartPlugin < Noosfero::Plugin class << self diff --git a/plugins/shopping_cart/lib/shopping_cart_plugin/ext/enterprise.rb b/plugins/shopping_cart/lib/shopping_cart_plugin/ext/enterprise.rb deleted file mode 100644 index 139a9a5..0000000 --- a/plugins/shopping_cart/lib/shopping_cart_plugin/ext/enterprise.rb +++ /dev/null @@ -1,5 +0,0 @@ -require_dependency 'enterprise' - -class Enterprise - has_many :orders, :class_name => "ShoppingCartPlugin::PurchaseOrder", :foreign_key => 'seller_id' -end diff --git a/plugins/shopping_cart/lib/shopping_cart_plugin/ext/person.rb b/plugins/shopping_cart/lib/shopping_cart_plugin/ext/person.rb deleted file mode 100644 index e01e85b..0000000 --- a/plugins/shopping_cart/lib/shopping_cart_plugin/ext/person.rb +++ /dev/null @@ -1,5 +0,0 @@ -require_dependency 'person' - -class Person - has_many :purchases, :class_name => "ShoppingCartPlugin::PurchaseOrder", :foreign_key => 'customer_id' -end diff --git a/plugins/solr/lib/solr_plugin.rb b/plugins/solr/lib/solr_plugin.rb index 7141ed7..a2bf16c 100644 --- a/plugins/solr/lib/solr_plugin.rb +++ b/plugins/solr/lib/solr_plugin.rb @@ -39,5 +39,3 @@ class SolrPlugin < Noosfero::Plugin end end - -Dir[File.join(SolrPlugin.root_path, 'lib', 'ext', '*.rb')].each {|file| require_dependency file } diff --git a/plugins/stoa/lib/stoa_plugin.rb b/plugins/stoa/lib/stoa_plugin.rb index 15e95d6..1b8f2cf 100644 --- a/plugins/stoa/lib/stoa_plugin.rb +++ b/plugins/stoa/lib/stoa_plugin.rb @@ -1,5 +1,4 @@ require_dependency 'person' -require_dependency 'ext/person' class StoaPlugin < Noosfero::Plugin diff --git a/plugins/sub_organizations/lib/ext/create_enterprise.rb b/plugins/sub_organizations/lib/ext/create_enterprise.rb new file mode 100644 index 0000000..e4e19ea --- /dev/null +++ b/plugins/sub_organizations/lib/ext/create_enterprise.rb @@ -0,0 +1,5 @@ +require_dependency 'create_enterprise' + +class CreateEnterprise + settings_items :sub_organizations_plugin_parent_to_be +end diff --git a/plugins/sub_organizations/lib/ext/organization.rb b/plugins/sub_organizations/lib/ext/organization.rb new file mode 100644 index 0000000..5626fa1 --- /dev/null +++ b/plugins/sub_organizations/lib/ext/organization.rb @@ -0,0 +1,13 @@ +require_dependency 'organization' +class Organization + settings_items :sub_organizations_plugin_parent_to_be + + after_create do |organization| + if organization.sub_organizations_plugin_parent_to_be.present? + parent = Organization.find(organization.sub_organizations_plugin_parent_to_be) + SubOrganizationsPlugin::Relation.add_children(parent,organization) + end + end + + FIELDS << 'sub_organizations_plugin_parent_to_be' +end diff --git a/plugins/sub_organizations/lib/sub_organizations_plugin.rb b/plugins/sub_organizations/lib/sub_organizations_plugin.rb index 817e2e1..e0e5a24 100644 --- a/plugins/sub_organizations/lib/sub_organizations_plugin.rb +++ b/plugins/sub_organizations/lib/sub_organizations_plugin.rb @@ -1,6 +1,3 @@ -require_dependency 'sub_organizations_plugin/ext/organization' -require_dependency 'sub_organizations_plugin/ext/create_enterprise' - class SubOrganizationsPlugin < Noosfero::Plugin def self.plugin_name diff --git a/plugins/sub_organizations/lib/sub_organizations_plugin/ext/create_enterprise.rb b/plugins/sub_organizations/lib/sub_organizations_plugin/ext/create_enterprise.rb deleted file mode 100644 index e4e19ea..0000000 --- a/plugins/sub_organizations/lib/sub_organizations_plugin/ext/create_enterprise.rb +++ /dev/null @@ -1,5 +0,0 @@ -require_dependency 'create_enterprise' - -class CreateEnterprise - settings_items :sub_organizations_plugin_parent_to_be -end diff --git a/plugins/sub_organizations/lib/sub_organizations_plugin/ext/organization.rb b/plugins/sub_organizations/lib/sub_organizations_plugin/ext/organization.rb deleted file mode 100644 index 5626fa1..0000000 --- a/plugins/sub_organizations/lib/sub_organizations_plugin/ext/organization.rb +++ /dev/null @@ -1,13 +0,0 @@ -require_dependency 'organization' -class Organization - settings_items :sub_organizations_plugin_parent_to_be - - after_create do |organization| - if organization.sub_organizations_plugin_parent_to_be.present? - parent = Organization.find(organization.sub_organizations_plugin_parent_to_be) - SubOrganizationsPlugin::Relation.add_children(parent,organization) - end - end - - FIELDS << 'sub_organizations_plugin_parent_to_be' -end diff --git a/plugins/tolerance_time/lib/tolerance_time_plugin.rb b/plugins/tolerance_time/lib/tolerance_time_plugin.rb index 23046a5..cb06afe 100644 --- a/plugins/tolerance_time/lib/tolerance_time_plugin.rb +++ b/plugins/tolerance_time/lib/tolerance_time_plugin.rb @@ -1,6 +1,3 @@ -require_dependency 'ext/article' -require_dependency 'ext/comment' - class ToleranceTimePlugin < Noosfero::Plugin def self.plugin_name diff --git a/plugins/work_assignment/lib/work_assignment_plugin.rb b/plugins/work_assignment/lib/work_assignment_plugin.rb index 46bde51..940655e 100644 --- a/plugins/work_assignment/lib/work_assignment_plugin.rb +++ b/plugins/work_assignment/lib/work_assignment_plugin.rb @@ -1,5 +1,3 @@ -require_dependency 'ext/uploaded_file' - class WorkAssignmentPlugin < Noosfero::Plugin def self.plugin_name -- libgit2 0.21.2