Class: SyntaxSuggest::UnvisitedLines
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/syntax_suggest/unvisited_lines.rb |
Overview
Tracks which lines various code blocks have expanded to and which are still unexplored
Class Method Summary
- .new(code_lines:) ⇒ UnvisitedLines constructor
Instance Attribute Summary
- #empty? ⇒ Boolean readonly
Instance Method Summary
Constructor Details
.new(code_lines:) ⇒ UnvisitedLines
# File 'lib/syntax_suggest/unvisited_lines.rb', line 7
def initialize(code_lines:) @unvisited = code_lines.sort_by(&:indent_index) @visited_lines = {} @visited_lines.compare_by_identity end
Instance Attribute Details
#empty? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/syntax_suggest/unvisited_lines.rb', line 13
def empty? @unvisited.empty? end
Instance Method Details
#peek
[ GitHub ]# File 'lib/syntax_suggest/unvisited_lines.rb', line 17
def peek @unvisited.last end
#pop
[ GitHub ]# File 'lib/syntax_suggest/unvisited_lines.rb', line 21
def pop @unvisited.pop end
#visit_block(block)
[ GitHub ]# File 'lib/syntax_suggest/unvisited_lines.rb', line 25
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