Sha256: 6416ff0881e1072e94f8407d83e155b00454faed50802f25424972805b3e2016

Contents?: true

Size: 908 Bytes

Versions: 4

Compression:

Stored size: 908 Bytes

Contents

module Vedeu

  # Converts a grid of {Vedeu::Char} objects into a stream of escape sequences
  # and content suitable for a terminal, and writes them to a file in the /tmp
  # directory.
  #
  class FileRenderer

    # @param output [Array<Array<Vedeu::Char>>]
    # @return [String]
    def self.render(*output)
      new(*output).render
    end

    # Returns a new instance of Vedeu::FileRenderer.
    #
    # @param output [Array<Array<Vedeu::Char>>]
    # @return [Vedeu::FileRenderer]
    def initialize(*output)
      @output  = output
    end

    # @return [String]
    def render
      File.open("/tmp/out_#{Time.now.to_f}", 'w') { |f| f.write(parsed) }
    end

    private

    # @!attribute [r] output
    # @return [Array<Array<Vedeu::Char>>]
    attr_reader :output

    # @return [String]
    def parsed
      Array(output).flatten.map(&:to_s).join
    end

  end # FileRenderer

end # Vedeu

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vedeu-0.4.13 lib/vedeu/output/renderers/file_renderer.rb
vedeu-0.4.12 lib/vedeu/output/renderers/file_renderer.rb
vedeu-0.4.11 lib/vedeu/output/renderers/file_renderer.rb
vedeu-0.4.10 lib/vedeu/output/renderers/file_renderer.rb