Class: Norn::Plugin
- Inherits:
-
Object
- Object
- Norn::Plugin
- Defined in:
- lib/norn/plugin.rb
Class Method Summary collapse
- .clear! ⇒ Object
-
.declare_hooks(manager) ⇒ Object
Optional hook registration Phase 1: subclasses override this to declare custom events.
-
.hook_policies ⇒ Object
Optional hook execution policies - subclasses override to specify recovery rules (e.g. { on_render_response: :recover }).
- .inherited(subclass) ⇒ Object
-
.plugin_name ⇒ Object
Abstract class method that MUST be overridden by subclasses.
- .registered_plugins ⇒ Object
Instance Method Summary collapse
-
#on_boot(container) ⇒ Object
Optional lifecycle hooks - subclasses override if needed.
- #on_cli_register(cli) ⇒ Object
- #on_tool_register(registry) ⇒ Object
Class Method Details
.clear! ⇒ Object
14 15 16 |
# File 'lib/norn/plugin.rb', line 14 def self.clear! @registered_plugins = [] end |
.declare_hooks(manager) ⇒ Object
Optional hook registration Phase 1: subclasses override this to declare custom events
24 |
# File 'lib/norn/plugin.rb', line 24 def self.declare_hooks(manager); end |
.hook_policies ⇒ Object
Optional hook execution policies - subclasses override to specify recovery rules (e.g. { on_render_response: :recover })
27 28 29 |
# File 'lib/norn/plugin.rb', line 27 def self.hook_policies {} end |
.inherited(subclass) ⇒ Object
5 6 7 8 |
# File 'lib/norn/plugin.rb', line 5 def self.inherited(subclass) super @registered_plugins << subclass end |
.plugin_name ⇒ Object
Abstract class method that MUST be overridden by subclasses
19 20 21 |
# File 'lib/norn/plugin.rb', line 19 def self.plugin_name raise NotImplementedError, "Plugin class must define self.plugin_name" end |
.registered_plugins ⇒ Object
10 11 12 |
# File 'lib/norn/plugin.rb', line 10 def self.registered_plugins @registered_plugins end |
Instance Method Details
#on_boot(container) ⇒ Object
Optional lifecycle hooks - subclasses override if needed
32 |
# File 'lib/norn/plugin.rb', line 32 def on_boot(container); end |
#on_cli_register(cli) ⇒ Object
34 |
# File 'lib/norn/plugin.rb', line 34 def on_cli_register(cli); end |
#on_tool_register(registry) ⇒ Object
33 |
# File 'lib/norn/plugin.rb', line 33 def on_tool_register(registry); end |