diff options
author | Nobuyoshi Nakada <[email protected]> | 2022-11-25 10:03:51 +0900 |
---|---|---|
committer | git <[email protected]> | 2022-11-25 01:03:57 +0000 |
commit | c6330cd32b7d02b4603080a2c53d64be9e05773c () | |
tree | b75deec779274891f9ae99015a1dfc8bf71b0214 | |
parent | 1a47521c4459fd61384c51ee58bc422ec69310d6 (diff) |
[ruby/fileutils] [Feature #18925] Add `ln_sr` method and `relative:` option to `ln_s`
https://.com/ruby/fileutils/commit/5116088d5c
-rw-r--r-- | lib/fileutils.rb | 105 | ||||
-rw-r--r-- | test/fileutils/test_fileutils.rb | 37 |
2 files changed, 138 insertions, 4 deletions
@@ -36,6 +36,7 @@ end # - ::ln, ::link: Creates hard links. # - ::ln_s, ::symlink: Creates symbolic links. # - ::ln_sf: Creates symbolic links, overwriting if necessary. # # === Deleting # @@ -690,6 +691,7 @@ module FileUtils # Keyword arguments: # # - <tt>force: true</tt> - overwrites +dest+ if it exists. # - <tt>noop: true</tt> - does not create links. # - <tt>verbose: true</tt> - prints an equivalent command: # @@ -709,7 +711,10 @@ module FileUtils # # Related: FileUtils.ln_sf. # - def ln_s(src, dest, force: nil, noop: nil, verbose: nil) fu_output_message "ln -s#{force ? 'f' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest0(src, dest) do |s,d| @@ -729,6 +734,48 @@ module FileUtils end module_function :ln_sf # Creates {hard links}[https://en.wikipedia.org/wiki/Hard_link]; returns +nil+. # # Arguments +src+ and +dest+ @@ -2436,15 +2483,15 @@ module FileUtils end private_module_function :fu_each_src_dest - def fu_each_src_dest0(src, dest) #:nodoc: if tmp = Array.try_convert(src) tmp.each do |s| s = File.path(s) - yield s, File.join(dest, File.basename(s)) end else src = File.path(src) - if File.directory?(dest) yield src, File.join(dest, File.basename(src)) else yield src, File.path(dest) @@ -2468,6 +2515,56 @@ module FileUtils end private_module_function :fu_output_message # This hash table holds command options. OPT_TABLE = {} #:nodoc: (private_instance_methods & methods(false)).inject(OPT_TABLE) {|tbl, name| @@ -1002,6 +1002,43 @@ class TestFileUtils < Test::Unit::TestCase } end if have_symlink? def test_mkdir check_singleton :mkdir |