Class: EmbeddingUtil::ProviderRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/embedding_util/provider_registry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeProviderRegistry

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

#providersObject (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, unsupported_message 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