summaryrefslogtreecommitdiffstats
path: root/lib/redmine
diff options
context:
space:
mode:
Diffstat (limited to 'lib/redmine')
-rw-r--r--lib/redmine/plugin.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb
index 17953ef8c..80c638b28 100644
--- a/lib/redmine/plugin.rb
+++ b/lib/redmine/plugin.rb
@@ -17,6 +17,8 @@
module Redmine #:nodoc:
+ class PluginNotFound < StandardError; end
+
# Base class for Redmine plugins.
# Plugins are registered using the <tt>register</tt> class method that acts as the public constructor.
#
@@ -62,7 +64,17 @@ module Redmine #:nodoc:
def self.register(id, &block)
p = new(id)
p.instance_eval(&block)
- Plugin.registered_plugins[id] = p
+ registered_plugins[id] = p
+ end
+
+ # Returns an array off all registered plugins
+ def self.all
+ registered_plugins.values.sort
+ end
+
+ # Finds a plugin by its id
+ def self.find(id)
+ registered_plugins[id.to_sym] || raise(PluginNotFound)
end
def initialize(id)