Module: Riffer::Providers::Repository
Overview
Registry for finding provider classes by identifier.
Constant Summary collapse
- REPO =
{ amazon_bedrock: -> { Riffer::Providers::AmazonBedrock }, anthropic: -> { Riffer::Providers::Anthropic }, azure_openai: -> { Riffer::Providers::AzureOpenAI }, gemini: -> { Riffer::Providers::Gemini }, openai: -> { Riffer::Providers::OpenAI }, openrouter: -> { Riffer::Providers::OpenRouter }, mock: -> { Riffer::Providers::Mock } }.freeze
Instance Method Summary collapse
-
#find(identifier) ⇒ Object
Finds a provider class by identifier.
-
#key_for(provider_class) ⇒ Object
Returns the registry identifier for a provider class, or nil when unregistered.
Instance Method Details
#find(identifier) ⇒ Object
Finds a provider class by identifier.
– : ((String | Symbol)) -> singleton(Riffer::Providers::Base)?
24 25 26 |
# File 'lib/riffer/providers/repository.rb', line 24 def find(identifier) REPO.fetch(identifier.to_sym, nil)&.call end |
#key_for(provider_class) ⇒ Object
Returns the registry identifier for a provider class, or nil when unregistered. – : (singleton(Riffer::Providers::Base)) -> Symbol?
31 32 33 |
# File 'lib/riffer/providers/repository.rb', line 31 def key_for(provider_class) (@key_for ||= REPO.to_h { |key, factory| [factory.call, key] })[provider_class] end |