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

View File

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