mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +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`. | ||||
|   class Language | ||||
|     @languages       = [] | ||||
|     @index           = {} | ||||
|     @name_index      = {} | ||||
|     @alias_index     = {} | ||||
|     @extension_index = {} | ||||
| @@ -30,7 +31,7 @@ module Linguist | ||||
|       end | ||||
|  | ||||
|       # Language name index | ||||
|       @name_index[language.name] = language | ||||
|       @index[language.name] = @name_index[language.name] = language | ||||
|  | ||||
|       language.aliases.each do |name| | ||||
|         # All Language aliases should be unique. Warn if there is a duplicate. | ||||
| @@ -38,7 +39,7 @@ module Linguist | ||||
|           warn "Duplicate alias: #{name}" | ||||
|         end | ||||
|  | ||||
|         @alias_index[name] = language | ||||
|         @index[name] = @alias_index[name] = language | ||||
|       end | ||||
|  | ||||
|       language.extensions.each do |extension| | ||||
| @@ -134,6 +135,8 @@ module Linguist | ||||
|     # | ||||
|     # name - The String name of the Language | ||||
|     # | ||||
|     # TODO: Consider returning nil instead of Text | ||||
|     # | ||||
|     # Examples | ||||
|     # | ||||
|     #   Language['Ruby'] | ||||
| @@ -142,9 +145,9 @@ module Linguist | ||||
|     #   Language['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) | ||||
|       find_by_name(name) || find_by_alias(name) || self['Text'] | ||||
|       @index[name] || self['Text'] | ||||
|     end | ||||
|  | ||||
|     # Public: A List of popular languages | ||||
|   | ||||
		Reference in New Issue
	
	Block a user