diff --git a/lib/fileutils.rb b/lib/fileutils.rb index 1f38419..29be150 100644 --- a/lib/fileutils.rb +++ b/lib/fileutils.rb @@ -1491,7 +1491,8 @@ def remove_file(path, force = false) # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting]. # def remove_dir(path, force = false) - remove_entry path, force # FIXME?? check if it is a directory + raise Errno::ENOTDIR, path unless File.directory?(path) + remove_entry path, force end module_function :remove_dir diff --git a/test/fileutils/test_fileutils.rb b/test/fileutils/test_fileutils.rb index 1d7be69..95f3359 100644 --- a/test/fileutils/test_fileutils.rb +++ b/test/fileutils/test_fileutils.rb @@ -1763,6 +1763,14 @@ def test_remove_dir_file_perm assert_file_not_exist 'data/tmpdir' end if have_file_perm? + def test_remove_dir_with_file + File.write('data/tmpfile', 'dummy') + assert_raise(Errno::ENOTDIR) { remove_dir 'data/tmpfile' } + assert_file_exist 'data/tmpfile' + ensure + File.unlink('data/tmpfile') if File.exist?('data/tmpfile') + end + def test_compare_file check_singleton :compare_file # FIXME