A Language should know about it's language_id

This commit is contained in:
Arfon Smith
2016-09-12 22:02:49 -07:00
parent e0d890240b
commit 7cda13afcb
2 changed files with 23 additions and 0 deletions

View File

@@ -289,6 +289,9 @@ module Linguist
# Set legacy search term
@search_term = attributes[:search_term] || default_alias_name
# Set the language_id
@language_id = attributes[:language_id]
# Set extensions or default to [].
@extensions = attributes[:extensions] || []
@interpreters = attributes[:interpreters] || []
@@ -351,6 +354,17 @@ module Linguist
# Returns the name String
attr_reader :search_term
# Public: Get language_id (used in GitHub search)
#
# Examples
#
# # => "1"
# # => "2"
# # => "3"
#
# Returns the integer language_id
attr_reader :language_id
# Public: Get the name of a TextMate-compatible scope
#
# Returns the scope
@@ -547,6 +561,7 @@ module Linguist
:group_name => options['group'],
:searchable => options.fetch('searchable', true),
:search_term => options['search_term'],
:language_id => options['language_id'],
:extensions => Array(options['extensions']),
:interpreters => options['interpreters'].sort,
:filenames => options['filenames'],

View File

@@ -386,6 +386,14 @@ class TestLanguage < Minitest::Test
assert missing.empty?, message
end
def test_all_languages_have_a_language_id_set
missing = Language.all.select { |language| language.language_id.nil? }
message = "The following languages do not have a language_id listed in languages.yml. Please add language_id fields for all new languages.\n"
missing.each { |language| message << "#{language.name}\n" }
assert missing.empty?, message
end
def test_all_languages_have_a_valid_ace_mode
ace_fixture_path = File.join('test', 'fixtures', 'ace_modes.json')
skip("No ace_modes.json file") unless File.exist?(ace_fixture_path)