Bug #10035
closedFind.find no longer accepts Pathname type as argument
Description
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 11 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:
Pathname(FILE).dirname.realpath.to_s
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 11 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 11 years ago
- Status changed from Open to Assigned
- Assignee set to akr (Akira Tanaka)
Updated by akr (Akira Tanaka) over 10 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 10 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 10 years ago
- Backport changed from 2.1: REQUIRED to 2.1: DONE
Backported into ruby_2_1
at r47958.