class Orchestra::Step::InlineStep
Attributes
context_class[RW]
Public Class Methods
build(&block)
click to toggle source
# File lib/orchestra/step.rb, line 54 def self.build &block builder = DSL::Steps::Builder.new DSL::Steps::Context.evaluate builder, &block builder.build_step end
new(args = {})
click to toggle source
Calls superclass method
Orchestra::Step::new
# File lib/orchestra/step.rb, line 62 def initialize args = {} @defaults = args.delete :defaults do {} end @execute_block = args.fetch :execute_block args.delete :execute_block super args @context_class = build_execution_context_class validate! end
Public Instance Methods
apply_defaults(input)
click to toggle source
# File lib/orchestra/step.rb, line 91 def apply_defaults input defaults.each do |key, thunk| next if input.has_key? key input[key] = thunk.call end input end
build_context(input)
click to toggle source
# File lib/orchestra/step.rb, line 86 def build_context input state = apply_defaults input execution_context = context_class.new state, execute_block end
build_execution_context_class()
click to toggle source
# File lib/orchestra/step.rb, line 77 def build_execution_context_class context = Class.new InlineContext context.class_exec dependencies, collection do |deps, collection| deps.each do |dep| define_dependency dep end alias_method :fetch_collection, collection if collection end context end
optional_dependencies()
click to toggle source
# File lib/orchestra/step.rb, line 99 def optional_dependencies defaults.keys end
validate!()
click to toggle source
# File lib/orchestra/step.rb, line 71 def validate! unless execute_block raise ArgumentError, "expected inline step to define a execute block" end end