class Orchestra::RunList
Attributes
result[R]
Public Class Methods
build(steps, result, input_names)
click to toggle source
# File lib/orchestra/run_list.rb, line 3 def self.build steps, result, input_names builder = Builder.new result, input_names builder.merge! steps builder.build end
new(steps, result)
click to toggle source
# File lib/orchestra/run_list.rb, line 13 def initialize steps, result @result = result @steps = steps @steps.freeze freeze end
Public Instance Methods
dependencies()
click to toggle source
# File lib/orchestra/run_list.rb, line 29 def dependencies optional = collect_from_steps :optional_dependencies required = collect_from_steps :required_dependencies (optional + required).uniq end
each(&block)
click to toggle source
# File lib/orchestra/run_list.rb, line 20 def each &block return to_enum :each unless block_given? @steps.each &block end
optional_dependencies()
click to toggle source
# File lib/orchestra/run_list.rb, line 35 def optional_dependencies collect_from_steps :optional_dependencies end
provisions()
click to toggle source
# File lib/orchestra/run_list.rb, line 39 def provisions collect_from_steps :provisions end
required_dependencies()
click to toggle source
# File lib/orchestra/run_list.rb, line 43 def required_dependencies required_deps = collect_from_steps :required_dependencies required_deps - optional_dependencies - provisions end
step_names()
click to toggle source
# File lib/orchestra/run_list.rb, line 25 def step_names @steps.keys end
Private Instance Methods
collect_from_steps(method_name)
click to toggle source
# File lib/orchestra/run_list.rb, line 50 def collect_from_steps method_name set = @steps.each_with_object Set.new do |(_, step), set| deps = step.public_send method_name deps.each &set.method(:<<) end set.to_a.tap &:sort! end