Modificação de texto dentro de nós html - nokogiri

Digamos que eu tenho o seguinte HTML:

<ul><li>Bullet 1.</li>
<li>Bullet 2.</li>
<li>Bullet 3.</li>
<li>Bullet 4.</li>
<li>Bullet 5.</li></ul>

O que eu desejo fazer com isso é substituir quaisquer pontos, pontos de interrogação ou pontos de exclamação por ele mesmo e um asterisco à direita, que esteja dentro de um nó HTML, e depois converter novamente em HTML. Portanto, o resultado seria:

<ul><li>Bullet 1.*</li>
<li>Bullet 2.*</li>
<li>Bullet 3.*</li>
<li>Bullet 4.*</li>
<li>Bullet 5.*</li></ul>

Estou mexendo um pouco com isso no IRB, mas não consigo entender direito. aqui está o código que tenho:

 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}*") }

A matriz que volta é analisada corretamente, mas não tenho certeza de como convertê-la novamente em HTML. Existe outro método que eu possa usar para modificar o texto interno como ta

questionAnswers(2)

yourAnswerToTheQuestion