Sha256: 0766f0c343c978f24ac8ff2ba4cd988acbd18acfc5e7085389099c83f15a87f3
Contents?: true
Size: 699 Bytes
Versions: 2
Compression:
Stored size: 699 Bytes
Contents
# frozen_string_literal: true module DeadEnd # Tracks which lines various code blocks have expanded to # and which are still unexplored class UnvisitedLines def initialize(code_lines:) @unvisited = code_lines.sort_by(&:indent_index) @visited_lines = {} @visited_lines.compare_by_identity end def empty? @unvisited.empty? end def peek @unvisited.last end def pop @unvisited.pop end def visit_block(block) block.lines.each do |line| next if @visited_lines[line] @visited_lines[line] = true end while @visited_lines[@unvisited.last] @unvisited.pop end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dead_end-4.0.0 | lib/dead_end/unvisited_lines.rb |
dead_end-3.1.2 | lib/dead_end/unvisited_lines.rb |