APIdock / Ruby
/
method

cleanpath_conservative

ruby latest stable - Class: Pathname
cleanpath_conservative()
private

No documentation available.

# File ext/pathname/lib/pathname.rb, line 156
 def cleanpath_conservative # :nodoc:
 path = @path
 names = []
 pre = path
 while r = chop_basename(pre)
 pre, base = r
 names.unshift base if base != '.'
 end
 pre.tr!(File::ALT_SEPARATOR, File::SEPARATOR) if File::ALT_SEPARATOR
 if /#{SEPARATOR_PAT}/ =~ File.basename(pre)
 names.shift while names[0] == '..'
 end
 if names.empty?
 self.class.new(File.dirname(pre))
 else
 if names.last != '..' && File.basename(path) == '.'
 names << '.'
 end
 result = prepend_prefix(pre, File.join(*names))
 if /\A(?:\.|\.\.)\z/ !~ names.last && has_trailing_separator?(path)
 self.class.new(add_trailing_separator(result))
 else
 self.class.new(result)
 end
 end
 end

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