Class: StandardId::ProviderRegistry

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

Defined Under Namespace

Classes: InvalidProviderError, ProviderNotFoundError

Class Method Summary collapse

Class Method Details

.allHash

Get all registered providers

Returns:

  • (Hash)

    Provider name => class mapping



40
41
42
# File 'lib/standard_id/provider_registry.rb', line 40

def all
  providers.each_pair.to_h
end

.get(name) ⇒ Class

Get provider by name

Parameters:

  • name (Symbol, String)

    Provider identifier

Returns:

  • (Class)

    Provider class

Raises:



30
31
32
33
34
35
# File 'lib/standard_id/provider_registry.rb', line 30

def get(name)
  providers[name.to_s] || raise(
    ProviderNotFoundError,
    "Unknown provider: #{name}. Available providers: #{providers.keys.join(', ')}"
  )
end

.providersObject



11
12
13
# File 'lib/standard_id/provider_registry.rb', line 11

def providers
  @providers
end

.register(name, provider_class) ⇒ Object

Register a provider

Parameters:

  • name (Symbol, String)

    Provider identifier

  • provider_class (Class)

    Provider implementation class



18
19
20
21
22
23
24
# File 'lib/standard_id/provider_registry.rb', line 18

def register(name, provider_class)
  validate_provider!(provider_class)
  providers[name.to_s] = provider_class
  register_config_schema(provider_class)
  provider_class.setup if provider_class.respond_to?(:setup)
  provider_class
end

.registered?(name) ⇒ Boolean

Check if provider is registered

Parameters:

  • name (Symbol, String)

    Provider identifier

Returns:

  • (Boolean)


47
48
49
# File 'lib/standard_id/provider_registry.rb', line 47

def registered?(name)
  providers.key?(name.to_s)
end