|
|
|
https://github.com/envygeeks/pathutil/pull/5
|
|
|
|
|
|
|
|
From 3451a10c362fc867b20c7e471a551b31c40a0246 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Tom Dunlap <tom@motevets.com>
|
|
|
|
Date: Tue, 9 Jun 2020 12:59:32 -0400
|
|
|
|
Subject: [PATCH] Fix ruby keyword parameter deprecation warnings
|
|
|
|
|
|
|
|
In ruby 2.7, using the last argument as keyword parameters became
|
|
|
|
deprecated in preparation for ruby 3.0. When running the tests, we saw
|
|
|
|
numerous deprecation warnings. This commit fixes up those deprecation
|
|
|
|
warnings by explicitly passing the last argument(s) as keyword
|
|
|
|
argument(s).
|
|
|
|
|
|
|
|
See: https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
|
|
|
|
|
|
|
|
Fixes #4
|
|
|
|
|
|
|
|
Side note: this commit did not fix the `#binread` method because it was
|
|
|
|
untested, and when attempting to add tests, we got the following failing
|
|
|
|
test:
|
|
|
|
|
|
|
|
```
|
|
|
|
1) Pathutil#binread when set to normalize should use encode to convert CRLF to LF
|
|
|
|
Failure/Error:
|
|
|
|
File.binread(self, *args, kwd).encode({
|
|
|
|
:universal_newline => true
|
|
|
|
})
|
|
|
|
|
|
|
|
TypeError:
|
|
|
|
no implicit conversion of Hash into Integer
|
|
|
|
# ./lib/pathutil.rb:509:in `binread'
|
|
|
|
# ./lib/pathutil.rb:509:in `binread'
|
|
|
|
# ./spec/tests/lib/pathutil_spec.rb:943:in `block (4 levels) in <top (required)>'
|
|
|
|
```
|
|
|
|
|
|
|
|
...which appears to be occuring because of an interface mismatch as
|
|
|
|
`IO#binread` does not take keyword arguments.
|
|
|
|
|
|
|
|
https://ruby-doc.org/core-2.7.1/IO.html#method-c-binread
|
|
|
|
---
|
|
|
|
lib/pathutil.rb | 36 ++++++++-----------------
|
|
|
|
spec/tests/lib/pathutil/helpers_spec.rb | 4 +--
|
|
|
|
spec/tests/lib/pathutil_spec.rb | 13 +++------
|
|
|
|
3 files changed, 16 insertions(+), 37 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/lib/pathutil.rb b/lib/pathutil.rb
|
|
|
|
index 1a15873..80913f2 100644
|
|
|
|
--- a/lib/pathutil.rb
|
|
|
|
+++ b/lib/pathutil.rb
|
|
|
|
@@ -456,14 +456,10 @@ def safe_copy(to, root: nil, ignore: [])
|
|
|
|
to = self.class.new(to)
|
|
|
|
|
|
|
|
if directory?
|
|
|
|
- safe_copy_directory(to, {
|
|
|
|
- :root => root, :ignore => ignore
|
|
|
|
- })
|
|
|
|
+ safe_copy_directory(to, root: root, ignore: ignore)
|
|
|
|
|
|
|
|
else
|
|
|
|
- safe_copy_file(to, {
|
|
|
|
- :root => root
|
|
|
|
- })
|
|
|
|
+ safe_copy_file(to, root: root)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
@@ -494,14 +490,10 @@ def read(*args, **kwd)
|
|
|
|
kwd[:encoding] ||= encoding
|
|
|
|
|
|
|
|
if normalize[:read]
|
|
|
|
- File.read(self, *args, kwd).encode({
|
|
|
|
- :universal_newline => true
|
|
|
|
- })
|
|
|
|
+ File.read(self, *args, **kwd).encode(universal_newline: true)
|
|
|
|
|
|
|
|
else
|
|
|
|
- File.read(
|
|
|
|
- self, *args, kwd
|
|
|
|
- )
|
|
|
|
+ File.read(self, *args, **kwd)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
@@ -534,13 +526,13 @@ def readlines(*args, **kwd)
|
|
|
|
kwd[:encoding] ||= encoding
|
|
|
|
|
|
|
|
if normalize[:read]
|
|
|
|
- File.readlines(self, *args, kwd).encode({
|
|
|
|
+ File.readlines(self, *args, **kwd).encode({
|
|
|
|
:universal_newline => true
|
|
|
|
})
|
|
|
|
|
|
|
|
else
|
|
|
|
File.readlines(
|
|
|
|
- self, *args, kwd
|
|
|
|
+ self, *args, **kwd
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
@@ -556,11 +548,11 @@ def write(data, *args, **kwd)
|
|
|
|
if normalize[:write]
|
|
|
|
File.write(self, data.encode(
|
|
|
|
:crlf_newline => true
|
|
|
|
- ), *args, kwd)
|
|
|
|
+ ), *args, **kwd)
|
|
|
|
|
|
|
|
else
|
|
|
|
File.write(
|
|
|
|
- self, data, *args, kwd
|
|
|
|
+ self, data, *args, **kwd
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
@@ -670,9 +662,7 @@ def expanded_paths(path)
|
|
|
|
private
|
|
|
|
def safe_copy_file(to, root: nil)
|
|
|
|
raise Errno::EPERM, "#{self} not in #{root}" unless in_path?(root)
|
|
|
|
- FileUtils.cp(self, to, {
|
|
|
|
- :preserve => true
|
|
|
|
- })
|
|
|
|
+ FileUtils.cp(self, to, preserve: true)
|
|
|
|
end
|
|
|
|
|
|
|
|
# --
|
|
|
|
@@ -697,15 +687,11 @@ def safe_copy_directory(to, root: nil, ignore: [])
|
|
|
|
}"
|
|
|
|
|
|
|
|
elsif file.file?
|
|
|
|
- FileUtils.cp(file, to, {
|
|
|
|
- :preserve => true
|
|
|
|
- })
|
|
|
|
+ FileUtils.cp(file, to, preserve: true)
|
|
|
|
|
|
|
|
else
|
|
|
|
path = file.realpath
|
|
|
|
- path.safe_copy(to.join(file.basename), {
|
|
|
|
- :root => root, :ignore => ignore
|
|
|
|
- })
|
|
|
|
+ path.safe_copy(to.join(file.basename), root: root, ignore: ignore)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
diff --git a/spec/tests/lib/pathutil/helpers_spec.rb b/spec/tests/lib/pathutil/helpers_spec.rb
|
|
|
|
index 4d64d0a..0dfbc00 100644
|
|
|
|
--- a/spec/tests/lib/pathutil/helpers_spec.rb
|
|
|
|
+++ b/spec/tests/lib/pathutil/helpers_spec.rb
|
|
|
|
@@ -76,9 +76,7 @@
|
|
|
|
#
|
|
|
|
|
|
|
|
after do
|
|
|
|
- described_class.load_yaml("hello: world", {
|
|
|
|
- :aliases => true
|
|
|
|
- })
|
|
|
|
+ described_class.load_yaml("hello: world", aliases: true)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
diff --git a/spec/tests/lib/pathutil_spec.rb b/spec/tests/lib/pathutil_spec.rb
|
|
|
|
index 784a16b..0ee7a12 100644
|
|
|
|
--- a/spec/tests/lib/pathutil_spec.rb
|
|
|
|
+++ b/spec/tests/lib/pathutil_spec.rb
|
|
|
|
@@ -944,9 +944,7 @@
|
|
|
|
|
|
|
|
context "with an encoding argument" do
|
|
|
|
before do
|
|
|
|
- file.write("hello", {
|
|
|
|
- :encoding => "ASCII"
|
|
|
|
- })
|
|
|
|
+ file.write("hello", encoding: "ASCII")
|
|
|
|
end
|
|
|
|
|
|
|
|
#
|
|
|
|
@@ -1050,11 +1048,10 @@
|
|
|
|
name1.join(name2.basename, name1.basename).touch
|
|
|
|
name1.join(name1.basename).touch
|
|
|
|
|
|
|
|
- name1.safe_copy(name2, {
|
|
|
|
- :root => tmpdir1, :ignore => [
|
|
|
|
+ name1.safe_copy(name2, root: tmpdir1, ignore: [
|
|
|
|
name1.join(name2.basename, name1.basename)
|
|
|
|
]
|
|
|
|
- })
|
|
|
|
+ )
|
|
|
|
end
|
|
|
|
|
|
|
|
#
|
|
|
|
@@ -1077,9 +1074,7 @@
|
|
|
|
name1.join(name2.basename, name1.basename).touch
|
|
|
|
name1.join(name1.basename).touch
|
|
|
|
|
|
|
|
- name1.safe_copy(name2, {
|
|
|
|
- :root => tmpdir1
|
|
|
|
- })
|
|
|
|
+ name1.safe_copy(name2, root: tmpdir1)
|
|
|
|
end
|
|
|
|
|
|
|
|
#
|