Class: Sphragis::ProviderFactory

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

Defined Under Namespace

Classes: ProviderNotConfiguredError, ProviderNotFoundError

Class Method Summary collapse

Class Method Details

.available_providersArray<Symbol>

Get list of available (configured) providers

Returns:

  • (Array<Symbol>)

    List of provider names



42
43
44
# File 'lib/sphragis/provider_factory.rb', line 42

def self.available_providers
  Sphragis.configuration.available_providers
end

.create(provider_name, config = {}) ⇒ Providers::BaseProvider

Create a signature provider instance

Parameters:

  • provider_name (Symbol, String)

    Provider name (:fortify, :harica, :itsme)

  • config (Hash) (defaults to: {})

    Optional provider-specific configuration

Returns:



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/sphragis/provider_factory.rb', line 12

def self.create(provider_name, config = {})
  provider_name = provider_name.to_sym
  config_obj = Sphragis.configuration

  case provider_name
  when :fortify
    raise ProviderNotConfiguredError, "Fortify is not configured" unless config_obj.fortify_configured?

    require_relative "providers/fortify_provider"
    Providers::FortifyProvider.new(config)

  when :harica
    raise ProviderNotConfiguredError, "Harica is not configured" unless config_obj.harica_configured?

    require_relative "providers/harica_provider"
    Providers::HaricaProvider.new(config.empty? ? harica_config : config)

  when :itsme
    raise ProviderNotConfiguredError, "Itsme is not configured" unless config_obj.itsme_configured?

    require_relative "providers/itsme_provider"
    Providers::ItsmeProvider.new(config.empty? ? itsme_config : config)

  else
    raise ProviderNotFoundError, "Unknown provider: #{provider_name}. Available: #{available_providers.join(', ')}"
  end
end

.create_defaultProviders::BaseProvider

Create default provider instance

Returns:



54
55
56
# File 'lib/sphragis/provider_factory.rb', line 54

def self.create_default
  create(default_provider)
end

.default_providerSymbol

Get default provider

Returns:

  • (Symbol)

    Default provider name



48
49
50
# File 'lib/sphragis/provider_factory.rb', line 48

def self.default_provider
  Sphragis.configuration.default_provider
end