diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index b0a20626..d7f56de5 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -302,7 +302,7 @@ module Linguist if defined?(@data) && @data.is_a?(String) data = @data else - data = lambda { binary_mime_type? ? "" : self.data } + data = lambda { (binary_mime_type? || binary?) ? "" : self.data } end @language = Language.detect(name.to_s, data, mode) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index fb242041..a6b199c6 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -84,7 +84,9 @@ module Linguist if possible_languages.length > 1 data = data.call() if data.respond_to?(:call) - if result = Classifier.classify(Samples::DATA, data, possible_languages.map(&:name)).first + if data.nil? || data == "" + nil + elsif result = Classifier.classify(Samples::DATA, data, possible_languages.map(&:name)).first Language[result[0]] end else