class Bricolage::Script
Public Class Methods
new()
click to toggle source
# File lib/bricolage/script.rb, line 9 def initialize @tasks = [] @in_task_block = false end
Public Instance Methods
bind(ctx, vars)
click to toggle source
# File lib/bricolage/script.rb, line 27 def bind(ctx, vars) raise "[BUG] unresolved variables given" unless vars.resolved? @tasks.each do |task| task.bind(ctx, vars) end end
run()
click to toggle source
# File lib/bricolage/script.rb, line 44 def run result = nil @tasks.each do |task| result = task.run end result || JobResult.success end
run_explain()
click to toggle source
# File lib/bricolage/script.rb, line 52 def run_explain @tasks.each do |task| if task.respond_to?(:run_explain) task.run_explain else puts "-- task #{task.class} does not support explain; show source" puts task.source end end end
source()
click to toggle source
# File lib/bricolage/script.rb, line 34 def source buf = StringIO.new first = true @tasks.each do |task| buf.puts unless first; first = false buf.puts task.source end buf.string end
task(ds) { |task| ... }
click to toggle source
# File lib/bricolage/script.rb, line 14 def task(ds) raise FatalError, "nested task is not supported" if @in_task_block raise ParameterError, "no data source" unless ds @in_task_block = true begin task = ds.new_task yield task @tasks.push task ensure @in_task_block = false end end