diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index f6800315..20db7232 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -12,7 +12,7 @@ module Linguist @name_index[language.name.downcase] = language if language.default_lexer? || !@lexer_index.key?(language.lexer) - @lexer_index[language.lexer] = language + @lexer_index[language.lexer.downcase] = language end language.extensions.each do |extension| @@ -24,7 +24,7 @@ module Linguist end def self.[](name) - find_by_name(name) + find_by_name(name) || find_by_lexer(name) end def self.find_by_name(name) @@ -36,7 +36,7 @@ module Linguist end def self.find_by_lexer(lexer) - @lexer_index[lexer] || self['Text'] + @lexer_index[lexer.downcase] || self['Text'] end def self.popular diff --git a/test/test_language.rb b/test/test_language.rb index 566c1082..2fd1016e 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -28,6 +28,20 @@ class TestLanguage < Test::Unit::TestCase assert_equal Language['Text'], Language.find_by_lexer('kt') 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 assert_equal "Perl", Language['Perl'].name assert_equal "Python", Language['Python'].name