fileutils 1.3.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 34d7f0ea2d7241dc23eba2ec5d7be548d2dab3edb9082e94fc7766b70ce8dcd2
4
- data.tar.gz: c0a41797554a3a763ff7d7ac7b6f1f149d50bcefe0ddef959b98a1384f40ba93
3
+ metadata.gz: bd9bb18e0c2796f76aaa3913228a54edac666e5130c8649a072d2c9f5304f4ce
4
+ data.tar.gz: e61f982bf90db5263eacb09ba03bd8aa0c2bc91c52b54eb0e8de08388955d28d
5
5
  SHA512:
6
- metadata.gz: 78deb94048b06e1c7d3215f3bc796447caf909c047f14f137a367e907b4f4fb5655c5ceb211390d5ead7f9e8710b6daf33d262ff31a5b3f186bb2d40f2f4900f
7
- data.tar.gz: f57997f8e332a07d3ab01db4e31ae2e196179a1fb35e6ebf1d123f156e96c5ab415f8f408690767216194a65d92b2d7f77adce83719ffe40d8eeada4cfbb8c4b
6
+ metadata.gz: cb8942b3111aec98133788f8088511a90b9eab067a563676ccf348a567504b4ae2b858c0bebb376bdb6bd5847be1e8cd8171a2a8cd654480686c8065846acff6
7
+ data.tar.gz: 11e481aff9fd2b505b5b97b6783c4b93fd9509a6f5cac2af20142fea383c92455e36fc7de8de303fd0c49662e27920cea295bd09f6fc029d6c2be3a465cc5a5a
data/Rakefile CHANGED
@@ -1,12 +1,17 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
3
 
4
- JRuby.objectspace = true if RUBY_PLATFORM == 'java'
5
-
6
4
  Rake::TestTask.new(:test) do |t|
7
- t.libs << "test" << "test/lib"
8
- t.libs << "lib"
9
- t.test_files = FileList['test/**/test_*.rb']
5
+ t.libs << "test/lib"
6
+ t.ruby_opts << "-rhelper"
7
+ t.test_files = FileList["test/**/test_*.rb"]
8
+ end
9
+
10
+ task :sync_tool do
11
+ require 'fileutils'
12
+ FileUtils.cp "../ruby/tool/lib/core_assertions.rb", "./test/lib"
13
+ FileUtils.cp "../ruby/tool/lib/envutil.rb", "./test/lib"
14
+ FileUtils.cp "../ruby/tool/lib/find_executable.rb", "./test/lib"
10
15
  end
11
16
 
12
17
  task :default => :test
data/fileutils.gemspec CHANGED
@@ -1,30 +1,31 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- begin
4
- require_relative "lib/fileutils/version"
5
- rescue LoadError
6
- # for Ruby core repository
7
- require_relative "version"
3
+ source_version = ["", "lib/"].find do |dir|
4
+ begin
5
+ break File.open(File.join(__dir__, "#{dir}fileutils.rb")) {|f|
6
+ f.gets("\n VERSION = ")
7
+ f.gets[/\s*"(.+)"/, 1]
8
+ }
9
+ rescue Errno::ENOENT
10
+ end
8
11
  end
9
12
 
10
13
  Gem::Specification.new do |s|
11
14
  s.name = "fileutils"
12
- s.version = FileUtils::VERSION
15
+ s.version = source_version
13
16
  s.summary = "Several file utility methods for copying, moving, removing, etc."
14
17
  s.description = "Several file utility methods for copying, moving, removing, etc."
15
18
 
16
19
  s.require_path = %w{lib}
17
- s.files = ["LICENSE.txt", "README.md", "Rakefile", "fileutils.gemspec", "lib/fileutils.rb", "lib/fileutils/version.rb"]
18
- s.required_ruby_version = ">= 2.3.0"
20
+ s.files = ["LICENSE.txt", "README.md", "Rakefile", "fileutils.gemspec", "lib/fileutils.rb"]
21
+ s.required_ruby_version = ">= 2.5.0"
19
22
 
20
23
  s.authors = ["Minero Aoki"]
21
24
  s.email = [nil]
22
25
  s.homepage = "https://github.com/ruby/fileutils"
23
- s.license = "BSD-2-Clause"
26
+ s.licenses = ["Ruby", "BSD-2-Clause"]
24
27
 
25
- if s.respond_to?(:metadata=)
26
- s.metadata = {
27
- "source_code_uri" => "https://github.com/ruby/fileutils"
28
- }
29
- end
28
+ s.metadata = {
29
+ "source_code_uri" => "https://github.com/ruby/fileutils"
30
+ }
30
31
  end
data/lib/fileutils.rb CHANGED
@@ -6,8 +6,6 @@ rescue LoadError
6
6
  # for make mjit-headers
7
7
  end
8
8
 
9
- require_relative "fileutils/version"
10
-
11
9
  #
12
10
  # = fileutils.rb
13
11
  #
@@ -104,6 +102,7 @@ require_relative "fileutils/version"
104
102
  # <tt>:verbose</tt> flags to methods in FileUtils.
105
103
  #
106
104
  module FileUtils
105
+ VERSION = "1.6.0"
107
106
 
108
107
  def self.private_module_function(name) #:nodoc:
109
108
  module_function name
@@ -209,21 +208,14 @@ module FileUtils
209
208
  fu_output_message "mkdir -p #{mode ? ('-m %03o ' % mode) : ''}#{list.join ' '}" if verbose
210
209
  return *list if noop
211
210
 
212
- list.map {|path| remove_trailing_slash(path)}.each do |path|
213
- # optimize for the most common case
214
- begin
215
- fu_mkdir path, mode
216
- next
217
- rescue SystemCallError
218
- next if File.directory?(path)
219
- end
211
+ list.each do |item|
212
+ path = remove_trailing_slash(item)
220
213
 
221
214
  stack = []
222
- until path == stack.last # dirname("/")=="/", dirname("C:/")=="C:/"
215
+ until File.directory?(path)
223
216
  stack.push path
224
217
  path = File.dirname(path)
225
218
  end
226
- stack.pop # root directory should exist
227
219
  stack.reverse_each do |dir|
228
220
  begin
229
221
  fu_mkdir dir, mode
@@ -835,13 +827,8 @@ module FileUtils
835
827
  def compare_stream(a, b)
836
828
  bsize = fu_stream_blksize(a, b)
837
829
 
838
- if RUBY_VERSION > "2.4"
839
- sa = String.new(capacity: bsize)
840
- sb = String.new(capacity: bsize)
841
- else
842
- sa = String.new
843
- sb = String.new
844
- end
830
+ sa = String.new(capacity: bsize)
831
+ sb = String.new(capacity: bsize)
845
832
 
846
833
  begin
847
834
  a.read(bsize, sa)
@@ -918,11 +905,8 @@ module FileUtils
918
905
  private_module_function :apply_mask
919
906
 
920
907
  def symbolic_modes_to_i(mode_sym, path) #:nodoc:
921
- mode = if File::Stat === path
922
- path.mode
923
- else
924
- File.stat(path).mode
925
- end
908
+ path = File.stat(path) unless File::Stat === path
909
+ mode = path.mode
926
910
  mode_sym.split(/,/).inject(mode & 07777) do |current_mode, clause|
927
911
  target, *actions = clause.split(/([=+-])/)
928
912
  raise ArgumentError, "invalid file mode: #{mode_sym}" if actions.empty?
@@ -939,7 +923,7 @@ module FileUtils
939
923
  when "x"
940
924
  mask | 0111
941
925
  when "X"
942
- if FileTest.directory? path
926
+ if path.directory?
943
927
  mask | 0111
944
928
  else
945
929
  mask
@@ -1291,16 +1275,12 @@ module FileUtils
1291
1275
 
1292
1276
  def entries
1293
1277
  opts = {}
1294
- opts[:encoding] = ::Encoding::UTF_8 if fu_windows?
1278
+ opts[:encoding] = fu_windows? ? ::Encoding::UTF_8 : path.encoding
1295
1279
 
1296
- files = if Dir.respond_to?(:children)
1297
- Dir.children(path, **opts)
1298
- else
1299
- Dir.entries(path(), **opts)
1300
- .reject {|n| n == '.' or n == '..' }
1301
- end
1280
+ files = Dir.children(path, **opts)
1302
1281
 
1303
- files.map {|n| Entry_.new(prefix(), join(rel(), n.untaint)) }
1282
+ untaint = RUBY_VERSION < '2.7'
1283
+ files.map {|n| Entry_.new(prefix(), join(rel(), untaint ? n.untaint : n)) }
1304
1284
  end
1305
1285
 
1306
1286
  def stat
@@ -1345,6 +1325,7 @@ module FileUtils
1345
1325
  else
1346
1326
  File.chmod mode, path()
1347
1327
  end
1328
+ rescue Errno::EOPNOTSUPP
1348
1329
  end
1349
1330
 
1350
1331
  def chown(uid, gid)
@@ -1439,7 +1420,7 @@ module FileUtils
1439
1420
  if st.symlink?
1440
1421
  begin
1441
1422
  File.lchmod mode, path
1442
- rescue NotImplementedError
1423
+ rescue NotImplementedError, Errno::EOPNOTSUPP
1443
1424
  end
1444
1425
  else
1445
1426
  File.chmod mode, path
@@ -1559,7 +1540,15 @@ module FileUtils
1559
1540
  def join(dir, base)
1560
1541
  return File.path(dir) if not base or base == '.'
1561
1542
  return File.path(base) if not dir or dir == '.'
1562
- File.join(dir, base)
1543
+ begin
1544
+ File.join(dir, base)
1545
+ rescue EncodingError
1546
+ if fu_windows?
1547
+ File.join(dir.encode(::Encoding::UTF_8), base.encode(::Encoding::UTF_8))
1548
+ else
1549
+ raise
1550
+ end
1551
+ end
1563
1552
  end
1564
1553
 
1565
1554
  if File::ALT_SEPARATOR
@@ -1614,7 +1603,7 @@ module FileUtils
1614
1603
 
1615
1604
  def fu_output_message(msg) #:nodoc:
1616
1605
  output = @fileutils_output if defined?(@fileutils_output)
1617
- output ||= $stderr
1606
+ output ||= $stdout
1618
1607
  if defined?(@fileutils_label)
1619
1608
  msg = @fileutils_label + msg
1620
1609
  end
metadata CHANGED
@@ -1,18 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fileutils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Minero Aoki
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-26 00:00:00.000000000 Z
11
+ date: 2021-10-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Several file utility methods for copying, moving, removing, etc.
14
14
  email:
15
- -
15
+ -
16
16
  executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
@@ -22,13 +22,13 @@ files:
22
22
  - Rakefile
23
23
  - fileutils.gemspec
24
24
  - lib/fileutils.rb
25
- - lib/fileutils/version.rb
26
25
  homepage: https://github.com/ruby/fileutils
27
26
  licenses:
27
+ - Ruby
28
28
  - BSD-2-Clause
29
29
  metadata:
30
30
  source_code_uri: https://github.com/ruby/fileutils
31
- post_install_message:
31
+ post_install_message:
32
32
  rdoc_options: []
33
33
  require_paths:
34
34
  - lib
@@ -36,15 +36,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 2.3.0
39
+ version: 2.5.0
40
40
  required_rubygems_version: !ruby/object:Gem::Requirement
41
41
  requirements:
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
44
  version: '0'
45
45
  requirements: []
46
- rubygems_version: 3.0.3
47
- signing_key:
46
+ rubygems_version: 3.3.0.dev
47
+ signing_key:
48
48
  specification_version: 4
49
49
  summary: Several file utility methods for copying, moving, removing, etc.
50
50
  test_files: []
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module FileUtils
4
- VERSION = "1.3.0"
5
- end