Class: BetterTranslate::ProviderFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/better_translate/provider_factory.rb

Overview

Factory for creating translation providers

Creates the appropriate provider instance based on configuration.

Examples:

Creating a ChatGPT provider

config = Configuration.new
config.provider = :chatgpt
config.openai_key = ENV['OPENAI_API_KEY']
provider = ProviderFactory.create(:chatgpt, config)
#=> #<BetterTranslate::Providers::ChatGPTProvider>

Creating a Gemini provider

config.provider = :gemini
config.google_gemini_key = ENV['GOOGLE_GEMINI_KEY']
provider = ProviderFactory.create(:gemini, config)
#=> #<BetterTranslate::Providers::GeminiProvider>

Class Method Summary collapse

Class Method Details

.create(provider_name, config) ⇒ Providers::BaseHttpProvider

Create a provider instance

Examples:

provider = ProviderFactory.create(:chatgpt, config)

Raises:



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/better_translate/provider_factory.rb', line 32

def self.create(provider_name, config)
  case provider_name
  when :chatgpt
    Providers::ChatGPTProvider.new(config)
  when :gemini
    Providers::GeminiProvider.new(config)
  when :anthropic
    Providers::AnthropicProvider.new(config)
  else
    raise ProviderNotFoundError, "Unknown provider: #{provider_name}. Supported: :chatgpt, :gemini, :anthropic"
  end
end