fileutils 1.4.1 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +7 -0
  3. data/fileutils.gemspec +1 -1
  4. data/lib/fileutils.rb +22 -13
  5. metadata +8 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f47c53c2d9a6fda99262d100845964c266befafafc71a99395ee58a9baa5bd3d
4
- data.tar.gz: 5d4447b7fb7c5011846de8585bc475cd233f1c27d8edff2329c27e011b549d14
3
+ metadata.gz: 67fa33577498dff5705331ce6453a3c11ff34d209343310f647d4cb404158617
4
+ data.tar.gz: 4608e153f0c69749fbf7e4d456388c44fdba1a3a99f5b328c71c283ccd7ca5a3
5
5
  SHA512:
6
- metadata.gz: 2ba476a1a25da609ab2caea6a4ccfe436556c4b7f3b90721716694f76eb0a24618301a6ee8c8cf47bed164516c3ee2a4b29b206b0bc45fafc6b3e207e016eb5b
7
- data.tar.gz: 86136905e49ab909fdbd70d91b49165e5be9fb1ccbd9aee7a2ace1255abc6c0eec3314bf27844f30438dc8f85b64eb333538833dd348ab94e2ac79aeb58ea448
6
+ metadata.gz: db0b5ce907f782c5ba306ca0a8811c825ec1f97a47731ccc08b2ddc7e13160d7d40986afd1b744cef7b941b2bef2f1c1c4017eb8fc616e8695b506d5ce8cc8ae
7
+ data.tar.gz: ccbb52c0a277e03e29dfff22e5bb26b3dc30e7ede6db803f130047bb039cb12161d7f3ecafac5f0956959fde6276b16c68085f30be7c8edae019e7d313301b53
data/Rakefile CHANGED
@@ -9,4 +9,11 @@ Rake::TestTask.new(:test) do |t|
9
9
  t.test_files = FileList["test/**/test_*.rb"]
10
10
  end
11
11
 
12
+ task :sync_tool do
13
+ require 'fileutils'
14
+ FileUtils.cp "../ruby/tool/lib/test/unit/core_assertions.rb", "./test/lib"
15
+ FileUtils.cp "../ruby/tool/lib/envutil.rb", "./test/lib"
16
+ FileUtils.cp "../ruby/tool/lib/find_executable.rb", "./test/lib"
17
+ end
18
+
12
19
  task :default => :test
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.authors = ["Minero Aoki"]
24
24
  s.email = [nil]
25
25
  s.homepage = "https://github.com/ruby/fileutils"
26
- s.license = "BSD-2-Clause"
26
+ s.licenses = ["Ruby", "BSD-2-Clause"]
27
27
 
28
28
  s.metadata = {
29
29
  "source_code_uri" => "https://github.com/ruby/fileutils"
@@ -102,7 +102,7 @@ end
102
102
  # <tt>:verbose</tt> flags to methods in FileUtils.
103
103
  #
104
104
  module FileUtils
105
- VERSION = "1.4.1"
105
+ VERSION = "1.5.0"
106
106
 
107
107
  def self.private_module_function(name) #:nodoc:
108
108
  module_function name
@@ -208,7 +208,9 @@ module FileUtils
208
208
  fu_output_message "mkdir -p #{mode ? ('-m %03o ' % mode) : ''}#{list.join ' '}" if verbose
209
209
  return *list if noop
210
210
 
211
- list.map {|path| remove_trailing_slash(path)}.each do |path|
211
+ list.each do |item|
212
+ path = remove_trailing_slash(item)
213
+
212
214
  # optimize for the most common case
213
215
  begin
214
216
  fu_mkdir path, mode
@@ -221,8 +223,9 @@ module FileUtils
221
223
  until path == stack.last # dirname("/")=="/", dirname("C:/")=="C:/"
222
224
  stack.push path
223
225
  path = File.dirname(path)
226
+ break if File.directory?(path)
224
227
  end
225
- stack.pop # root directory should exist
228
+ stack.pop if path == stack.last # root directory should exist
226
229
  stack.reverse_each do |dir|
227
230
  begin
228
231
  fu_mkdir dir, mode
@@ -917,11 +920,8 @@ module FileUtils
917
920
  private_module_function :apply_mask
918
921
 
919
922
  def symbolic_modes_to_i(mode_sym, path) #:nodoc:
920
- mode = if File::Stat === path
921
- path.mode
922
- else
923
- File.stat(path).mode
924
- end
923
+ path = File.stat(path) unless File::Stat === path
924
+ mode = path.mode
925
925
  mode_sym.split(/,/).inject(mode & 07777) do |current_mode, clause|
926
926
  target, *actions = clause.split(/([=+-])/)
927
927
  raise ArgumentError, "invalid file mode: #{mode_sym}" if actions.empty?
@@ -938,7 +938,7 @@ module FileUtils
938
938
  when "x"
939
939
  mask | 0111
940
940
  when "X"
941
- if FileTest.directory? path
941
+ if path.directory?
942
942
  mask | 0111
943
943
  else
944
944
  mask
@@ -1290,7 +1290,7 @@ module FileUtils
1290
1290
 
1291
1291
  def entries
1292
1292
  opts = {}
1293
- opts[:encoding] = ::Encoding::UTF_8 if fu_windows?
1293
+ opts[:encoding] = fu_windows? ? ::Encoding::UTF_8 : path.encoding
1294
1294
 
1295
1295
  files = if Dir.respond_to?(:children)
1296
1296
  Dir.children(path, **opts)
@@ -1345,6 +1345,7 @@ module FileUtils
1345
1345
  else
1346
1346
  File.chmod mode, path()
1347
1347
  end
1348
+ rescue Errno::EOPNOTSUPP
1348
1349
  end
1349
1350
 
1350
1351
  def chown(uid, gid)
@@ -1439,7 +1440,7 @@ module FileUtils
1439
1440
  if st.symlink?
1440
1441
  begin
1441
1442
  File.lchmod mode, path
1442
- rescue NotImplementedError
1443
+ rescue NotImplementedError, Errno::EOPNOTSUPP
1443
1444
  end
1444
1445
  else
1445
1446
  File.chmod mode, path
@@ -1559,7 +1560,15 @@ module FileUtils
1559
1560
  def join(dir, base)
1560
1561
  return File.path(dir) if not base or base == '.'
1561
1562
  return File.path(base) if not dir or dir == '.'
1562
- File.join(dir, base)
1563
+ begin
1564
+ File.join(dir, base)
1565
+ rescue EncodingError
1566
+ if fu_windows?
1567
+ File.join(dir.encode(::Encoding::UTF_8), base.encode(::Encoding::UTF_8))
1568
+ else
1569
+ raise
1570
+ end
1571
+ end
1563
1572
  end
1564
1573
 
1565
1574
  if File::ALT_SEPARATOR
@@ -1614,7 +1623,7 @@ module FileUtils
1614
1623
 
1615
1624
  def fu_output_message(msg) #:nodoc:
1616
1625
  output = @fileutils_output if defined?(@fileutils_output)
1617
- output ||= $stderr
1626
+ output ||= $stdout
1618
1627
  if defined?(@fileutils_label)
1619
1628
  msg = @fileutils_label + msg
1620
1629
  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.4.1
4
+ version: 1.5.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-11-30 00:00:00.000000000 Z
11
+ date: 2020-12-22 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: []
@@ -24,10 +24,11 @@ files:
24
24
  - lib/fileutils.rb
25
25
  homepage: https://github.com/ruby/fileutils
26
26
  licenses:
27
+ - Ruby
27
28
  - BSD-2-Clause
28
29
  metadata:
29
30
  source_code_uri: https://github.com/ruby/fileutils
30
- post_install_message:
31
+ post_install_message:
31
32
  rdoc_options: []
32
33
  require_paths:
33
34
  - lib
@@ -42,8 +43,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
42
43
  - !ruby/object:Gem::Version
43
44
  version: '0'
44
45
  requirements: []
45
- rubygems_version: 3.0.3
46
- signing_key:
46
+ rubygems_version: 3.2.2
47
+ signing_key:
47
48
  specification_version: 4
48
49
  summary: Several file utility methods for copying, moving, removing, etc.
49
50
  test_files: []