Make it safe to pass nil to Language.find_by_name/alias again

This restores compatibility with v3.4.x.
This commit is contained in:
Adam Roben
2014-11-10 15:12:29 -05:00
parent 32b07a4e10
commit 160598b9ef
2 changed files with 6 additions and 3 deletions

View File

@@ -164,7 +164,7 @@ module Linguist
#
# Returns the Language or nil if none was found.
def self.find_by_name(name)
@name_index[name.downcase]
name && @name_index[name.downcase]
end
# Public: Look up Language by one of its aliases.
@@ -178,7 +178,7 @@ module Linguist
#
# Returns the Lexer or nil if none was found.
def self.find_by_alias(name)
@alias_index[name.downcase]
name && @alias_index[name.downcase]
end
# Public: Look up Languages by filename.
@@ -243,7 +243,7 @@ module Linguist
#
# Returns the Language or nil if none was found.
def self.[](name)
@index[name.downcase]
name && @index[name.downcase]
end
# Public: A List of popular languages

View File

@@ -119,6 +119,7 @@ class TestLanguage < Test::Unit::TestCase
assert_equal Language['VimL'], Language.find_by_alias('viml')
assert_equal Language['reStructuredText'], Language.find_by_alias('rst')
assert_equal Language['YAML'], Language.find_by_alias('yml')
assert_nil Language.find_by_alias(nil)
end
def test_groups
@@ -221,6 +222,7 @@ class TestLanguage < Test::Unit::TestCase
end
def test_find_by_name
assert_nil Language.find_by_name(nil)
ruby = Language['Ruby']
assert_equal ruby, Language.find_by_name('Ruby')
end
@@ -317,6 +319,7 @@ class TestLanguage < Test::Unit::TestCase
assert_equal 'C#', Language['c#'].name
assert_equal 'C#', Language['csharp'].name
assert_nil Language['defunkt']
assert_nil Language[nil]
end
def test_find_ignores_case