Class: Foederati::Providers

Inherits:
Object
  • Object
show all
Defined in:
lib/foederati/providers.rb

Overview

All providers known to Foederati

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.registryObject (readonly)

Returns the value of attribute registry.



9
10
11
# File 'lib/foederati/providers.rb', line 9

def registry
  @registry
end

Class Method Details

.get(id) ⇒ Foederati::Provider

Get a provider from the registry

Parameters:

  • id (Symbol)

    identifier of the provider to get

Returns:



41
42
43
# File 'lib/foederati/providers.rb', line 41

def get(id)
  registry[id]
end

.register(id_or_provider, &block) ⇒ Object

Register a provider

Parameters:

  • id_or_provider (Symbol, Foederati::Provider)

    identifier of a new provider, or an instantiated provider



16
17
18
19
20
21
22
23
24
25
# File 'lib/foederati/providers.rb', line 16

def register(id_or_provider, &block)
  case id_or_provider
  when Foederati::Provider
    registry[id_or_provider.id] = id_or_provider
  when Symbol
    registry[id_or_provider] = Provider.new(id_or_provider, &block)
  else
    fail ArgumentError, "Expected Symbol or Foederati::Provider, got #{id_or_provider.class}"
  end
end

.unregister(id) ⇒ Object

Unregisters a provider

Parameters:

  • id (Symbol)

    unique identifier of the provider

  • provider (Foederati::Provider)

    provider removed from the registry



32
33
34
# File 'lib/foederati/providers.rb', line 32

def unregister(id)
  registry.delete(id)
end