class TTY::Tree::NumberRenderer

Render nodes as numbered list

Public Class Methods

new(nodes, options = {}) click to toggle source
# File lib/tty/tree/number_renderer.rb, line 7
def initialize(nodes, options = {})
  @indent = options.fetch(:indent, 4)
  @nodes = nodes
  @mark = ' ' * @indent
end

Public Instance Methods

render() click to toggle source
# File lib/tty/tree/number_renderer.rb, line 13
def render
  @nodes.each_with_index.reduce([]) do |acc, (node, i)|
    render_node(acc, node, i, @mark)
  end.join
end

Private Instance Methods

render_node(acc, node, i, mark) click to toggle source
# File lib/tty/tree/number_renderer.rb, line 21
def render_node(acc, node, i, mark)
  acc << node.prefix.gsub(/:pipe|:space/, mark)
  unless node.root?
    acc << "#{node.level}.#{i} "
  end
  acc << node.name.to_s + "\n"
end