mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Adding basic find_by_id functionality to Language
This commit is contained in:
		| @@ -20,10 +20,11 @@ module Linguist | ||||
|   # | ||||
|   # Languages are defined in `lib/linguist/languages.yml`. | ||||
|   class Language | ||||
|     @languages       = [] | ||||
|     @index           = {} | ||||
|     @name_index      = {} | ||||
|     @alias_index     = {} | ||||
|     @languages          = [] | ||||
|     @index              = {} | ||||
|     @name_index         = {} | ||||
|     @alias_index        = {} | ||||
|     @language_id_index  = {} | ||||
|  | ||||
|     @extension_index          = Hash.new { |h,k| h[k] = [] } | ||||
|     @interpreter_index        = Hash.new { |h,k| h[k] = [] } | ||||
| @@ -84,6 +85,8 @@ module Linguist | ||||
|         @filename_index[filename] << language | ||||
|       end | ||||
|  | ||||
|       @language_id_index[language.language_id] = language | ||||
|  | ||||
|       language | ||||
|     end | ||||
|  | ||||
| @@ -193,6 +196,19 @@ module Linguist | ||||
|       @interpreter_index[interpreter] | ||||
|     end | ||||
|  | ||||
|     # Public: Look up Languages by its language_id. | ||||
|     # | ||||
|     # language_id - Integer of language_id | ||||
|     # | ||||
|     # Examples | ||||
|     # | ||||
|     #   Language.find_by_id(100) | ||||
|     #   # => [#<Language name="Elixir">] | ||||
|     # | ||||
|     # Returns the matching Language | ||||
|     def self.find_by_id(language_id) | ||||
|       @language_id_index[language_id.to_i] | ||||
|     end | ||||
|  | ||||
|     # Public: Look up Language by its name. | ||||
|     # | ||||
|   | ||||
| @@ -77,6 +77,12 @@ class TestLanguage < Minitest::Test | ||||
|     assert_equal 421, Language['xBase'].language_id | ||||
|   end | ||||
|  | ||||
|   def test_find_by_id | ||||
|     assert_equal Language['Elixir'], Language.find_by_id(100) | ||||
|     assert_equal Language['Ruby'], Language.find_by_id(326) | ||||
|     assert_equal Language['xBase'], Language.find_by_id(421) | ||||
|   end | ||||
|  | ||||
|   def test_groups | ||||
|     # Test a couple identity cases | ||||
|     assert_equal Language['Perl'], Language['Perl'].group | ||||
|   | ||||
		Reference in New Issue
	
	Block a user