HTML テキストを解析し、空の段落をトリミング (または削除) する次のコードがあります。.strip
String オブジェクトの場合と同様です。
doc = Nokogiri::HTML::DocumentFragment.parse(html)
# repetition that I want to collapse
doc.css('p').each do |p|
if all_children_are_blank?(p)
p.remove
else
break
end
end
# repetition that I want to collapse
doc.css('p').reverse_each do |p|
if all_children_are_blank?(p)
p.remove
else
break
end
end
doc.to_s.strip
コメントでラベルを付けたコードが重複するのを防ぎ、コード再利用の原則に従うより洗練された方法はありますか?
これが私が思いついたものですが、まだ満足していません。もっと良いものがあるかどうかを確認したかったのです。
doc = Nokogiri::HTML::DocumentFragment.parse(html)
doc.css('p').each do |p|
if stop(p) then break end
end
doc.css('p').reverse_each do |p|
if stop(p) then break end
end
doc.to_s.strip
def self.stop(p)
if all_children_are_blank?(p)
p.remove
false
else
true
end
end