Class: ProxyFetcher::ProvidersRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/proxy_fetcher/configuration/providers_registry.rb

Instance Method Summary collapse

Instance Method Details

#class_for(provider_name) ⇒ Object

Returns a class for specific provider if it is registered in the registry. Otherwise throws an exception.



18
19
20
21
22
23
24
# File 'lib/proxy_fetcher/configuration/providers_registry.rb', line 18

def class_for(provider_name)
  provider_name = provider_name.to_sym

  providers.fetch(provider_name)
rescue KeyError
  raise ProxyFetcher::Exceptions::UnknownProvider, provider_name
end

#providersObject



3
4
5
# File 'lib/proxy_fetcher/configuration/providers_registry.rb', line 3

def providers
  @providers ||= {}
end

#register(name, klass) ⇒ Object

Add custom provider to common registry. Requires proxy provider name (‘proxy_docker’ for example) and a class that implements the parsing logic.



10
11
12
13
14
# File 'lib/proxy_fetcher/configuration/providers_registry.rb', line 10

def register(name, klass)
  raise ProxyFetcher::Exceptions::RegisteredProvider, name if providers.key?(name.to_sym)

  providers[name.to_sym] = klass
end