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