Module: Trevl::DataSource
- Defined in:
- lib/trevl/data_source.rb,
lib/trevl/data_source/api.rb,
lib/trevl/data_source/base.rb,
lib/trevl/data_source/cube.rb,
lib/trevl/data_source/static.rb
Defined Under Namespace
Classes: Api, Base, Cube, Static
Class Method Summary
collapse
Class Method Details
.all ⇒ Object
18
19
20
21
22
23
|
# File 'lib/trevl/data_source.rb', line 18
def all
registry.map do |name, source|
obj = source.is_a?(Class) ? source : source.class
{name: name, type: obj.name&.split("::")&.last || obj.to_s, source: source}
end
end
|
.for(name) ⇒ Object
10
11
12
13
14
15
16
|
# File 'lib/trevl/data_source.rb', line 10
def for(name, **)
key = name.to_s.strip.downcase
source = registry[key]
raise DataSourceError, "No data source registered for '#{name}'. Available: #{registry.keys.join(", ")}." unless source
source.is_a?(Class) ? source.new(**) : source
end
|
.names ⇒ Object
25
26
27
|
# File 'lib/trevl/data_source.rb', line 25
def names
registry.keys
end
|
.register(name, source) ⇒ Object
6
7
8
|
# File 'lib/trevl/data_source.rb', line 6
def register(name, source)
registry[name.to_s.strip.downcase] = source
end
|
.registry ⇒ Object
29
30
31
|
# File 'lib/trevl/data_source.rb', line 29
def registry
@registry ||= {}
end
|
.reset! ⇒ Object
33
34
35
|
# File 'lib/trevl/data_source.rb', line 33
def reset!
@registry = {}
end
|