APIdock / Ruby
/
method

plus

ruby latest stable - Class: Pathname
plus(path1, path2)
private

No documentation available.

# File ext/pathname/lib/pathname.rb, line 356
 def plus(path1, path2) # -> path # :nodoc:
 prefix2 = path2
 index_list2 = []
 basename_list2 = []
 while r2 = chop_basename(prefix2)
 prefix2, basename2 = r2
 index_list2.unshift prefix2.length
 basename_list2.unshift basename2
 end
 return path2 if prefix2 != ''
 prefix1 = path1
 while true
 while !basename_list2.empty? && basename_list2.first == '.'
 index_list2.shift
 basename_list2.shift
 end
 break unless r1 = chop_basename(prefix1)
 prefix1, basename1 = r1
 next if basename1 == '.'
 if basename1 == '..' || basename_list2.empty? || basename_list2.first != '..'
 prefix1 = prefix1 + basename1
 break
 end
 index_list2.shift
 basename_list2.shift
 end
 r1 = chop_basename(prefix1)
 if !r1 && (r1 = /#{SEPARATOR_PAT}/ =~ File.basename(prefix1))
 while !basename_list2.empty? && basename_list2.first == '..'
 index_list2.shift
 basename_list2.shift
 end
 end
 if !basename_list2.empty?
 suffix2 = path2[index_list2.first..-1]
 r1 ? File.join(prefix1, suffix2) : prefix1 + suffix2
 else
 r1 ? prefix1 : File.dirname(prefix1)
 end
 end

AltStyle によって変換されたページ (->オリジナル) /