From: tommy@... Date: 2016-02-19T09:08:40+00:00 Subject: [ruby-dev:49497] [Ruby trunk Bug#12087] Find.find に存在しないパスを渡した時のエラーにパス名がない Issue #12087 has been reported by Masahiro Tomita. ---------------------------------------- Bug #12087: Find.find に存在しないパスを渡した時のエラーにパス名がない https://bugs.ruby-lang.org/issues/12087 * Author: Masahiro Tomita * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- `ruby -rfind -e 'Find.find("/hoge"){}'` で /hoge が存在しない場合に発生するエラーが `No such file or directory (Errno::ENOENT)` でパス名が含まれてません。 エラーにパス名を含めて欲しいです。次の修正で `No such file or directory - /hoge (Errno::ENOENT)` となります。 ```diff diff --git a/lib/find.rb b/lib/find.rb index aa7a3c0..093f855 100644 --- a/lib/find.rb +++ b/lib/find.rb @@ -41,5 +41,5 @@ def find(*paths, ignore_error: true) # :yield: path fs_encoding = Encoding.find("filesystem") - paths.collect!{|d| raise Errno::ENOENT unless File.exist?(d); d.dup}.each do |path| + paths.collect!{|d| raise Errno::ENOENT, d unless File.exist?(d); d.dup}.each do |path| path = path.to_path if path.respond_to? :to_path enc = path.encoding == Encoding::US_ASCII ? fs_encoding : path.encoding ``` -- https://bugs.ruby-lang.org/