Detect KiCAD module files as generated

This commit is contained in:
Paul Chaignon
2015-04-19 16:19:52 +02:00
parent 0e996e4bb7
commit da9bda0e27
3 changed files with 70 additions and 1 deletions

View File

@@ -68,7 +68,8 @@ module Linguist
generated_protocol_buffer_go? ||
generated_protocol_buffer? ||
generated_jni_header? ||
vcr_cassette?
vcr_cassette? ||
generated_kicad_module?
end
# Internal: Is the blob an Xcode file?
@@ -311,5 +312,18 @@ module Linguist
return false unless lines.count > 1
return lines[0].include?("Generated by Cython")
end
# Internal: Is it a KiCAD module file?
#
# KiCAD module files contain:
# PCBNEW-LibModule-V1 yyyy-mm-dd h:mm:ss XM
# on the first line.
#
# Return true of false
def generated_kicad_module?
return false unless extname == '.mod'
return false unless lines.count > 1
return lines[0].include?("PCBNEW-LibModule-V")
end
end
end

50
test/fixtures/Generated/ABM8G.mod vendored Normal file
View File

@@ -0,0 +1,50 @@
PCBNEW-LibModule-V1 Wed 10 Aug 2011 05:57:27 PM COT
# encoding utf-8
$INDEX
ABM8G
$EndINDEX
$MODULE ABM8G
Po 0 0 0 15 4E430CBD 4E430CC5 ~~
Li ABM8G
Sc 4E430CC5
AR
Op 0 0 0
T0 591 -1378 354 354 0 39 N V 21 N "ABM8G"
T1 0 787 354 354 0 39 N V 21 N "VAL**"
DS -591 394 1299 394 79 21
DS 1299 394 1299 -1063 79 21
DS 1299 -1063 -472 -1063 79 21
DS -472 -1063 -472 472 79 21
DS -472 472 -472 551 79 21
DS -472 551 -591 551 79 21
DS -591 551 -591 433 79 21
$PAD
Sh "1" R 551 472 0 0 0
Dr 0 0 0
At SMD N 00888000
Ne 0 ""
Po 0 0
$EndPAD
$PAD
Sh "2" R 551 472 0 0 0
Dr 0 0 0
At SMD N 00888000
Ne 0 ""
Po 866 0
$EndPAD
$PAD
Sh "3" R 551 472 0 0 0
Dr 0 0 0
At SMD N 00888000
Ne 0 ""
Po 866 -669
$EndPAD
$PAD
Sh "4" R 551 472 0 0 0
Dr 0 0 0
At SMD N 00888000
Ne 0 ""
Po 0 -669
$EndPAD
$EndMODULE ABM8G
$EndLIBRARY

View File

@@ -243,6 +243,9 @@ class TestBlob < Minitest::Test
# Cython-generated C/C++
assert sample_blob("C/sgd_fast.c").generated?
assert sample_blob("C++/wrapper_inner.cpp").generated?
# KiCAD module files
assert fixture_blob("Generated/ABM8G.mod").generated?
end
def test_vendored
@@ -536,6 +539,8 @@ class TestBlob < Minitest::Test
blob = fixture_blob(filepath)
if language == 'Data'
assert blob.language.nil?, "A language was found for #{filepath}"
elsif language == 'Generated'
assert blob.generated?, "#{filepath} is not a generated file"
else
assert blob.language, "No language for #{filepath}"
assert_equal language, blob.language.name, blob.name