Sha256: a3ba69f5a73cfbd7a27db274d77b1a5a2f212bc59453d280d50c0a56bdb66515

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

module Vedeu

  # Renders a {Vedeu::VirtualBuffer} or {Vedeu::Output} as JSON.
  #
  class JSONRenderer

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

    # @param output [Array<Array<Vedeu::Char>>]
    # @param path [String]
    # @return [String]
    # def self.to_file(output, path = nil)
    #   new(output).to_file(path)
    # end

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

    # @return [String]
    def render
      return '' if output.nil? || output.empty?

      out = ''
      Array(output).each do |line|
        out << ''
        line.each do |char|
          out << char.to_json
          out << "\n"
        end
        out << "\n"
      end
      out
    end

    private

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

  end # JSONRenderer

end # Vedeu

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vedeu-0.4.17 lib/vedeu/output/renderers/json_renderer.rb
vedeu-0.4.16 lib/vedeu/output/renderers/json_renderer.rb
vedeu-0.4.15 lib/vedeu/output/renderers/json_renderer.rb
vedeu-0.4.14 lib/vedeu/output/renderers/json_renderer.rb