Allow explicit primary extensions

This commit is contained in:
Joshua Peek
2011-07-25 11:35:05 -05:00
parent 81cc036fc1
commit 6aedcfd0da
2 changed files with 28 additions and 0 deletions

View File

@@ -222,6 +222,13 @@ module Linguist
@overrides = attributes[:overrides] || []
@filenames = attributes[:filenames] || []
@primary_extension = default_primary_extension || extensions.first
# Prepend primary extension unless its already included
if primary_extension && !extensions.include?(primary_extension)
@extensions = [primary_extension] + extensions
end
# Set popular, and searchable flags
@popular = attributes.key?(:popular) ? attributes[:popular] : false
@searchable = attributes.key?(:searchable) ? attributes[:searchable] : true
@@ -288,6 +295,14 @@ module Linguist
# Returns the extensions Array
attr_reader :extensions
# Public: Get primary extension
#
# Defaults to the first extension but can be overriden
# in the languages.yml.
#
# Returns the extension String.
attr_reader :primary_extension
# Internal: Get overridden extensions.
#
# Returns the extensions Array.
@@ -309,6 +324,13 @@ module Linguist
name.downcase.gsub(/\s/, '-')
end
# Internal: Get default primary extension.
#
# Returns the extension String.
def default_primary_extension
extensions.first
end
# Public: Get Language group
#
# Returns a Language

View File

@@ -273,6 +273,12 @@ class TestLanguage < Test::Unit::TestCase
assert Language['Ruby'].extensions.include?('.rb')
end
def test_primary_extension
assert_equal '.pl', Language['Perl'].primary_extension
assert_equal '.py', Language['Python'].primary_extension
assert_equal '.rb', Language['Ruby'].primary_extension
end
def test_eql
assert Language['Ruby'].eql?(Language['Ruby'])
assert !Language['Ruby'].eql?(Language['Python'])