Class: A2A::Plugin::Base
- Inherits:
-
Object
- Object
- A2A::Plugin::Base
- Defined in:
- lib/a2a/plugin.rb
Overview
Base class for all A2A plugins
Direct Known Subclasses
Instance Attribute Summary collapse
-
#config ⇒ Hash
readonly
Get plugin configuration.
-
#logger ⇒ Logger
readonly
Get logger instance.
Class Method Summary collapse
-
.dependencies ⇒ Array<Symbol>
Get plugin dependencies.
-
.depends_on(*deps) ⇒ Object
Define plugin dependencies.
-
.inherited(subclass) ⇒ Object
Inherited hook to ensure plugin types are properly inherited.
-
.plugin_type(type = nil) ⇒ Object
Define plugin type.
Instance Method Summary collapse
-
#cleanup ⇒ Object
Cleanup resources (override in subclasses).
-
#initialize(**config) ⇒ Base
constructor
Initialize plugin.
-
#register_hooks(plugin_manager) ⇒ Object
Register hooks (override in subclasses).
Constructor Details
Instance Attribute Details
#config ⇒ Hash (readonly)
Get plugin configuration
236 237 238 |
# File 'lib/a2a/plugin.rb', line 236 def config @config end |
#logger ⇒ Logger (readonly)
Get logger instance
240 241 242 |
# File 'lib/a2a/plugin.rb', line 240 def logger @logger end |
Class Method Details
.dependencies ⇒ Array<Symbol>
Get plugin dependencies
212 213 214 |
# File 'lib/a2a/plugin.rb', line 212 def dependencies @dependencies || [] end |
.depends_on(*deps) ⇒ Object
Define plugin dependencies
206 207 208 |
# File 'lib/a2a/plugin.rb', line 206 def depends_on(*deps) @dependencies = deps end |
.inherited(subclass) ⇒ Object
Inherited hook to ensure plugin types are properly inherited
217 218 219 220 221 222 223 |
# File 'lib/a2a/plugin.rb', line 217 def inherited(subclass) super # Ensure subclass inherits plugin type if not explicitly set return unless @plugin_type && !subclass.instance_variable_defined?(:@plugin_type) subclass.instance_variable_set(:@plugin_type, @plugin_type) end |
.plugin_type(type = nil) ⇒ Object
Define plugin type
196 197 198 199 200 201 202 |
# File 'lib/a2a/plugin.rb', line 196 def plugin_type(type = nil) if type @plugin_type = type else @plugin_type || (superclass.respond_to?(:plugin_type) ? superclass.plugin_type : nil) end end |
Instance Method Details
#cleanup ⇒ Object
Cleanup resources (override in subclasses)
249 250 251 |
# File 'lib/a2a/plugin.rb', line 249 def cleanup # Override in subclasses for cleanup end |
#register_hooks(plugin_manager) ⇒ Object
Register hooks (override in subclasses)
244 245 246 |
# File 'lib/a2a/plugin.rb', line 244 def register_hooks(plugin_manager) # Override in subclasses to register hooks end |