diff --git a/lib/fileutils.rb b/lib/fileutils.rb index 4e1c00dec97382..4c658ff62a2657 100644 --- a/lib/fileutils.rb +++ b/lib/fileutils.rb @@ -114,12 +114,14 @@ def pwd # # Changes the current directory to the directory +dir+. # - # If this method is called with block, resumes to the old - # working directory after the block execution finished. + # If this method is called with block, resumes to the previous + # working directory after the block execution has finished. # - # FileUtils.cd('/', :verbose => true) # chdir and report it + # FileUtils.cd('/') # change directory # - # FileUtils.cd('/') do # chdir + # FileUtils.cd('/', :verbose => true) # change directory and report it + # + # FileUtils.cd('/') do # change directory # # ... # do something # end # return to original directory # @@ -1080,11 +1082,6 @@ def chown_R(user, group, list, noop: nil, verbose: nil, force: nil) end module_function :chown_R - begin - require 'etc' - rescue LoadError # rescue LoadError for miniruby - end - def fu_get_uid(user) #:nodoc: return nil unless user case user @@ -1093,6 +1090,7 @@ def fu_get_uid(user) #:nodoc: when /\A\d+\z/ user.to_i else + require 'etc' Etc.getpwnam(user) ? Etc.getpwnam(user).uid : nil end end @@ -1106,6 +1104,7 @@ def fu_get_gid(group) #:nodoc: when /\A\d+\z/ group.to_i else + require 'etc' Etc.getgrnam(group) ? Etc.getgrnam(group).gid : nil end end @@ -1275,8 +1274,15 @@ def door? def entries opts = {} opts[:encoding] = ::Encoding::UTF_8 if fu_windows? - Dir.children(path, opts)\ - .map {|n| Entry_.new(prefix(), join(rel(), n.untaint)) } + + files = if Dir.respond_to?(:children) + Dir.children(path, opts) + else + Dir.entries(path(), opts) + .reject {|n| n == '.' or n == '..' } + end + + files.map {|n| Entry_.new(prefix(), join(rel(), n.untaint)) } end def stat diff --git a/lib/fileutils/fileutils.gemspec b/lib/fileutils/fileutils.gemspec index 7212883d2bf286..37705959334718 100644 --- a/lib/fileutils/fileutils.gemspec +++ b/lib/fileutils/fileutils.gemspec @@ -14,7 +14,7 @@ Gem::Specification.new do |s| s.description = "Several file utility methods for copying, moving, removing, etc." s.require_path = %w{lib} - s.files = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "fileutils.gemspec", "lib/fileutils.rb", "lib/fileutils/version.rb"] + s.files = ["LICENSE.txt", "README.md", "Rakefile", "fileutils.gemspec", "lib/fileutils.rb", "lib/fileutils/version.rb"] s.required_ruby_version = ">= 2.3.0" s.authors = ["Minero Aoki"]