class Takeoff::Plan::Base
Public Class Methods
build_plan(name, &block)
click to toggle source
# File lib/takeoff/plan/base.rb, line 10 def build_plan(name, &block) plan = Class.new(self, &block) Plan.const_set(name.to_s.camelize, plan) end
env()
click to toggle source
# File lib/takeoff/plan/base.rb, line 23 def env @env ||= default_env end
launch(env = {})
click to toggle source
# File lib/takeoff/plan/base.rb, line 27 def launch(env = {}) new.launch(env) end
stages(&block)
click to toggle source
# File lib/takeoff/plan/base.rb, line 15 def stages(&block) @stages ||= default_stages @stages.instance_eval(&block) if block @stages end
Private Class Methods
base?()
click to toggle source
# File lib/takeoff/plan/base.rb, line 32 def base? self.superclass == ::Object end
default_env()
click to toggle source
# File lib/takeoff/plan/base.rb, line 45 def default_env env = if base? {} else self.superclass.env.dup end env.merge!(plan: self) end
default_stages()
click to toggle source
# File lib/takeoff/plan/base.rb, line 36 def default_stages if base? Middleware::Builder.new else parent_stages = self.superclass.stages Middleware::Builder.new { use parent_stages } end end
Public Instance Methods
launch(env = {})
click to toggle source
# File lib/takeoff/plan/base.rb, line 56 def launch(env = {}) env = self.class.env.merge(env) self.class.stages.call(env) end