Sha256: a2f0b01b4312e1cea15f81e62c53d4b7a7a4372468b0ef903a9d088f96bfe286
Contents?: true
Size: 1.15 KB
Versions: 5
Compression:
Stored size: 1.15 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 Text < Vedeu::Renderers::File include Vedeu::Renderers::Options 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 '' if string?(output) || absent?(output) buffer.map(&:join).join("\n").unpack('U*').map do |c| (c > 255) ? ' ' : c.chr end.join end # @return [Array<String>] def buffer empty = Array.new(Vedeu.height) { Array.new(Vedeu.width) { ' ' } } output.each do |row| row.each do |char| next unless positionable?(char) empty[char.position.y - 1][char.position.x - 1] = char.text end end empty end end # Text end # Renderers end # Vedeu
Version data entries
5 entries across 5 versions & 1 rubygems