Class: EmbeddingUtil::ProviderRegistry
- Inherits:
-
Object
- Object
- EmbeddingUtil::ProviderRegistry
- Defined in:
- lib/embedding_util/provider_registry.rb
Instance Attribute Summary collapse
-
#providers ⇒ Object
readonly
Returns the value of attribute providers.
Instance Method Summary collapse
-
#initialize ⇒ ProviderRegistry
constructor
A new instance of ProviderRegistry.
- #register(provider_class) ⇒ Object
- #resolve(config: EmbeddingUtil.configuration) ⇒ Object
- #support(config: EmbeddingUtil.configuration) ⇒ Object
Constructor Details
#initialize ⇒ ProviderRegistry
Returns a new instance of ProviderRegistry.
7 8 9 |
# File 'lib/embedding_util/provider_registry.rb', line 7 def initialize @providers = [] end |
Instance Attribute Details
#providers ⇒ Object (readonly)
Returns the value of attribute providers.
5 6 7 |
# File 'lib/embedding_util/provider_registry.rb', line 5 def providers @providers end |
Instance Method Details
#register(provider_class) ⇒ Object
11 12 13 |
# File 'lib/embedding_util/provider_registry.rb', line 11 def register(provider_class) @providers << provider_class unless @providers.include?(provider_class) end |
#resolve(config: EmbeddingUtil.configuration) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/embedding_util/provider_registry.rb', line 15 def resolve(config: EmbeddingUtil.configuration) selected = config.provider return resolve_selected(selected, config) if selected && selected != :auto provider_class = providers.find { |candidate| candidate.supported?(config) } raise UnsupportedProviderError, unless provider_class provider_class.new(config: config) end |
#support(config: EmbeddingUtil.configuration) ⇒ Object
25 26 27 |
# File 'lib/embedding_util/provider_registry.rb', line 25 def support(config: EmbeddingUtil.configuration) providers.map { |provider_class| provider_class.new(config: config).support } end |