Sha256: 7595d671cab705d87cddda631326413251e42aa6c7a8a326a30b990a603cc4d2
Contents?: true
Size: 1.23 KB
Versions: 5
Compression:
Stored size: 1.23 KB
Contents
# frozen_string_literal: true module Vedeu module Renderers # Converts a grid of {Vedeu::Cells} objects or # {Vedeu::Cells::Char} objects into a stream of characters without # escape sequences. # class Escape < Vedeu::Renderers::File include Vedeu::Renderers::Options # Render a cleared output. # # @return [String] def clear render('[[:clear]]') end private # Combine all characters in a row to produce a line, then all # lines should be terminated with `\n`. Convert to an array of # UTF8 codepoints, and any codepoint above 255 should be # converted to a space. # # @return [String] def content return '[[:empty]]' if string?(output) || absent?(output) buffer.map { |row| row.join("\n") }.join("\n\n") end # @return [Array<String>] def buffer empty = Array.new(Vedeu.height) { Array.new(Vedeu.width) { '[:cell]' } } output.each do |row| row.each do |char| next unless positionable?(char) empty[char.position.y - 1][char.position.x - 1] = char.to_ast end end empty end end # Escape end # Renderers end # Vedeu
Version data entries
5 entries across 5 versions & 1 rubygems