diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index aa75423d..85cd6238 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -295,11 +295,17 @@ module Linguist # Returns the extensions Array attr_reader :extensions - # Public: Get primary extension + # Deprecated: Get primary extension # # Defaults to the first extension but can be overriden # in the languages.yml. # + # The primary extension can not be nil. Tests should verify this. + # + # This attribute is only used by app/helpers/gists_helper.rb for + # creating the language dropdown. It really should be using `name` + # instead. Would like to drop primary extension. + # # Returns the extension String. attr_reader :primary_extension diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 46e7f847..7ab74cde 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -547,6 +547,7 @@ Max/MSP: MiniD: # Legacy searchable: false + primary_extension: .minid # Dummy extension Mirah: type: programming diff --git a/test/test_language.rb b/test/test_language.rb index 1906763b..bea9ae9d 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -277,6 +277,12 @@ class TestLanguage < Test::Unit::TestCase assert_equal '.pl', Language['Perl'].primary_extension assert_equal '.py', Language['Python'].primary_extension assert_equal '.rb', Language['Ruby'].primary_extension + + # This is a nasty requirement, but theres some code in GitHub that + # expects this. Really want to drop this. + Language.all.each do |language| + assert language.primary_extension, "#{language} has no primary extension" + end end def test_eql