Module: Providers
- Defined in:
- lib/version.rb,
lib/providers.rb,
lib/providers/provider.rb
Defined Under Namespace
Classes: MissingProviderError, Provider
Constant Summary
collapse
- VERSION =
'0.6.1'
Class Method Summary
collapse
Class Method Details
.[](*provider_keys) ⇒ Object
Providers are hard to stub in tests and should only be used when dependency injection isn't possible.
TODO: Make Providers easy to stub in tests and look into feature where we get providers from another Ecosystem.
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/providers.rb', line 24
def [](*provider_keys)
provider_keys = [*provider_keys]
raise(MissingProviderError, 'Pass one more provider keys') if provider_keys.empty?
if provider_keys.count == 1
result(provider_keys.first)
else
provider_keys.map do |provider_key|
result(provider_key)
end
end
end
|
.all ⇒ Object
38
39
40
|
# File 'lib/providers.rb', line 38
def all
providers
end
|
.clear ⇒ Object
42
43
44
|
# File 'lib/providers.rb', line 42
def clear
@providers = {}
end
|
.define(key, eager: false, receiver: self, &block) ⇒ Object
11
12
13
14
15
|
# File 'lib/providers.rb', line 11
def define(key, eager: false, receiver: self, &block)
provider = Provider.new(key:, &block)
provider.result if eager
providers[key] = provider
end
|
.providers ⇒ Object
17
18
19
20
|
# File 'lib/providers.rb', line 17
def providers
@providers ||= {}
@providers
end
|