You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

198 lines
5.5 KiB

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
#