module UniverseCompiler::Universe::Compile
Public Instance Methods
compile(scenario: nil)
click to toggle source
# File lib/universe_compiler/universe/compile.rb, line 8 def compile(scenario: nil) valid? raise_error: true UniverseCompiler.logger.info "Starting compilation of universe '#{name}'" # Pass 1 - Universe duplication target_universe = dup # Pass 2 - Applying entities inheritance target_universe.apply_entities_inheritance # Apply scenario target_universe.apply_entities_overrides scenario unless scenario.nil? UniverseCompiler.logger.info "Completed compilation of universe '#{name}' into '#{target_universe.name}'" target_universe end
Protected Instance Methods
apply_entities_inheritance()
click to toggle source
# File lib/universe_compiler/universe/compile.rb, line 35 def apply_entities_inheritance UniverseCompiler.logger.debug "Starting inheritance process for universe '#{name}'." entities.each(&:apply_inheritance) UniverseCompiler.logger.debug "Completed inheritance process for universe '#{name}'." self end
apply_entities_overrides(scenario)
click to toggle source
# File lib/universe_compiler/universe/compile.rb, line 26 def apply_entities_overrides(scenario) UniverseCompiler.logger.debug "Starting override process for universe '#{name}'." candidates = by_type.fetch(UniverseCompiler::Entity::Override.entity_type, []).select { |overrider| overrider.scenario == scenario } UniverseCompiler.logger.warn "No override found for scenario '#{scenario}' in universe '#{name}'." if candidates.empty? candidates.each(&:apply_overrides) UniverseCompiler.logger.debug "Completed override process for universe '#{name}'." self end