class RichTextRenderer::TextRenderer

Renderer for Text nodes.

Public Instance Methods

render(node) click to toggle source

Renders text nodes with all markings.

# File lib/rich_text_renderer/text_renderers/text_renderer.rb, line 7
def render(node)
  node = Marshal.load(Marshal.dump(node)) # Clone the node

  node['value'] = CGI.escapeHTML(node['value'])

  node.fetch('marks', []).each do |mark|
    renderer = mappings[mark['type']]
    return mappings[nil].new(mappings).render(mark) if renderer.nil? && mappings.key?(nil)
    node['value'] = renderer.new(mappings).render(node) unless renderer.nil?
  end

  node['value']
end