Class: Kotoshu::Plugins::Plugin
- Inherits:
-
Object
- Object
- Kotoshu::Plugins::Plugin
- Defined in:
- lib/kotoshu/plugins/plugin.rb
Overview
Base class for plugins.
Plugins provide extensible functionality with dependency injection.
Class Method Summary collapse
-
.dependencies ⇒ Array<Symbol>
Dependencies.
-
.plugin_name ⇒ Symbol
Plugin name.
-
.provides ⇒ Array<Symbol>
Provided services.
Instance Method Summary collapse
-
#after_stop ⇒ Object
Lifecycle hook called after plugin stops.
-
#before_start ⇒ Object
Lifecycle hook called before plugin starts.
Class Method Details
.dependencies ⇒ Array<Symbol>
Returns Dependencies.
34 35 36 |
# File 'lib/kotoshu/plugins/plugin.rb', line 34 def self.dependencies [] end |
.plugin_name ⇒ Symbol
Returns Plugin name.
29 30 31 |
# File 'lib/kotoshu/plugins/plugin.rb', line 29 def self.plugin_name raise NotImplementedError, "#{name} must define .plugin_name" end |
.provides ⇒ Array<Symbol>
Returns Provided services.
39 40 41 |
# File 'lib/kotoshu/plugins/plugin.rb', line 39 def self.provides [] end |
Instance Method Details
#after_stop ⇒ Object
Lifecycle hook called after plugin stops.
Override in subclass to add cleanup logic.
53 54 55 |
# File 'lib/kotoshu/plugins/plugin.rb', line 53 def after_stop # Override in subclass end |
#before_start ⇒ Object
Lifecycle hook called before plugin starts.
Override in subclass to add startup logic.
46 47 48 |
# File 'lib/kotoshu/plugins/plugin.rb', line 46 def before_start # Override in subclass end |