Class: Lolcommits::PluginManager
- Inherits:
-
Object
- Object
- Lolcommits::PluginManager
- Defined in:
- lib/lolcommits/plugin_manager.rb
Constant Summary collapse
- GEM_NAME_PREFIX =
/^#{Lolcommits::GEM_NAME}-/
Instance Attribute Summary collapse
-
#plugins ⇒ Object
readonly
Returns the value of attribute plugins.
Class Method Summary collapse
Instance Method Summary collapse
- #enabled_plugins_for(runner) ⇒ Object
-
#find_by_name(name) ⇒ Lolcommits::Plugin
Finds the first plugin matching name.
-
#initialize ⇒ PluginManager
constructor
A new instance of PluginManager.
-
#load_plugins ⇒ Object
find and require all plugins.
- #plugin_names ⇒ Object
Constructor Details
#initialize ⇒ PluginManager
Returns a new instance of PluginManager.
13 14 15 |
# File 'lib/lolcommits/plugin_manager.rb', line 13 def initialize @plugins = [] end |
Instance Attribute Details
#plugins ⇒ Object (readonly)
Returns the value of attribute plugins.
11 12 13 |
# File 'lib/lolcommits/plugin_manager.rb', line 11 def plugins @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
#enabled_plugins_for(runner) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/lolcommits/plugin_manager.rb', line 32 def enabled_plugins_for(runner) @plugins.map do |gem_plugin| plugin = gem_plugin.plugin_instance(runner) plugin.enabled? ? plugin : nil end.compact end |
#find_by_name(name) ⇒ Lolcommits::Plugin
Returns finds the first plugin matching name.
24 25 26 |
# File 'lib/lolcommits/plugin_manager.rb', line 24 def find_by_name(name) @plugins.find { |plugin| plugin.name =~ /^#{name}/ } unless name.empty? end |
#load_plugins ⇒ Object
find and require all plugins
18 19 20 21 |
# File 'lib/lolcommits/plugin_manager.rb', line 18 def load_plugins find_plugins @plugins.map(&:activate!) end |
#plugin_names ⇒ Object
28 29 30 |
# File 'lib/lolcommits/plugin_manager.rb', line 28 def plugin_names @plugins.map(&:name).sort end |