diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index 64497ca5..eb052c3d 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -90,6 +90,15 @@ module Linguist @detect_encoding ||= CharlockHolmes::EncodingDetector.new.detect(data) if data end + # Public: Is the blob binary according to its mime type + # + # Return true or false + def binary_mime_type? + if mime_type = Mime.lookup_mime_type_for(pathname.extname) + mime_type.binary? + end + end + # Public: Is the blob binary? # # Return true or false diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb index 3341f492..a91b9929 100644 --- a/lib/linguist/repository.rb +++ b/lib/linguist/repository.rb @@ -67,6 +67,9 @@ module Linguist return if @computed_stats @enum.each do |blob| + # Skip binary file extensions + next if blob.binary_mime_type? + # Skip vendored or generated blobs next if blob.vendored? || blob.generated? || blob.language.nil?