Module: Krypt::Provider
- Defined in:
- lib/krypt/provider/provider.rb
Defined Under Namespace
Classes: AlreadyExistsError, ServiceNotAvailableError
Constant Summary
collapse
- PROVIDERS =
{}
- PROVIDER_LIST =
[]
Class Method Summary
collapse
Class Method Details
.by_name(name) ⇒ Object
19
20
21
|
# File 'lib/krypt/provider/provider.rb', line 19
def by_name(name)
PROVIDERS[name]
end
|
.new_service(klass, *args) ⇒ Object
29
30
31
32
33
34
35
|
# File 'lib/krypt/provider/provider.rb', line 29
def new_service(klass, *args)
PROVIDER_LIST.each do |name|
service = PROVIDERS[name].new_service(klass, *args)
return service if service
end
raise ServiceNotAvailableError.new("The requested service is not available")
end
|
.register(provider, name = nil) ⇒ Object
12
13
14
15
16
17
|
# File 'lib/krypt/provider/provider.rb', line 12
def register(provider, name=nil)
name ||= provider.name
raise AlreadyExistsError.new("There already is a Provider named #{name}") if PROVIDERS.has_key?(name)
PROVIDERS[name] = provider
PROVIDER_LIST.unshift(name)
end
|
.remove(name) ⇒ Object
23
24
25
26
27
|
# File 'lib/krypt/provider/provider.rb', line 23
def remove(name)
p = PROVIDERS.delete(name)
PROVIDER_LIST.delete(name)
p.finalize
end
|