def self.[](plugin)
raise("No plugin #{plugin} defined") unless @plugins.include?(plugin)
klass = @plugins[plugin][:class]
if @plugins[plugin][:single]
if @plugins[plugin][:instance] == nil
Log.debug("Returning new plugin #{plugin} with class #{klass}")
@plugins[plugin][:instance] = create_instance(klass)
else
Log.debug("Returning cached plugin #{plugin} with class #{klass}")
end
@plugins[plugin][:instance]
else
Log.debug("Returning new plugin #{plugin} with class #{klass}")
create_instance(klass)
end
end