Class: Ollama::Plugins
- Inherits:
-
Object
- Object
- Ollama::Plugins
- Defined in:
- lib/ollama/plugins.rb
Overview
Plugin system for the Ollama client. Allows registering plugins that can add middleware, configure defaults, etc.
Instance Method Summary collapse
-
#apply_all(client) ⇒ Ollama::Plugins
Apply all registered plugins to a client.
-
#apply_plugin?(plugin, client, config = {}) ⇒ Boolean
Apply a specific plugin to a client.
-
#initialize ⇒ Plugins
constructor
A new instance of Plugins.
-
#list ⇒ Array<Module, Class>
List registered plugins.
-
#register(plugin, config: {}) ⇒ Ollama::Plugins
Register a plugin.
-
#registered?(plugin) ⇒ Boolean
Check if a plugin is registered.
Constructor Details
#initialize ⇒ Plugins
Returns a new instance of Plugins.
8 9 10 |
# File 'lib/ollama/plugins.rb', line 8 def initialize @plugins = [] end |
Instance Method Details
#apply_all(client) ⇒ Ollama::Plugins
Apply all registered plugins to a client
24 25 26 27 28 29 30 31 |
# File 'lib/ollama/plugins.rb', line 24 def apply_all(client) @plugins.each do |p| plugin = p[:plugin] config = p[:config] plugin.apply(client, config) if plugin.respond_to?(:apply) end self end |
#apply_plugin?(plugin, client, config = {}) ⇒ Boolean
Apply a specific plugin to a client
38 39 40 41 42 43 44 |
# File 'lib/ollama/plugins.rb', line 38 def apply_plugin?(plugin, client, config = {}) entry = @plugins.find { |p| p[:plugin] == plugin } return false unless entry plugin.apply(client, config) if plugin.respond_to?(:apply) true end |
#list ⇒ Array<Module, Class>
List registered plugins
48 49 50 |
# File 'lib/ollama/plugins.rb', line 48 def list @plugins.map { |p| p[:plugin] } end |
#register(plugin, config: {}) ⇒ Ollama::Plugins
Register a plugin
16 17 18 19 |
# File 'lib/ollama/plugins.rb', line 16 def register(plugin, config: {}) @plugins << { plugin: plugin, config: config } self end |
#registered?(plugin) ⇒ Boolean
Check if a plugin is registered
55 56 57 |
# File 'lib/ollama/plugins.rb', line 55 def registered?(plugin) @plugins.any? { |p| p[:plugin] == plugin } end |