File: //usr/local/rvm/gems/ruby-2.6.8/gems/loofah-2.12.0/lib/loofah/html/document_fragment.rb
# 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