def join(*names)
      joined_path = if root? then ''
                    else          self.to_s
                    end

      names.each do |name|
        name = name.to_s

        joined_path << @separator unless name.start_with?(@separator)
        joined_path << name       unless name == @separator
      end

      return self.class.new(joined_path,@separator)
    end
def join(*names)
      joined_path = if root? then ''
                    else          self.to_s
                    end

      names.each do |name|
        name = name.to_s

        joined_path << @separator unless name.start_with?(@separator)
        joined_path << name       unless name == @separator
      end

      return self.class.new(joined_path,@separator)
    end
Joins directory names together with the path, but does not resolve
 the resulting path.

 @param [Array] names
   The names to join together.

 @return [Path]
   The joined path.

 @example
   Path.up(7).join('etc/passwd')
   # => #<Ronin::Path:../../../../../../../etc/passwd>