class Nokogiri::HTML4::DocumentFragment
Experimental RBS support (using type sampling data from the type_fusion
project).
# sig/nokogiri/html4/document_fragment.rbs class Nokogiri::HTML4::DocumentFragment < Nokogiri::HTML4::Nokogiri::XML::DocumentFragment def self.parse: (String tags, ?String encoding, ?Integer options, ) -> Nokogiri::HTML4::DocumentFragment end
def self.parse(tags, encoding = nil, options = XML::ParseOptions::DEFAULT_HTML, &block)
Experimental RBS support (using type sampling data from the type_fusion
project).
def self.parse: (String tags, ?String encoding, ?Integer options, ) -> Nokogiri::HTML4::DocumentFragment
This signature was generated using 1 sample from 1 application.
###
def self.parse(tags, encoding = nil, options = XML::ParseOptions::DEFAULT_HTML, &block) doc = HTML4::Document.new encoding ||= if tags.respond_to?(:encoding) encoding = tags.encoding if encoding == ::Encoding::ASCII_8BIT "UTF-8" else encoding.name end else "UTF-8" end doc.encoding = encoding new(doc, tags, nil, options, &block) end
def initialize(document, tags = nil, ctx = nil, options = XML::ParseOptions::DEFAULT_HTML) # 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