diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 3058cf4d..cb1d1106 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -53,6 +53,7 @@ module Linguist def generated? xcode_file? || cocoapods? || + carthage_build? || generated_net_designer_file? || generated_net_specflow_feature_file? || composer_lock? || @@ -103,6 +104,13 @@ module Linguist !!name.match(/(^Pods|\/Pods)\//) end + # Internal: Is the blob part of Carthage/Build/, which contains dependencies not meant for humans in pull requests. + # + # Returns true or false. + def carthage_build? + !!name.match(/(^|\/)Carthage\/Build\//) + end + # Internal: Is the blob minified files? # # Consider a file minified if the average line length is diff --git a/test/test_file_blob.rb b/test/test_file_blob.rb index bf5a22c8..a9bb672b 100644 --- a/test/test_file_blob.rb +++ b/test/test_file_blob.rb @@ -192,6 +192,13 @@ class TestFileBlob < Minitest::Test assert sample_blob('Pods/blah').generated? assert !sample_blob('My-Pods/blah').generated? + # Carthage + assert sample_blob('Carthage/Build/blah').generated? + assert !sample_blob('Carthage/blah').generated? + assert !sample_blob('Carthage/Checkout/blah').generated? + assert !sample_blob('My-Carthage/Build/blah').generated? + assert !sample_blob('My-Carthage/Build/blah').generated? + # Gemfile.lock is NOT generated assert !sample_blob("Gemfile.lock").generated? diff --git a/test/test_generated.rb b/test/test_generated.rb index e83f2832..f82dfdf8 100644 --- a/test/test_generated.rb +++ b/test/test_generated.rb @@ -52,6 +52,14 @@ class TestGenerated < Minitest::Test generated_sample_without_loading_data("Dummy/Pods/ObjCDependency/foo.h") generated_sample_without_loading_data("Dummy/Pods/ObjCDependency/foo.m") + # Carthage + generated_sample_without_loading_data("Carthage/Build/.Dependency.version") + generated_sample_without_loading_data("Carthage/Build/iOS/Dependency.framework") + generated_sample_without_loading_data("Carthage/Build/Mac/Dependency.framework") + generated_sample_without_loading_data("src/Carthage/Build/.Dependency.version") + generated_sample_without_loading_data("src/Carthage/Build/iOS/Dependency.framework") + generated_sample_without_loading_data("src/Carthage/Build/Mac/Dependency.framework") + # Go-specific vendored paths generated_sample_without_loading_data("go/vendor/github.com/foo.go") generated_sample_without_loading_data("go/vendor/golang.org/src/foo.c")