manager.rb
683 Bytes
class Noosfero::Plugin::Manager
extend ActsAsHavingHotspots::ClassMethods
acts_as_having_hotspots
attr_reader :context
delegate :environment, :to => :context
delegate :each, :to => :enabled_plugins
include Enumerable
def initialize(controller)
@context = Noosfero::Plugin::Context.new(controller)
Thread.current[:enabled_plugins] = (Noosfero::Plugin.all & environment.enabled_plugins).map do |plugin_name|
plugin = plugin_name.constantize.new
plugin.context = context
plugin
end
end
def [](name)
klass = Noosfero::Plugin.klass(name)
enabled_plugins.select do |plugin|
plugin.kind_of?(klass)
end.first
end
end