Sha256: cbfb7024e800292a51bfffc23fd8dab4d1e568c2b4471be3200dca13551f8563
Contents?: true
Size: 1.21 KB
Versions: 2
Compression:
Stored size: 1.21 KB
Contents
# frozen_string_literal: true module Foederati ## # All providers known to Foederati class Providers @registry = HashWithIndifferentAccess.new class << self attr_reader :registry ## # Register a provider # # @param id_or_provider [Symbol,Foederati::Provider] identifier of a new # provider, or an instantiated provider 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 ## # Unregisters a provider # # @param id [Symbol] unique identifier of the provider # @param provider [Foederati::Provider] provider removed from the registry def unregister(id) registry.delete(id) end ## # Get a provider from the registry # # @param id [Symbol] identifier of the provider to get # @return [Foederati::Provider] def get(id) registry[id] end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
foederati-0.2.0 | lib/foederati/providers.rb |
foederati-0.1.0 | lib/foederati/providers.rb |