BUILDR-668 - Specify File::FNM_EXTGLOB for include globs where needed in Ruby >=...
authorPeter Donald <donaldp@apache.org>
Sat, 8 Jun 2013 23:42:40 +0000 (23:42 +0000)
committerPeter Donald <donaldp@apache.org>
Sat, 8 Jun 2013 23:42:40 +0000 (23:42 +0000)
git-svn-id: https://svn.apache.org/repos/asf/buildr/trunk@1491099 13f79535-47bb-0310-9956-ffa450edef68

CHANGELOG
lib/buildr/core/application.rb

index df8f28e..858b348 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,6 +4,8 @@
           - rspec-mocks (2.13.1)
           - rspec-core (2.13.1)
           - rspec (2.13.0)
+* Fixed:  BUILDR-668 - Specify File::FNM_EXTGLOB for include globs
+          where needed in Ruby >= 2.0.0. Reported by Yavor Nikolov.
 * Fixed:  Ensure generation of buildfiles from eclipse projects will
           finds .project files in Ruby >= 2.0.0.
 * Fixed:  Patch Rake::FileList in Ruby >= 2.0.0 to match dot files if
index 09909f7..730f8d6 100644 (file)
@@ -699,9 +699,12 @@ module ::Rake
     # Add matching glob patterns.
     def add_matching(pattern)
       # Patch to use File::FNM_DOTMATCH where appropriate
-      args = []
-      args << File::FNM_DOTMATCH if pattern =~ /\.\*/
-      FileList.glob(pattern, *args).each do |fn|
+      flags = 0
+      args = [pattern]
+      flags |= File::FNM_DOTMATCH if pattern =~ /\.\*/
+      flags |= File::FNM_EXTGLOB if pattern =~ /[^\\]\{.*\}/
+      args << flags unless 0 == flags
+      FileList.glob(*args).each do |fn|
         self << fn unless exclude?(fn)
       end
     end