Module: Datafusion
- Defined in:
- lib/datafusion.rb,
lib/datafusion/version.rb,
lib/datafusion/db_executor.rb,
lib/datafusion/integrations.rb,
lib/datafusion/debug_executor.rb,
lib/datafusion/snippet_renderer.rb
Defined Under Namespace
Classes: DbExecutor, DebugExecutor, Integrations, SnippetRenderer
Constant Summary
collapse
- VERSION =
"0.0.3"
Class Method Summary
collapse
Class Method Details
.fuse(pguser, file) ⇒ Object
20
21
22
23
24
25
26
27
28
|
# File 'lib/datafusion.rb', line 20
def self.fuse(pguser, file)
integs = Integrations.load(file)
out = ""
integs.each do |k, v|
erb = SnippetRenderer.new(v["kind"], v.merge({"user" => pguser, "name" => k}))
out += erb.render()
end
out
end
|
.log ⇒ Object
11
12
13
14
|
# File 'lib/datafusion.rb', line 11
def self.log
@log ||= Logger.new(STDOUT)
@log
end
|
.log=(logger) ⇒ Object
16
17
18
|
# File 'lib/datafusion.rb', line 16
def self.log=(logger)
@log = logger
end
|
.refresh(file, executor) ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/datafusion.rb', line 30
def self.refresh(file, executor)
integs = Integrations.load(file)
schedules = integs.map do |k, v|
v["tables"].map{|t| t["cached"] }.compact
end.flatten
Datafusion.log.info("Discovered #{schedules.size} schedule(s).")
scheduler = Rufus::Scheduler.new
schedules.each do |schedule|
scheduler.every(schedule["refresh"]) do
executor.exec(schedule)
end
end
scheduler
end
|