class Coltrane::Renderers::TextRenderer::ArrayDrawer

Public Instance Methods

render() click to toggle source
# File lib/coltrane/renderers/text_renderer/array_drawer.rb, line 7
def render
  public_send("render_#{layout}")
end
render_horizontal() click to toggle source
# File lib/coltrane/renderers/text_renderer/array_drawer.rb, line 19
def render_horizontal
  array
  .each_slice(per_row)
  .map { |row|
    row
    .map { |element|
      TextRenderer.render(element, **options)
      .split("\n")
      .yield_self { |lines|
        lines
        .map { |l| l.gsub(/\e\[(\d+)(;\d+)*m/, '').size }
        .max
        .yield_self { |column_w|
          lines
          .map { |l| l.ljust(column_w) }
          .+([' ' * column_w])
        }
      }
    }
    .transpose
    .map(&:join)
  }.join("\n")
end
render_vertical() click to toggle source
# File lib/coltrane/renderers/text_renderer/array_drawer.rb, line 15
def render_vertical
  renders.join("\n")
end
renders() click to toggle source
# File lib/coltrane/renderers/text_renderer/array_drawer.rb, line 11
def renders
  @renders ||= array.map {|it| TextRenderer.render(it, **options) }
end