class Kameleon::Macrostep
Attributes
Public Class Methods
Source
# File lib/kameleon/step.rb, line 177 def initialize(name, microsteps, variables, path) @name = name @variables = variables @path = path @microsteps = microsteps @clean_microsteps = [] @init_microsteps = [] end
Public Instance Methods
Source
# File lib/kameleon/step.rb, line 186 def resolve_variables!(global, recipe) # Resolve dynamically-defined variables !! tmp_resolved_vars = {} @variables.clone.each do |key, value| yaml_vars = { key => value }.to_yaml.chomp yaml_resolved = Utils.resolve_vars(yaml_vars, @path, tmp_resolved_vars.merge(global), recipe) tmp_resolved_vars.merge! YAML.unsafe_load(yaml_resolved.chomp) end @variables.merge! tmp_resolved_vars @microsteps.each do |m| m.commands.each do |cmd| cmd.string_cmd = Utils.resolve_vars(cmd.string_cmd, @path, global.merge(@variables), recipe) end end end
Source
# File lib/kameleon/step.rb, line 208 def sequence @init_microsteps.each { |m| yield m } @microsteps.each { |m| yield m } @clean_microsteps.each { |m| yield m } end
Source
# File lib/kameleon/step.rb, line 214 def to_array macrostep_array = [] @variables.each do |k, v| macrostep_array.push({ k => v }) end sequence do |microstep| macrostep_array.push({ microstep.name => microstep.to_array }) end return macrostep_array end