Class: Diggit::PluginLoader
- Inherits:
-
Object
- Object
- Diggit::PluginLoader
- Includes:
- Singleton
- Defined in:
- lib/dgit/core.rb
Overview
Class to handle loading of diggit plugins. Diggit plugins are defined in camel cased classes derived from Plugin. Their name is the underscore cased version of the class name (example ‘MyPlugin` becomes `my_plugin`). It uses a singleton pattern, so you have to create an instance like that:
Constant Summary collapse
- PLUGINS_TYPES =
%i[addon analysis join].freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ PluginLoader
constructor
Constructor.
-
#load_plugin(name, type, instance = false) ⇒ Plugin, Class
Load the plugin with the given name and type.
Constructor Details
#initialize ⇒ PluginLoader
Constructor. Should not be called directly. Use instance instead.
245 246 247 |
# File 'lib/dgit/core.rb', line 245 def initialize @plugins = {} end |
Class Method Details
Instance Method Details
#load_plugin(name, type, instance = false) ⇒ Plugin, Class
Load the plugin with the given name and type.
232 233 234 235 236 237 |
# File 'lib/dgit/core.rb', line 232 def load_plugin(name, type, instance = false) plugin = search_plugin(name, type) raise "Plugin #{name} not found." unless plugin return plugin.new(Dig.it.) if instance plugin end |