aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2012-09-24 10:51:39 -0500
committerJoshua Peek <josh@joshpeek.com>2012-09-24 10:51:39 -0500
commit31e33f99f2453bfcfb4b93c10286b3e876a84987 (patch)
tree5e144da31f750d6f3cd480872354cdbcc26864c6
parent7c51b9058697b0a7f6779ffde4307f978aa4cfac (diff)
Ensure lang is skipped on any binary file
-rw-r--r--lib/linguist/blob_helper.rb2
-rw-r--r--lib/linguist/language.rb4
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb
index b0a2062..d7f56de 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 fb24204..a6b199c 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