Class: RichTextRenderer::TextRenderer

Inherits:
BaseNodeRenderer show all
Defined in:
lib/rich_text_renderer/text_renderers/text_renderer.rb

Overview

Renderer for Text nodes.

Instance Attribute Summary

Attributes inherited from BaseNodeRenderer

#mappings

Instance Method Summary collapse

Methods inherited from BaseNodeRenderer

#initialize

Constructor Details

This class inherits a constructor from RichTextRenderer::BaseNodeRenderer

Instance Method Details

#render(node) ⇒ Object

Renders text nodes with all markings.



7
8
9
10
11
12
13
14
15
16
17
18
19
# 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