From 7cda13afcb85ead78acbb71488c808cbe6e3217f Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 12 Sep 2016 22:02:49 -0700 Subject: [PATCH] A Language should know about it's language_id --- lib/linguist/language.rb | 15 +++++++++++++++ test/test_language.rb | 8 ++++++++ 2 files changed, 23 insertions(+) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 9498e5a8..44c08401 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -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'], diff --git a/test/test_language.rb b/test/test_language.rb index 5613f235..c743f089 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -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)