Class: Legion::Provider
- Inherits:
-
Object
show all
- Defined in:
- lib/legion/provider.rb,
lib/legion/provider.rb
Defined Under Namespace
Modules: Registry
Classes: CyclicDependencyError, MissingDependencyError
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(mode: :full) ⇒ Provider
Returns a new instance of Provider.
39
40
41
|
# File 'lib/legion/provider.rb', line 39
def initialize(mode: :full)
@mode = mode
end
|
Instance Attribute Details
#mode ⇒ Object
Returns the value of attribute mode.
37
38
39
|
# File 'lib/legion/provider.rb', line 37
def mode
@mode
end
|
Class Method Details
.adapters(mapping = nil) ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/legion/provider.rb', line 28
def adapters(mapping = nil)
if mapping
@adapters = mapping
else
@adapters || {}
end
end
|
.depends_on(*deps) ⇒ Object
20
21
22
23
24
25
26
|
# File 'lib/legion/provider.rb', line 20
def depends_on(*deps)
if deps.any?
@depends_on = deps.map(&:to_sym)
else
@depends_on || []
end
end
|
.provides(name = nil) ⇒ Object
12
13
14
15
16
17
18
|
# File 'lib/legion/provider.rb', line 12
def provides(name = nil)
if name
@provides = name.to_sym
Registry.register(self)
end
@provides
end
|
Instance Method Details
#boot ⇒ Object
49
50
51
|
# File 'lib/legion/provider.rb', line 49
def boot
raise NotImplementedError, "#{self.class}#boot must be implemented"
end
|
#name ⇒ Object
57
58
59
|
# File 'lib/legion/provider.rb', line 57
def name
self.class.provides
end
|
#select_adapter(mode) ⇒ Object
43
44
45
46
47
|
# File 'lib/legion/provider.rb', line 43
def select_adapter(mode)
@mode = mode
adapter_path = self.class.adapters[mode]
require adapter_path if adapter_path
end
|
#shutdown ⇒ Object
53
54
55
|
# File 'lib/legion/provider.rb', line 53
def shutdown
end
|