Class: Sevgi::Graphics::Content::CData

Inherits:
Content
  • Object
show all
Defined in:
lib/sevgi/graphics/auxiliary/content.rb

Overview

CDATA section content backed by an immutable payload snapshot. Mutable leaf objects are stringified during construction; embedded terminators are split during rendering.

See Also:

Instance Method Summary collapse

Instance Method Details

#render(renderer, depth) ⇒ Object

Renders CDATA content. Embedded ]]> terminators are split across adjacent CDATA sections so the output remains valid XML.

Parameters:

  • renderer (#append)

    rendering output collaborator

  • depth (Integer)

    current render depth

Returns:

  • (Object)

    ignored by the rendering engine



196
197
198
199
200
201
202
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 196

def render(renderer, depth)
  depth += 1

  renderer.append(depth, "<![CDATA[")
  renderer.append(depth + 1, *Array(payload).map { safe(it) })
  renderer.append(depth, "]]>")
end