Language[] finds by lexer too

This commit is contained in:
Joshua Peek
2011-05-16 22:41:02 -04:00
parent b22263718d
commit 09f8b1fb24
2 changed files with 17 additions and 3 deletions

View File

@@ -12,7 +12,7 @@ module Linguist
@name_index[language.name.downcase] = language @name_index[language.name.downcase] = language
if language.default_lexer? || !@lexer_index.key?(language.lexer) if language.default_lexer? || !@lexer_index.key?(language.lexer)
@lexer_index[language.lexer] = language @lexer_index[language.lexer.downcase] = language
end end
language.extensions.each do |extension| language.extensions.each do |extension|
@@ -24,7 +24,7 @@ module Linguist
end end
def self.[](name) def self.[](name)
find_by_name(name) find_by_name(name) || find_by_lexer(name)
end end
def self.find_by_name(name) def self.find_by_name(name)
@@ -36,7 +36,7 @@ module Linguist
end end
def self.find_by_lexer(lexer) def self.find_by_lexer(lexer)
@lexer_index[lexer] || self['Text'] @lexer_index[lexer.downcase] || self['Text']
end end
def self.popular def self.popular

View File

@@ -28,6 +28,20 @@ class TestLanguage < Test::Unit::TestCase
assert_equal Language['Text'], Language.find_by_lexer('kt') assert_equal Language['Text'], Language.find_by_lexer('kt')
end end
def test_find
assert_equal "Ruby", Language['Ruby'].name
assert_equal "Ruby", Language['ruby'].name
assert_equal "Ruby", Language['RUBY'].name
assert_equal "C++", Language['C++'].name
assert_equal "C++", Language['c++'].name
assert_equal "C++", Language['cpp'].name
assert_equal "C#", Language['C#'].name
assert_equal "C#", Language['c#'].name
assert_equal "C#", Language['csharp'].name
assert_equal "C#", Language['CSHARP'].name
assert_equal "Text", Language['defunkt'].name
end
def test_name def test_name
assert_equal "Perl", Language['Perl'].name assert_equal "Perl", Language['Perl'].name
assert_equal "Python", Language['Python'].name assert_equal "Python", Language['Python'].name