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`.
|
# Languages are defined in `lib/linguist/languages.yml`.
|
||||||
class Language
|
class Language
|
||||||
@languages = []
|
@languages = []
|
||||||
@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