Bug #10035

Find.find no longer accepts Pathname type as argument

Added by herwinw (Herwin Quarantainenet) almost 6 years ago. Updated over 5 years ago.

Target version:
ruby -v:
ruby 2.1.2p95 (2014-05-08 revision 45877) [i686-linux]


In 2.1, a check for encoding of the paths parameter has been added to File.find. This works perfectly well for String parameters, but this results in a NoMethodError when a Pathname parameter is given. In my opinion a Pathname is a better suitable type to feed to Find.find than a String.

Updated by shevegen (Robert A. Heiler) almost 6 years ago

I don't think I can agree with you in regards to Pathname being a more suitable type - because I rarely use Pathname myself, with just about the single exception being code like this here:


However, if this has been possible in the past then of course it should be preserved for the future as well.

Do you recall in which ruby version it was possible? I would like to test it myself as well (for curiousity reasons mostly).

Updated by herwinw (Herwin Quarantainenet) almost 6 years ago

It works in ruby-2.0.0-p481.

If you compare the files lib/find.rb from both versions, you can see that some code for encoding has been added. This is where it breaks.

Another option might be to give the Pathname class a method encoding (which could just return self.to_s.encoding). There may be more places where this will break.

Updated by naruse (Yui NARUSE) almost 6 years ago

  • Status changed from Open to Assigned
  • Assignee set to akr (Akira Tanaka)

Updated by akr (Akira Tanaka) over 5 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

Applied in changeset r47900.

  • lib/find.rb (Find.find): Call to_path for arguments to obtain strings. [ruby-core:63713] [Bug #10035] Reported by Herwin.

Updated by nagachika (Tomoyuki Chikanaga) over 5 years ago

  • Backport changed from 2.1: UNKNOWN to 2.1: REQUIRED

ruby_2_1 branch has same problem.

Updated by nagachika (Tomoyuki Chikanaga) over 5 years ago

  • Backport changed from 2.1: REQUIRED to 2.1: DONE

Backported into ruby_2_1 at r47958.

Also available in: Atom PDF