mirror of
https://github.com/KevinMidboe/linguist.git
synced 2026-01-03 16:05:33 +00:00
Create a separate index for lookup
This commit is contained in:
@@ -9,6 +9,7 @@ module Linguist
|
|||||||
# Langages are defined in `lib/linguist/langages.yml`.
|
# Langages are defined in `lib/linguist/langages.yml`.
|
||||||
class Language
|
class Language
|
||||||
@languages = []
|
@languages = []
|
||||||
|
@index = {}
|
||||||
@name_index = {}
|
@name_index = {}
|
||||||
@alias_index = {}
|
@alias_index = {}
|
||||||
@extension_index = {}
|
@extension_index = {}
|
||||||
@@ -30,7 +31,7 @@ module Linguist
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Language name index
|
# Language name index
|
||||||
@name_index[language.name] = language
|
@index[language.name] = @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.
|
||||||
@@ -38,7 +39,7 @@ module Linguist
|
|||||||
warn "Duplicate alias: #{name}"
|
warn "Duplicate alias: #{name}"
|
||||||
end
|
end
|
||||||
|
|
||||||
@alias_index[name] = language
|
@index[name] = @alias_index[name] = language
|
||||||
end
|
end
|
||||||
|
|
||||||
language.extensions.each do |extension|
|
language.extensions.each do |extension|
|
||||||
@@ -134,6 +135,8 @@ module Linguist
|
|||||||
#
|
#
|
||||||
# name - The String name of the Language
|
# name - The String name of the Language
|
||||||
#
|
#
|
||||||
|
# TODO: Consider returning nil instead of Text
|
||||||
|
#
|
||||||
# Examples
|
# Examples
|
||||||
#
|
#
|
||||||
# Language['Ruby']
|
# Language['Ruby']
|
||||||
@@ -142,9 +145,9 @@ module Linguist
|
|||||||
# Language['ruby']
|
# Language['ruby']
|
||||||
# # => #<Language name="Ruby">
|
# # => #<Language name="Ruby">
|
||||||
#
|
#
|
||||||
# Returns the Language or nil if none was found.
|
# Returns the Language or Text if none was found.
|
||||||
def self.[](name)
|
def self.[](name)
|
||||||
find_by_name(name) || find_by_alias(name) || self['Text']
|
@index[name] || self['Text']
|
||||||
end
|
end
|
||||||
|
|
||||||
# Public: A List of popular languages
|
# Public: A List of popular languages
|
||||||
|
|||||||
Reference in New Issue
Block a user