diff options
author | ayumin <ayumin@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-06-03 14:20:15 +0000 |
---|---|---|
committer | ayumin <ayumin@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-06-03 14:20:15 +0000 |
commit | cef3f2ebd45c10823a60a70448b8400accbdaf38 (patch) | |
tree | 8799f66bfc97956b8b13f474dbef61b67321b5cd /lib/fileutils.rb | |
parent | 482f0e6b97330a1321bccdc5c80b988b5068a5b8 (diff) |
* lib/fileutils.rb: fix behavior when mkdir/mkdir_p accepted "/".
* test/fileutils/test_fileutils.rb: add test for above change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41047 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/fileutils.rb')
-rw-r--r-- | lib/fileutils.rb | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/fileutils.rb b/lib/fileutils.rb index 8daf923c78..7f14f138d9 100644 --- a/lib/fileutils.rb +++ b/lib/fileutils.rb @@ -154,6 +154,11 @@ module FileUtils end module_function :uptodate? + def remove_tailing_slash(dir) + dir == '/' ? dir : dir.chomp(?/) + end + private_module_function :remove_tailing_slash + # # Options: mode noop verbose # @@ -200,7 +205,7 @@ module FileUtils fu_output_message "mkdir -p #{options[:mode] ? ('-m %03o ' % options[:mode]) : ''}#{list.join ' '}" if options[:verbose] return *list if options[:noop] - list.map {|path| path.chomp(?/) }.each do |path| + list.map {|path| remove_tailing_slash(path)}.each do |path| # optimize for the most common case begin fu_mkdir path, options[:mode] @@ -237,7 +242,7 @@ module FileUtils OPT_TABLE['makedirs'] = [:mode, :noop, :verbose] def fu_mkdir(path, mode) #:nodoc: - path = path.chomp(?/) + path = remove_tailing_slash(path) if mode Dir.mkdir path, mode File.chmod mode, path |