mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Merge pull request #247 from github/check-size-first
When testing if a blob is indexable or safe to colorize, check size first
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
Gem::Specification.new do |s|
|
Gem::Specification.new do |s|
|
||||||
s.name = 'github-linguist'
|
s.name = 'github-linguist'
|
||||||
s.version = '2.3.1'
|
s.version = '2.3.2'
|
||||||
s.summary = "GitHub Language detection"
|
s.summary = "GitHub Language detection"
|
||||||
|
|
||||||
s.authors = "GitHub"
|
s.authors = "GitHub"
|
||||||
@@ -12,6 +12,7 @@ Gem::Specification.new do |s|
|
|||||||
s.add_dependency 'escape_utils', '~> 0.2.3'
|
s.add_dependency 'escape_utils', '~> 0.2.3'
|
||||||
s.add_dependency 'mime-types', '~> 1.19'
|
s.add_dependency 'mime-types', '~> 1.19'
|
||||||
s.add_dependency 'pygments.rb', '>= 0.2.13'
|
s.add_dependency 'pygments.rb', '>= 0.2.13'
|
||||||
|
s.add_development_dependency 'mocha'
|
||||||
s.add_development_dependency 'json'
|
s.add_development_dependency 'json'
|
||||||
s.add_development_dependency 'rake'
|
s.add_development_dependency 'rake'
|
||||||
s.add_development_dependency 'yajl-ruby'
|
s.add_development_dependency 'yajl-ruby'
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ module Linguist
|
|||||||
#
|
#
|
||||||
# Return true or false
|
# Return true or false
|
||||||
def safe_to_colorize?
|
def safe_to_colorize?
|
||||||
text? && !large? && !high_ratio_of_long_lines?
|
!large? && text? && !high_ratio_of_long_lines?
|
||||||
end
|
end
|
||||||
|
|
||||||
# Internal: Does the blob have a ratio of long lines?
|
# Internal: Does the blob have a ratio of long lines?
|
||||||
@@ -250,7 +250,9 @@ module Linguist
|
|||||||
#
|
#
|
||||||
# Return true or false
|
# Return true or false
|
||||||
def indexable?
|
def indexable?
|
||||||
if binary?
|
if size > 100 * 1024
|
||||||
|
false
|
||||||
|
elsif binary?
|
||||||
false
|
false
|
||||||
elsif extname == '.txt'
|
elsif extname == '.txt'
|
||||||
true
|
true
|
||||||
@@ -260,8 +262,6 @@ module Linguist
|
|||||||
false
|
false
|
||||||
elsif generated?
|
elsif generated?
|
||||||
false
|
false
|
||||||
elsif size > 100 * 1024
|
|
||||||
false
|
|
||||||
else
|
else
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ require 'linguist/file_blob'
|
|||||||
require 'linguist/samples'
|
require 'linguist/samples'
|
||||||
|
|
||||||
require 'test/unit'
|
require 'test/unit'
|
||||||
|
require 'mocha'
|
||||||
require 'mime/types'
|
require 'mime/types'
|
||||||
require 'pygments'
|
require 'pygments'
|
||||||
|
|
||||||
@@ -261,6 +262,12 @@ class TestBlob < Test::Unit::TestCase
|
|||||||
assert !blob("Text/dump.sql").indexable?
|
assert !blob("Text/dump.sql").indexable?
|
||||||
assert !blob("Binary/github.po").indexable?
|
assert !blob("Binary/github.po").indexable?
|
||||||
assert !blob("Binary/linguist.gem").indexable?
|
assert !blob("Binary/linguist.gem").indexable?
|
||||||
|
|
||||||
|
# large binary blobs should fail on size check first, not call
|
||||||
|
# into charlock_holmes and alloc big buffers for testing encoding
|
||||||
|
b = blob("Binary/octocat.ai")
|
||||||
|
b.expects(:binary?).never
|
||||||
|
assert !b.indexable?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_language
|
def test_language
|
||||||
|
|||||||
Reference in New Issue
Block a user