From 4cf828632f3e2411b4c141fb30b2edf4844351fa Mon Sep 17 00:00:00 2001 From: akr Date: Sun, 16 Dec 2018 12:26:52 +0000 Subject: Pathname#relative_path_from compatible with mock. [Fix GH-2049] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/pathname/lib/pathname.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'ext/pathname/lib/pathname.rb') 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) -- cgit v1.2.3