# File lib/pathname2.rb, line 444
   def ascend
      if root?
         yield root
         return
      end
      
      n = to_a.length

      while n > 0
         path = to_a[0..n-1].join(@sep)
         if absolute?
            if @win && unc?
               path = "\\\\" << path
            end     
            unless @win
               path = root << path
            end
         end

         path = self.class.new(path)
         yield path
         
         if @win && unc?
            break if path.root?
         end
         
         n -= 1
      end

      # Yield the root directory if an absolute path (and not Windows)
      unless @win
         yield root if absolute?
      end
   end