Class: SkillBench::Clients::ProviderRegistry
- Inherits:
-
Object
- Object
- SkillBench::Clients::ProviderRegistry
- Defined in:
- lib/skill_bench/clients/provider_registry.rb
Overview
ProviderRegistry manages registration and lookup of LLM provider classes. Follows the Registry pattern for extensible provider discovery.
Class Method Summary collapse
-
.for(name) ⇒ Class
Looks up a provider class by name.
-
.for!(name) ⇒ Class
Looks up a provider class by name, raising if not found.
-
.providers ⇒ Hash
Returns all registered providers.
-
.register(name, klass) ⇒ void
Registers a provider class with a given name.
Class Method Details
.for(name) ⇒ Class
Looks up a provider class by name. Returns NullClient if the provider is not registered (with a warning).
26 27 28 29 30 31 32 33 34 |
# File 'lib/skill_bench/clients/provider_registry.rb', line 26 def for(name) providers.fetch(name) do SkillBench::ErrorLogger.log_error( StandardError.new("Unknown provider '#{name}', falling back to NullClient"), 'ProviderRegistry Warning' ) Providers::NullClient end end |
.for!(name) ⇒ Class
Looks up a provider class by name, raising if not found.
41 42 43 44 45 |
# File 'lib/skill_bench/clients/provider_registry.rb', line 41 def for!(name) providers.fetch(name) do raise ArgumentError, "Unknown provider '#{name}'. Registered: #{providers.keys.join(', ')}" end end |
.providers ⇒ Hash
Returns all registered providers.
50 51 52 |
# File 'lib/skill_bench/clients/provider_registry.rb', line 50 def providers @providers ||= {} end |
.register(name, klass) ⇒ void
This method returns an undefined value.
Registers a provider class with a given name.
17 18 19 |
# File 'lib/skill_bench/clients/provider_registry.rb', line 17 def register(name, klass) providers[name] = klass end |