mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	The language attribute is still maintained as the first extension found. This allows Mercury to be properly detected by Linguist, as per #748.
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'test/unit'
 | 
						|
 | 
						|
class TestPedantic < Test::Unit::TestCase
 | 
						|
  Lib = File.expand_path("../../lib/linguist", __FILE__)
 | 
						|
 | 
						|
  def file(name)
 | 
						|
    File.read(File.join(Lib, name))
 | 
						|
  end
 | 
						|
 | 
						|
  def test_language_names_are_sorted
 | 
						|
    languages = []
 | 
						|
    file("languages.yml").lines.each do |line|
 | 
						|
      if line =~ /^(\w+):$/
 | 
						|
        languages << $1
 | 
						|
      end
 | 
						|
    end
 | 
						|
    assert_sorted languages
 | 
						|
  end
 | 
						|
 | 
						|
  def test_extensions_are_sorted
 | 
						|
    extensions = nil
 | 
						|
    file("languages.yml").lines.each do |line|
 | 
						|
      if line =~ /^  extensions:$/
 | 
						|
        extensions = []
 | 
						|
      elsif extensions && line =~ /^  - \.([\w-]+)( *#.*)?$/
 | 
						|
        extensions << $1
 | 
						|
      else
 | 
						|
        assert_sorted extensions[1..-1] if extensions
 | 
						|
        extensions = nil
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def test_filenames_are_sorted
 | 
						|
    filenames = nil
 | 
						|
    file("languages.yml").lines.each do |line|
 | 
						|
      if line =~ /^  filenames:$/
 | 
						|
        filenames = []
 | 
						|
      elsif filenames && line =~ /^  - \.(\w+)$/
 | 
						|
        filenames << $1
 | 
						|
      else
 | 
						|
        assert_sorted filenames if filenames
 | 
						|
        filenames = nil
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def assert_sorted(list)
 | 
						|
    previous = nil
 | 
						|
    list.each do |item|
 | 
						|
      if previous && previous > item
 | 
						|
        flunk "#{previous} should come after #{item}"
 | 
						|
      end
 | 
						|
      previous = item
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |