mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Index by language object
This commit is contained in:
@@ -35,7 +35,7 @@ module Linguist
|
|||||||
def initialize(paths)
|
def initialize(paths)
|
||||||
@paths = paths
|
@paths = paths
|
||||||
|
|
||||||
@stats = nil
|
@language = @size = nil
|
||||||
@sizes = Hash.new { 0 }
|
@sizes = Hash.new { 0 }
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -44,20 +44,18 @@ module Linguist
|
|||||||
end
|
end
|
||||||
|
|
||||||
def language
|
def language
|
||||||
Language[stats[:primary]]
|
compute_stats
|
||||||
|
@language
|
||||||
end
|
end
|
||||||
|
|
||||||
def languages
|
def languages
|
||||||
stats
|
compute_stats
|
||||||
@sizes
|
@sizes
|
||||||
end
|
end
|
||||||
|
|
||||||
def size
|
def size
|
||||||
stats[:total_size]
|
compute_stats
|
||||||
end
|
@size
|
||||||
|
|
||||||
def stats
|
|
||||||
@stats ||= compute_stats
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def compute_stats
|
def compute_stats
|
||||||
@@ -67,29 +65,17 @@ module Linguist
|
|||||||
language = blob.language
|
language = blob.language
|
||||||
|
|
||||||
if language.common?
|
if language.common?
|
||||||
@sizes[language.name] += blob.size
|
@sizes[language] += blob.size
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
total_size = @sizes.inject(0) { |s,(k,v)| s + v }
|
@size = @sizes.inject(0) { |s,(k,v)| s + v }
|
||||||
|
|
||||||
results = {
|
if primary = @sizes.max_by { |(_, size)| size }
|
||||||
:total_size => total_size
|
@language = primary[0]
|
||||||
}
|
|
||||||
|
|
||||||
@sizes.each do |language, size|
|
|
||||||
results[language] = size
|
|
||||||
end
|
end
|
||||||
|
|
||||||
primary = @sizes.max_by { |(language, size)|
|
nil
|
||||||
size
|
|
||||||
}
|
|
||||||
|
|
||||||
if primary
|
|
||||||
results[:primary] = primary[0]
|
|
||||||
end
|
|
||||||
|
|
||||||
results
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -49,8 +49,8 @@ class TestRepository < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_linguist_languages
|
def test_linguist_languages
|
||||||
assert linguist_repo.languages['Ruby'] > 30_000
|
assert linguist_repo.languages[Language['Ruby']] > 30_000
|
||||||
assert linguist_repo.languages['Python'] < 1000
|
assert linguist_repo.languages[Language['Python']] < 1000
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_linguist_size
|
def test_linguist_size
|
||||||
|
|||||||
Reference in New Issue
Block a user