Sha256: d6063d8e5c238a1e2b2aaca22bb0f4713b2766dfcc0b2631611c793694f1938a
Contents?: true
Size: 1.11 KB
Versions: 2
Compression:
Stored size: 1.11 KB
Contents
module Vedeu module Renderers # Renders a {Vedeu::VirtualBuffer} or {Vedeu::Output} as JSON. # class JSON < Vedeu::Renderers::File # Returns a new instance of Vedeu::Renderers::JSON. # # @param options [Hash] # @return [Vedeu::Renderers::JSON] def initialize(options = {}) @options = options || {} end # @param output [Array<Array<Vedeu::Views::Char>>] # @return [String] def render(output) super(parsed(output)) end private # @param output [Array<Array<Vedeu::Views::Char>>] # @return [String] def parsed(output) return '' if output.nil? || output.empty? ::JSON.pretty_generate(as_hash(output)) end # @param output [Array<Array<Vedeu::Views::Char>>] # @return [Array] def as_hash(output) sorted(output).map(&:to_hash) end # @param output [Array<Array<Vedeu::Views::Char>>] # @return [Array] def sorted(output) Array(output).flatten.sort { |a, b| a.position <=> b.position } end end # JSON end # Renderers end # Vedeu
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.5.6 | lib/vedeu/output/renderers/json.rb |
vedeu-0.5.5 | lib/vedeu/output/renderers/json.rb |