From 9fa7adaa61efe51a4f8b2c8bce9c9ba10931d0cc Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Date: Tue, 3 Feb 2015 00:43:53 -0800 Subject: [PATCH] #1638 New heuristics to distinguish between AsciiDoc, AGS Script, and Public Key. --- lib/linguist/heuristics.rb | 10 ++++++++-- test/test_heuristics.rb | 7 ++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index ee1a3625..578dc872 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -150,8 +150,14 @@ module Linguist end end - disambiguate "AsciiDoc", "AGS Script" do |data| - Language["AsciiDoc"] if /^=+(\s|\n)/.match(data) + disambiguate "AsciiDoc", "AGS Script", "Public Key" do |data| + if /^=+(\s|\n)/.match(data) + Language["AsciiDoc"] + elsif /^((\/\/)|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+))\s*[;\(]?/.match(data) + Language["AGS Script"] + else /^-----BEGIN/.match(data) + Language["Public Key"] + end end disambiguate "FORTRAN", "Forth" do |data| diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 3ea4af78..b6890761 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -68,11 +68,12 @@ class TestHeuristcs < Minitest::Test }) end - # Candidate languages = ["AGS Script", "AsciiDoc"] - def test_asc_asciidoc_by_heuristics + # Candidate languages = ["AGS Script", "AsciiDoc", "Public Key"] + def test_asc_by_heuristics assert_heuristics({ "AsciiDoc" => "AsciiDoc/list.asc", - "AGS Script" => nil + "AGS Script" => "AGS Script/GlobalScript.asc", + "Public Key" => "Public Key/sunCert.asc" }) end