diff --git a/lib/rake/file_list.rb b/lib/rake/file_list.rb index 76078d269..757f30a5f 100644 --- a/lib/rake/file_list.rb +++ b/lib/rake/file_list.rb @@ -202,7 +202,8 @@ def *(other) def <<(obj) resolve - @items << Rake.from_pathname(obj) + fn = Rake.from_pathname(obj) + @items << fn unless excluded_from_list?(fn) self end diff --git a/test/test_rake_file_list.rb b/test/test_rake_file_list.rb index 45f695d4f..3ea0cac58 100644 --- a/test/test_rake_file_list.rb +++ b/test/test_rake_file_list.rb @@ -100,6 +100,16 @@ def test_append_pathname assert_equal ["a.rb"], fl end + def test_append_respects_exclude + fl = FileList.new + fl.exclude "abc.c" + fl << "abc.c" + assert_equal [], fl + + fl << "xyz.c" + assert_equal ["xyz.c"], fl + end + def test_add_many fl = FileList.new fl.include %w(a d c)