Class: Dommy::XMLSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/dommy/dom_parser.rb

Overview

‘XMLSerializer` — round-trip a node tree to a string. Used for XML output, SVG inlining, and “serialize this Element” patterns. For HTML, prefer `Element#outer_html` directly.

Instance Method Summary collapse

Instance Method Details

#__js_call__(method, args) ⇒ Object



81
82
83
84
85
86
# File 'lib/dommy/dom_parser.rb', line 81

def __js_call__(method, args)
  case method
  when "serializeToString"
    serialize_to_string(args[0])
  end
end

#__js_get__(_key) ⇒ Object



77
78
79
# File 'lib/dommy/dom_parser.rb', line 77

def __js_get__(_key)
  nil
end

#serialize_to_string(node) ⇒ Object Also known as: serializeToString



61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/dommy/dom_parser.rb', line 61

def serialize_to_string(node)
  return "" unless node

  if node.respond_to?(:outer_html)
    node.outer_html
  elsif node.respond_to?(:__node__)
    node.__node__.to_xml
  elsif node.respond_to?(:to_xml)
    node.to_xml
  else
    node.to_s
  end
end