From: shyouhei@... Date: 2016-10-11T01:12:45+00:00 Subject: [ruby-core:77545] [Ruby trunk Bug#12814] Pathname#each_child(false) produces unusable file paths Issue #12814 has been updated by Shyouhei Urabe. It's true you can't infer a realpath from `with_directory=false`-yielded file paths. Yes. But isn't it intentional? You requested to cut where the path was from. Pretty natural you can no longer infer its origin. The RDoc says it guarantees to include info enough to infer the realpath "By default", and you are requesting something not default. I think the behavour is by design. ---------------------------------------- Bug #12814: Pathname#each_child(false) produces unusable file paths https://bugs.ruby-lang.org/issues/12814#change-60812 * Author: Mr. Tao * Status: Feedback * Priority: Normal * Assignee: * ruby -v: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- I tried to iterate over items in a directory with `each_child` testing each item whether it is a directory or not with `directory?`. This was working just fine until I added **`false`** as an argument to `each_child`. ~~~ ruby Pathname.new('.').each_child { |f| p f.realpath } #��works as expected Pathname.new('.').each_child(false) { |f| p f.realpath } # throws an error ~~~ As per Ruby doc "By default, the yielded pathnames will have enough information to access the files.", however pathnames yielded with `with_directory=false` are completely useless as file paths. -- https://bugs.ruby-lang.org/ Unsubscribe: