diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 79d9cbf1..53cc3682 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -110,7 +110,7 @@ module Linguist # Returns the Language or nil if none was found. def self.find_by_name(name) return nil if !name.is_a?(String) || name.to_s.empty? - name && (@name_index[name.downcase] || @name_index[name.split(',').first.downcase]) + name && (@name_index[name.downcase] || @name_index[name.split(',', 2).first.downcase]) end # Public: Look up Language by one of its aliases. @@ -125,7 +125,7 @@ module Linguist # Returns the Language or nil if none was found. def self.find_by_alias(name) return nil if !name.is_a?(String) || name.to_s.empty? - name && (@alias_index[name.downcase] || @alias_index[name.split(',').first.downcase]) + name && (@alias_index[name.downcase] || @alias_index[name.split(',', 2).first.downcase]) end # Public: Look up Languages by filename. @@ -219,10 +219,7 @@ module Linguist lang = @index[name.downcase] return lang if lang - name = name.split(',').first - return nil if name.to_s.empty? - - @index[name.downcase] + @index[name.split(',', 2).first.downcase] end # Public: A List of popular languages diff --git a/test/test_language.rb b/test/test_language.rb index 72f7f29e..6589891a 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -470,5 +470,7 @@ class TestLanguage < Minitest::Test def test_non_crash_on_comma assert_nil Language[','] + assert_nil Language.find_by_name(',') + assert_nil Language.find_by_alias(',') end end