diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index ad65bafb..007f5622 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -33,9 +33,10 @@ module Linguist matches end - def self_disambiguate_pl(data, languages) + def self.disambiguate_pl(data, languages) matches = [] matches << Language["Prolog"] if data.include?(":-") + matches << Language["Perl"] if data.include?("use strict") matches end diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 5a036f1f..a7847173 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -38,4 +38,16 @@ class TestHeuristcs < Test::Unit::TestCase match = Language.detect("Hello.m", fixture("Objective-C/hello.m")) assert_equal Language["Objective-C"], match end + + def test_pl_prolog_by_heuristics + languages = ["Perl", "Prolog"] + results = Heuristics.disambiguate_pl(fixture("Prolog/turing.pl"), languages) + assert_equal Language["Prolog"], results.first + end + + def test_pl_perl_by_heuristics + languages = ["Perl", "Prolog"] + results = Heuristics.disambiguate_pl(fixture("Perl/perl-test.t"), languages) + assert_equal Language["Perl"], results.first + end end