diff options
Diffstat (limited to 'ext/pathname/lib/pathname.rb')
-rw-r--r-- | ext/pathname/lib/pathname.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/pathname/lib/pathname.rb b/ext/pathname/lib/pathname.rb index 7fb923c6ae..383d47b52f 100644 --- a/ext/pathname/lib/pathname.rb +++ b/ext/pathname/lib/pathname.rb @@ -503,9 +503,13 @@ class Pathname # ArgumentError is raised when it cannot find a relative path. # def relative_path_from(base_directory) - base_directory = Pathname.new(base_directory) unless Pathname === base_directory dest_directory = self.cleanpath.to_s - base_directory = base_directory.cleanpath.to_s + base_directory = + if base_directory.respond_to? :cleanpath + base_directory + else + Pathname.new(base_directory) + end.cleanpath.to_s dest_prefix = dest_directory dest_names = [] while r = chop_basename(dest_prefix) |