lib/action_text/fragment.rb in actiontext-7.0.8.6 vs lib/action_text/fragment.rb in actiontext-7.1.0.beta1

- old
+ new

@@ -5,11 +5,11 @@ class << self def wrap(fragment_or_html) case fragment_or_html when self fragment_or_html - when Nokogiri::HTML::DocumentFragment + when Nokogiri::XML::DocumentFragment # base class for all fragments new(fragment_or_html) else from_html(fragment_or_html) end end @@ -28,17 +28,18 @@ def find_all(selector) source.css(selector) end def update - yield source = self.source.clone + yield source = self.source.dup self.class.new(source) end def replace(selector) update do |source| source.css(selector).each do |node| - node.replace(yield(node).to_s) + replacement_node = yield(node) + node.replace(replacement_node.to_s) if node != replacement_node end end end def to_plain_text