class Nokogiri::HTML4::DocumentFragment

def initialize(document, tags = nil, ctx = nil, options = XML::ParseOptions::DEFAULT_HTML) # rubocop:disable Lint/MissingSuper

rubocop:disable Lint/MissingSuper
def initialize(document, tags = nil, ctx = nil, options = XML::ParseOptions::DEFAULT_HTML) # rubocop:disable Lint/MissingSuper
  return self unless tags
  options = Nokogiri::XML::ParseOptions.new(options) if Integer === options
  yield options if block_given?
  if ctx
    preexisting_errors = document.errors.dup
    node_set = ctx.parse("<div>#{tags}</div>", options)
    node_set.first.children.each { |child| child.parent = self } unless node_set.empty?
    self.errors = document.errors - preexisting_errors
  else
    # This is a horrible hack, but I don't care
    path = if /^\s*?<body/i.match?(tags)
      "/html/body"
    else
      "/html/body/node()"
    end
    temp_doc = HTML4::Document.parse("<html><body>#{tags}", nil, document.encoding, options)
    temp_doc.xpath(path).each { |child| child.parent = self }
    self.errors = temp_doc.errors
  end
  children
end