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



34
35
36
# File 'lib/standard_id/provider_registry.rb', line 34

def all
  @providers.dup
end

.get(name) ⇒ Class

Get provider by name

Parameters:

  • name (Symbol, String)

    Provider identifier

Returns:

  • (Class)

    Provider class

Raises:



24
25
26
27
28
29
# File 'lib/standard_id/provider_registry.rb', line 24

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

.register(name, provider_class) ⇒ Object

Register a provider

Parameters:

  • name (Symbol, String)

    Provider identifier

  • provider_class (Class)

    Provider implementation class



12
13
14
15
16
17
18
# File 'lib/standard_id/provider_registry.rb', line 12

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)


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

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