Class: Lolcommits::PluginManager
- Inherits:
-
Object
- Object
- Lolcommits::PluginManager
- Defined in:
- lib/lolcommits/plugin_manager.rb
Constant Summary collapse
- GEM_NAME_PREFIX =
/^lolcommits-/
Class Method Summary collapse
Instance Method Summary collapse
-
#find_by_name(name) ⇒ Lolcommits::Plugin
Find first plugin matching name.
-
#initialize ⇒ PluginManager
constructor
A new instance of PluginManager.
-
#load_plugins ⇒ Object
find and require all plugins.
- #plugin_names ⇒ Object
- #plugins_for(position) ⇒ Object
Constructor Details
#initialize ⇒ PluginManager
Returns a new instance of PluginManager.
11 12 13 |
# File 'lib/lolcommits/plugin_manager.rb', line 11 def initialize @plugins = [] end |
Class Method Details
.init ⇒ Object
5 6 7 8 9 |
# File 'lib/lolcommits/plugin_manager.rb', line 5 def self.init pm = new pm.load_plugins pm end |
Instance Method Details
#find_by_name(name) ⇒ Lolcommits::Plugin
Returns find first plugin matching name.
26 27 28 |
# File 'lib/lolcommits/plugin_manager.rb', line 26 def find_by_name(name) plugin_klasses.find { |plugin| plugin.name =~ /^#{name}/ } end |
#load_plugins ⇒ Object
find and require all plugins
16 17 18 19 |
# File 'lib/lolcommits/plugin_manager.rb', line 16 def load_plugins find_plugins @plugins.map(&:activate!) end |
#plugin_names ⇒ Object
30 31 32 33 34 |
# File 'lib/lolcommits/plugin_manager.rb', line 30 def plugin_names # TODO: when all plugins are gems, get names from GemPlugin with # @plugins.map(&:name) plugin_klasses.map(&:name).sort end |
#plugins_for(position) ⇒ Object
21 22 23 |
# File 'lib/lolcommits/plugin_manager.rb', line 21 def plugins_for(position) plugin_klasses.select { |p| Array(p.runner_order).include?(position) } end |