Sha256: 556a71e2f3595f8dd1e15dcc3f749ea019bbbaea7a5e3bdcbe9bc95e56d1172d

Contents?: true

Size: 580 Bytes

Versions: 7

Compression:

Stored size: 580 Bytes

Contents

module Vedeu

  module Renderers

    # Renders a {Vedeu::VirtualBuffer} or {Vedeu::Output} as JSON.
    #
    # @api private
    class JSON < Vedeu::Renderers::File

      private

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

        ::JSON.pretty_generate(as_hash)
      end

      # @return [Array]
      def as_hash
        sorted.map(&:to_hash)
      end

      # @return [Array]
      def sorted
        Array(output).flatten.sort { |a, b| a.position <=> b.position }
      end

    end # JSON

  end # Renderers

end # Vedeu

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
vedeu-0.4.50 lib/vedeu/output/renderers/json.rb
vedeu-0.4.49 lib/vedeu/output/renderers/json.rb
vedeu-0.4.48 lib/vedeu/output/renderers/json.rb
vedeu-0.4.47 lib/vedeu/output/renderers/json.rb
vedeu-0.4.46 lib/vedeu/output/renderers/json.rb
vedeu-0.4.45 lib/vedeu/output/renderers/json.rb
vedeu-0.4.44 lib/vedeu/output/renderers/json.rb