Sha256: e48b5621f210e582882f094a0517bb06dfc5ed6fab8bcd34424873894b206a59

Contents?: true

Size: 1.92 KB

Versions: 26

Compression:

Stored size: 1.92 KB

Contents

module Nokogiri
  module XML
    class DocumentFragment < Nokogiri::XML::Node
      ##
      #  Create a new DocumentFragment from +tags+.
      #
      #  If +ctx+ is present, it is used as a context node for the
      #  subtree created, e.g., namespaces will be resolved relative
      #  to +ctx+.
      def initialize document, tags = nil, ctx = nil
        return self unless tags

        children = if ctx
                     ctx.parse(tags)
                   else
                     XML::Document.parse("<root>#{tags}</root>") \
                       .xpath("/root/node()")
                   end
        children.each { |child| child.parent = self }
      end

      ###
      # return the name for DocumentFragment
      def name
        '#document-fragment'
      end

      ###
      # Convert this DocumentFragment to a string
      def to_s
        children.to_s
      end

      ###
      # Convert this DocumentFragment to html
      # See Nokogiri::XML::NodeSet#to_html
      def to_html *args
        children.to_html(*args)
      end

      ###
      # Convert this DocumentFragment to xhtml
      # See Nokogiri::XML::NodeSet#to_xhtml
      def to_xhtml *args
        children.to_xhtml(*args)
      end

      ###
      # Convert this DocumentFragment to xml
      # See Nokogiri::XML::NodeSet#to_xml
      def to_xml *args
        children.to_xml(*args)
      end

      ###
      # Search this fragment.  See Nokogiri::XML::Node#css
      def css *args
        if children.any?
          children.css(*args)
        else
          NodeSet.new(document)
        end
      end

      alias :serialize :to_s

      class << self
        ####
        # Create a Nokogiri::XML::DocumentFragment from +tags+
        def parse tags
          self.new(XML::Document.new, tags)
        end
      end

      private

      def coerce data
        return super unless String === data

        document.fragment(data).children
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 4 rubygems

Version Path
domo-0.0.4 vendor/bundle/ruby/1.9.1/gems/nokogiri-1.4.4/lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.7-java lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.7-x86-mingw32 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.7-x86-mswin32-60 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.7 lib/nokogiri/xml/document_fragment.rb
search_biomodel-1.0.0 search_biomodel/ruby/1.8/gems/nokogiri-1.4.6/lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.6 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.6-java lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.6-x86-mingw32 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.6-x86-mswin32-60 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.5-java lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.5 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.5-x86-mswin32-60 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.5-x86-mingw32 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.5.0.beta.4 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.5.0.beta.4-java lib/nokogiri/xml/document_fragment.rb
nokogiri-backupify-1.5.0.beta.4 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.5.0.beta.3-java lib/nokogiri/xml/document_fragment.rb
nokogiri-1.5.0.beta.3 lib/nokogiri/xml/document_fragment.rb
nokogiri-1.4.4.2-java lib/nokogiri/xml/document_fragment.rb