class PhaseShift::Builder
Create a pipeline by building up stages
Attributes
stages[R]
Public Class Methods
new(default_stage = nil, &block)
click to toggle source
# File lib/phase_shift/builder.rb, line 12 def initialize(default_stage = nil, &block) @default_stage = default_stage || proc { [] } @stages = [] instance_eval(&block) if block_given? end
parse_file(config, file = '(phase_shift)')
click to toggle source
# File lib/phase_shift/builder.rb, line 6 def self.parse_file(config, file = '(phase_shift)') builder_script = ::File.read(config) code = "PhaseShift::Builder.new {\n" + builder_script + "\n}.pipeline" eval code, TOPLEVEL_BINDING, file, 0 end
Public Instance Methods
pipeline()
click to toggle source
# File lib/phase_shift/builder.rb, line 22 def pipeline stages.inject(@default_stage) { |a, e| e[a] } end
run()
click to toggle source
# File lib/phase_shift/builder.rb, line 26 def run pipeline.call end
use(stage, *args)
click to toggle source
# File lib/phase_shift/builder.rb, line 18 def use(stage, *args) @stages << proc { |pipeline| stage.new(pipeline, *args) } end