Make Language name finder case sensitive

This commit is contained in:
Joshua Peek
2011-06-18 20:29:47 -05:00
parent 70d6cf21d9
commit a75a57eb5e
2 changed files with 8 additions and 12 deletions

View File

@@ -25,12 +25,12 @@ module Linguist
@languages << language
# All Language names should be unique. Warn if there is a duplicate.
if @name_index.key?(language.name.downcase)
if @name_index.key?(language.name)
warn "Duplicate language name: #{language.name}"
end
# Case-insensitive language name index
@name_index[language.name.downcase] = language
# Language name index
@name_index[language.name] = language
language.aliases.each do |name|
# All Language aliases should be unique. Warn if there is a duplicate.
@@ -75,7 +75,7 @@ module Linguist
# Public: Look up Language by its proper name.
#
# name - The case-insensitive String name of the Language
# name - The String name of the Language
#
# Examples
#
@@ -84,12 +84,12 @@ module Linguist
#
# Returns the Language or nil if none was found.
def self.find_by_name(name)
@name_index[name.downcase]
@name_index[name]
end
# Public: Look up Language by one of its aliases.
#
# name - A case-sensitive String alias of the Language
# name - A String alias of the Language
#
# Examples
#
@@ -98,7 +98,7 @@ module Linguist
#
# Returns the Lexer or nil if none was found.
def self.find_by_alias(name)
@alias_index[name.downcase]
@alias_index[name]
end
# Public: Look up Language by extension.
@@ -132,7 +132,7 @@ module Linguist
# Public: Look up Language by its name or lexer.
#
# name - The case-insensitive String name of the Language
# name - The String name of the Language
#
# Examples
#

View File

@@ -262,8 +262,6 @@ class TestLanguage < Test::Unit::TestCase
def test_find_by_name
ruby = Language['Ruby']
assert_equal ruby, Language.find_by_name('Ruby')
assert_equal ruby, Language.find_by_name('ruby')
assert_equal ruby, Language.find_by_name('RUBY')
end
def test_find_all_by_name
@@ -316,14 +314,12 @@ class TestLanguage < Test::Unit::TestCase
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