diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-11-16 15:38:37 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-11-16 15:38:37 +0000 |
commit | fefc6e6bec617fe4e6b438beedf1ca78f722ce45 (patch) | |
tree | 1af057922516131d69c388775703fa6b93fdf3f7 /lib | |
parent | 97252c26eefe3dfa5e0c3cb059fe66cb21b2e34d (diff) | |
download | redmine-fefc6e6bec617fe4e6b438beedf1ca78f722ce45.tar.gz redmine-fefc6e6bec617fe4e6b438beedf1ca78f722ce45.zip |
Adds .find and .all Plugin class methods.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2039 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'lib')
-rw-r--r-- | lib/redmine/plugin.rb | 14 |
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) |