Pass around only pathname objects
This commit is contained in:
parent
3721e0be6f
commit
96f7a8015f
@ -37,9 +37,8 @@ class Pathname
|
||||
def install_p(src, new_basename)
|
||||
raise Errno::ENOENT, src.to_s unless File.symlink?(src) || File.exist?(src)
|
||||
|
||||
src = src.to_s
|
||||
dst = join(new_basename).to_s
|
||||
|
||||
src = Pathname(src)
|
||||
dst = join(new_basename)
|
||||
dst = yield(src, dst) if block_given?
|
||||
|
||||
mkpath
|
||||
@ -48,7 +47,7 @@ class Pathname
|
||||
# is a symlink, and its target is moved first, FileUtils.mv will fail:
|
||||
# https://bugs.ruby-lang.org/issues/7707
|
||||
# In that case, use the system "mv" command.
|
||||
if File.symlink? src
|
||||
if src.symlink?
|
||||
raise unless Kernel.system 'mv', src, dst
|
||||
else
|
||||
FileUtils.mv src, dst
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
module InstallRenamed
|
||||
def install_p(_, new_basename)
|
||||
super do |src, dst|
|
||||
if File.directory?(src)
|
||||
if src.directory?
|
||||
dst
|
||||
else
|
||||
append_default_if_different(src, dst)
|
||||
@ -25,10 +25,11 @@ module InstallRenamed
|
||||
|
||||
private
|
||||
|
||||
def append_default_if_different src, dst
|
||||
if File.file? dst and !FileUtils.identical?(src, dst)
|
||||
dst += ".default"
|
||||
def append_default_if_different(src, dst)
|
||||
if dst.file? && !FileUtils.identical?(src, dst)
|
||||
Pathname.new("#{dst}.default")
|
||||
else
|
||||
dst
|
||||
end
|
||||
dst
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user