Class: XcodeArchiveCache::BuildGraph::RebuildEvaluator
- Inherits:
-
Object
- Object
- XcodeArchiveCache::BuildGraph::RebuildEvaluator
- Defined in:
- lib/build_graph/rebuild_evaluator.rb
Instance Method Summary collapse
- #evaluate_build_graph(graph) ⇒ Object
-
#initialize(cache_storage) ⇒ RebuildEvaluator
constructor
A new instance of RebuildEvaluator.
Constructor Details
#initialize(cache_storage) ⇒ RebuildEvaluator
Returns a new instance of RebuildEvaluator.
7 8 9 |
# File 'lib/build_graph/rebuild_evaluator.rb', line 7 def initialize(cache_storage) @cache_storage = cache_storage end |
Instance Method Details
#evaluate_build_graph(graph) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/build_graph/rebuild_evaluator.rb', line 13 def evaluate_build_graph(graph) return if graph.root_node.state != :unknown # DFS over graph, evaluating dependencies first # stack = [graph.root_node] while stack.length > 0 last_node = stack.last if last_node.state == :evaluating_dependencies # dependencies were evaluated, we're good to go evaluate(last_node) stack.delete_at(stack.length - 1) elsif last_node.state == :unknown last_node.state = :evaluating_dependencies stack += last_node.dependencies.select { |dependency| dependency.state == :unknown } else stack.delete_at(stack.length - 1) end end end |