# frozen_string_literal: true module Loofah module HTML # :nodoc: # # Subclass of Nokogiri::HTML::DocumentFragment. # # See Loofah::ScrubBehavior and Loofah::TextBehavior for additional methods. # class DocumentFragment < Nokogiri::HTML::DocumentFragment include Loofah::TextBehavior class << self # # Overridden Nokogiri::HTML::DocumentFragment # constructor. Applications should use Loofah.fragment to # parse a fragment. # def parse(tags, encoding = nil) doc = Loofah::HTML::Document.new encoding ||= tags.respond_to?(:encoding) ? tags.encoding.name : "UTF-8" doc.encoding = encoding new(doc, tags) end end # # Returns the HTML markup contained by the fragment # def to_s serialize_root.children.to_s end alias :serialize :to_s def serialize_root at_xpath("./body") || self end end end end