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:
		| @@ -24,6 +24,7 @@ module Linguist | |||||||
|     @index              = {} |     @index              = {} | ||||||
|     @name_index         = {} |     @name_index         = {} | ||||||
|     @alias_index        = {} |     @alias_index        = {} | ||||||
|  |     @language_id_index  = {} | ||||||
|  |  | ||||||
|     @extension_index          = Hash.new { |h,k| h[k] = [] } |     @extension_index          = Hash.new { |h,k| h[k] = [] } | ||||||
|     @interpreter_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 |         @filename_index[filename] << language | ||||||
|       end |       end | ||||||
|  |  | ||||||
|  |       @language_id_index[language.language_id] = language | ||||||
|  |  | ||||||
|       language |       language | ||||||
|     end |     end | ||||||
|  |  | ||||||
| @@ -193,6 +196,19 @@ module Linguist | |||||||
|       @interpreter_index[interpreter] |       @interpreter_index[interpreter] | ||||||
|     end |     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. |     # Public: Look up Language by its name. | ||||||
|     # |     # | ||||||
|   | |||||||
| @@ -77,6 +77,12 @@ class TestLanguage < Minitest::Test | |||||||
|     assert_equal 421, Language['xBase'].language_id |     assert_equal 421, Language['xBase'].language_id | ||||||
|   end |   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 |   def test_groups | ||||||
|     # Test a couple identity cases |     # Test a couple identity cases | ||||||
|     assert_equal Language['Perl'], Language['Perl'].group |     assert_equal Language['Perl'], Language['Perl'].group | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user