Sha256: af96b63d51200096166ffeeaef58215e2c5d7313236e7cb87bc827ecc5402ec1

Contents?: true

Size: 773 Bytes

Versions: 15

Compression:

Stored size: 773 Bytes

Contents

# frozen_string_literal: true

module Vedeu

  module Renderers

    # Renders a {Vedeu::Buffers::Terminal} as JSON.
    #
    class JSON < Vedeu::Renderers::File

      include Vedeu::Renderers::Options

      # Render a cleared output.
      #
      # @return [Hash]
      def clear
        render({})
      end

      private

      # @return [Array]
      def as_hash
        output.content.map(&:to_h)
      end

      # @return [String]
      def content
        if hash?(output)
          ::JSON.pretty_generate(output)

        else
          Vedeu.log(type:    :render,
                    message: "#{self.class.name}#content: #{output.class.name}")

          ::JSON.pretty_generate(as_hash)
        end
      end

    end # JSON

  end # Renderers

end # Vedeu

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
vedeu-0.8.23 lib/vedeu/renderers/json.rb
vedeu-0.8.22 lib/vedeu/renderers/json.rb
vedeu-0.8.21 lib/vedeu/renderers/json.rb
vedeu-0.8.20 lib/vedeu/renderers/json.rb
vedeu-0.8.19 lib/vedeu/renderers/json.rb
vedeu-0.8.18 lib/vedeu/renderers/json.rb
vedeu-0.8.17 lib/vedeu/renderers/json.rb
vedeu-0.8.16 lib/vedeu/renderers/json.rb
vedeu-0.8.15 lib/vedeu/renderers/json.rb
vedeu-0.8.14 lib/vedeu/renderers/json.rb
vedeu-0.8.13 lib/vedeu/renderers/json.rb
vedeu-0.8.12 lib/vedeu/renderers/json.rb
vedeu-0.8.10 lib/vedeu/renderers/json.rb
vedeu-0.8.9 lib/vedeu/renderers/json.rb
vedeu-0.8.8 lib/vedeu/renderers/json.rb