Modificación de texto dentro de nodos html - nokogiri
Digamos que tengo el siguiente HTML:
<ul><li>Bullet 1.</li>
<li>Bullet 2.</li>
<li>Bullet 3.</li>
<li>Bullet 4.</li>
<li>Bullet 5.</li></ul>
Lo que deseo hacer con él es reemplazar cualquier punto, signo de interrogación o signo de exclamación consigo mismo y un asterisco final, que está dentro de un nodo HTML, luego convertirlo nuevamente a HTML. Entonces el resultado sería:
<ul><li>Bullet 1.*</li>
<li>Bullet 2.*</li>
<li>Bullet 3.*</li>
<li>Bullet 4.*</li>
<li>Bullet 5.*</li></ul>
He estado jugando un poco con esto en IRB, pero no puedo entenderlo. Aquí está el código que tengo:
html = "<ul><li>Bullet 1.</li>
<li>Bullet 2.</li>
<li>Bullet 3.</li>
<li>Bullet 4.</li>
<li>Bullet 5.</li></ul>"
doc = Nokogiri::HTML::DocumentFragment.parse(html)
doc.search("*").map { |n| n.inner_text.gsub(/(?<=[.!?])(?!\*)/, "#{$1}*") }
La matriz que regresa se analiza correctamente, pero no estoy seguro de cómo volver a convertirla en HTML. ¿Hay algún otro método que pueda usar para modificar el texto interno como tal?