Class: Norn::Plugin

Inherits:
Object
  • Object
show all
Defined in:
lib/norn/plugin.rb

Class Method Summary collapse

Instance Method Summary collapse

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_policiesObject

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_nameObject

Abstract class method that MUST be overridden by subclasses

Raises:

  • (NotImplementedError)


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_pluginsObject



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