From: "gettalong (Thomas Leitner)" Date: 2013-03-08T20:16:31+09:00 Subject: [ruby-core:53230] [ruby-trunk - Bug #8006] Dir.glob behaves differently on 1.9.3 and 2.0 Issue #8006 has been updated by gettalong (Thomas Leitner). =begin After some more experimenting, it seems that the '**' operator doesn't act the same like in 1.9.3: With Ruby 2.0.0-p0: 2.0.0p0 :017 > Dir.glob('data/webgen/basic_website_template/*/*', File::FNM_DOTMATCH|File::FNM_CASEFOLD) => ["data/webgen/basic_website_template/./.", "data/webgen/basic_website_template/./ext", "data/webgen/basic_website_template/./..", "data/webgen/basic_website_template/./webgen.config", "data/webgen/basic_website_template/./src", "data/webgen/basic_website_template/ext/.", "data/webgen/basic_website_template/ext/..", "data/webgen/basic_website_template/ext/init.rb", "data/webgen/basic_website_template/../.", "data/webgen/basic_website_template/../passive_sources", "data/webgen/basic_website_template/../..", "data/webgen/basic_website_template/../bundle_template_files", "data/webgen/basic_website_template/../basic_website_template", "data/webgen/basic_website_template/src/.", "data/webgen/basic_website_template/src/..", "data/webgen/basic_website_template/src/.gitignore"] 2.0.0p0 :018 > Dir.glob('data/webgen/basic_website_template/**/*', File::FNM_DOTMATCH|File::FNM_CASEFOLD) => ["data/webgen/basic_website_template/ext", "data/webgen/basic_website_template/ext/init.rb", "data/webgen/basic_website_template/webgen.config", "data/webgen/basic_website_template/src", "data/webgen/basic_website_template/src/.gitignore"] =end ---------------------------------------- Bug #8006: Dir.glob behaves differently on 1.9.3 and 2.0 https://bugs.ruby-lang.org/issues/8006#change-37389 Author: gettalong (Thomas Leitner) Status: Open Priority: Low Assignee: Category: core Target version: ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux] =begin While testing an application of mine with Ruby 2.0 I came across the following problem with Dir.glob where the pattern `FOO/BAR/**/*` does not match the directory `FOO/BAR` anymore because the implicit directories '.' and '..' don't get matched anymore. Used files: $ find data/webgen/basic_website_template/ data/webgen/basic_website_template/ data/webgen/basic_website_template/ext data/webgen/basic_website_template/ext/init.rb data/webgen/basic_website_template/webgen.config data/webgen/basic_website_template/src data/webgen/basic_website_template/src/.gitignore With Ruby 1.9.3-p327: 1.9.3-p327 :001 > Dir.glob('data/webgen/basic_website_template/**/*', File::FNM_PATHNAME|File::FNM_DOTMATCH|File::FNM_CASEFOLD) => ["data/webgen/basic_website_template/.", "data/webgen/basic_website_template/ext", "data/webgen/basic_website_template/ext/.", "data/webgen/basic_website_template/ext/..", "data/webgen/basic_website_template/ext/init.rb", "data/webgen/basic_website_template/..", "data/webgen/basic_website_template/webgen.config", "data/webgen/basic_website_template/src", "data/webgen/basic_website_template/src/.", "data/webgen/basic_website_template/src/..", "data/webgen/basic_website_template/src/.gitignore"] 1.9.3-p327 :003 > With Ruby 2.0.0-p0: 2.0.0-p0 :001 > Dir.glob('data/webgen/basic_website_template/**/*', File::FNM_PATHNAME|File::FNM_DOTMATCH|File::FNM_CASEFOLD) => ["data/webgen/basic_website_template/ext", "data/webgen/basic_website_template/ext/init.rb", "data/webgen/basic_website_template/webgen.config", "data/webgen/basic_website_template/src", "data/webgen/basic_website_template/src/.gitignore"] =end -- http://bugs.ruby-lang.org/