From a8ceafae7d7e43e74d31a481282682eaa34f2b96 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Mon, 16 Dec 2024 18:31:10 +0900 Subject: [PATCH] Fix for path-like objects Fix #37 --- lib/tmpdir.rb | 2 +- test/test_tmpdir.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/tmpdir.rb b/lib/tmpdir.rb index a5f10fe..967a011 100644 --- a/lib/tmpdir.rb +++ b/lib/tmpdir.rb @@ -149,8 +149,8 @@ def next # Generates and yields random names to create a temporary name def create(basename, tmpdir=nil, max_try: nil, **opts) - origdir = tmpdir if tmpdir + origdir = tmpdir = File.path(tmpdir) raise ArgumentError, "empty parent path" if tmpdir.empty? else tmpdir = tmpdir() diff --git a/test/test_tmpdir.rb b/test/test_tmpdir.rb index eae0610..adc2918 100644 --- a/test/test_tmpdir.rb +++ b/test/test_tmpdir.rb @@ -108,6 +108,16 @@ def test_mktmpdir_not_empty_parent assert_raise(ArgumentError) do Dir.mktmpdir("foo", "") end + + path = Struct.new(:to_path).new("") + assert_raise(ArgumentError) do + Dir.mktmpdir("foo", path) + end + + Dir.mktmpdir do |d| + path = Struct.new(:to_path).new(d) + assert_operator(Dir.mktmpdir("prefix-", path), :start_with?, d + "/prefix-") + end end def assert_mktmpdir_traversal