method
route_from_path
v1_9_1_378 -
Show latest stable
- Class:
URI::Generic
route_from_path(src, dst)private
No documentation available.
# File lib/uri/generic.rb, line 806
def route_from_path(src, dst)
# RFC2396, Section 4.2
return '' if src == dst
src_path = split_path(src)
dst_path = split_path(dst)
# hmm... dst has abnormal absolute path,
# like "/./", "/../", "/x/../", ...
if dst_path.include?('..') ||
dst_path.include?('.')
return dst.dup
end
src_path.pop
# discard same parts
while dst_path.first == src_path.first
break if dst_path.empty?
src_path.shift
dst_path.shift
end
tmp = dst_path.join('/')
# calculate
if src_path.empty?
if tmp.empty?
return './'
elsif dst_path.first.include?(':') # (see RFC2396 Section 5)
return './' + tmp
else
return tmp
end
end
return '../' * src_path.size + tmp
end