module AsciiTree::Scanner

Public Class Methods

scan(string) click to toggle source
# File lib/ascii_tree/scanner.rb, line 4
def scan(string)
  Enumerator.new do |yielder|
    indexed_lines(string).each do |line, y|
      indexed_chars(line).each do |char, x|
        yielder.yield [char, Coordinate.new(x: x, y: y)]
      end
    end
  end
end

Private Class Methods

chars(line) click to toggle source
# File lib/ascii_tree/scanner.rb, line 28
def chars(line)
  line.split("")
end
indexed_chars(line) click to toggle source
# File lib/ascii_tree/scanner.rb, line 24
def indexed_chars(line)
  chars(line).each_with_index.to_a
end
indexed_lines(string) click to toggle source
# File lib/ascii_tree/scanner.rb, line 16
def indexed_lines(string)
  lines(string).each.with_index.to_a
end
lines(string) click to toggle source
# File lib/ascii_tree/scanner.rb, line 20
def lines(string)
  string.split("\n")
end