mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Narrow test and set ACTIVE flag for heuristics
This commit is contained in:
		| @@ -1,6 +1,8 @@ | ||||
| module Linguist | ||||
|   # A collection of simple heuristics that can be used to better analyze languages. | ||||
|   class Heuristics | ||||
|     ACTIVE = false | ||||
|  | ||||
|     # Public: Given an array of String language names, | ||||
|     # apply heuristics against the given data and return an array | ||||
|     # of matching languages, or nil. | ||||
| @@ -10,10 +12,12 @@ module Linguist | ||||
|     # | ||||
|     # Returns an array of Languages or [] | ||||
|     def self.find_by_heuristics(data, languages) | ||||
|       if active? | ||||
|         if languages.all? { |l| ["Objective-C", "C++"].include?(l) } | ||||
|           disambiguate_h(data, languages) | ||||
|         end | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     # .h extensions are ambigious between C, C++, and Objective-C. | ||||
|     # We want to shortcut look for Objective-C. | ||||
| @@ -24,5 +28,9 @@ module Linguist | ||||
|       matches << Language["Objective-C"] if data.include?("@interface") | ||||
|       matches | ||||
|     end | ||||
|  | ||||
|     def self.active? | ||||
|       !!ACTIVE | ||||
|     end | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -23,7 +23,7 @@ class TestHeuristcs < Test::Unit::TestCase | ||||
|   def test_obj_c_by_heuristics | ||||
|     languages = ["C++", "Objective-C"] | ||||
|     all_h_fixtures("Objective-C").each do |fixture| | ||||
|       results = Heuristics.find_by_heuristics(fixture("Objective-C/#{File.basename(fixture)}"), languages) | ||||
|       results = Heuristics.disambiguate_h(fixture("Objective-C/#{File.basename(fixture)}"), languages) | ||||
|       assert_equal Language["Objective-C"], results.first | ||||
|     end | ||||
|   end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user