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



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

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

#__js_get__(_key) ⇒ Object



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

def __js_get__(_key)
  nil
end

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



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

def serialize_to_string(node)
  return "" unless node

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