From ac89ff7f012dbe21487404890d82e951584effee Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Mon, 1 Aug 2011 10:24:21 -0500 Subject: [PATCH] Require primary extension to be set --- lib/linguist/language.rb | 8 +++++++- lib/linguist/languages.yml | 1 + test/test_language.rb | 6 ++++++ 3 files changed, 14 insertions(+), 1 deletion(-) 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