diff --git a/github-linguist.gemspec b/github-linguist.gemspec index f10f8d1f..ca7647b8 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -1,6 +1,6 @@ Gem::Specification.new do |s| s.name = 'github-linguist' - s.version = '2.10.11' + s.version = '2.10.12' s.summary = "GitHub Language detection" s.description = 'We use this library at GitHub to detect blob languages, highlight code, ignore binary files, suppress generated files in diffs, and generate language breakdown graphs.' diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index 14c64444..5c3de141 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -62,7 +62,8 @@ module Linguist generated_protocol_buffer? || generated_jni_header? || composer_lock? || - node_modules? + node_modules? || + vcr_cassette? end # Internal: Is the blob an XCode project file? @@ -235,5 +236,15 @@ module Linguist def composer_lock? !!name.match(/composer.lock/) end + + # Is the blob a VCR Cassette file? + # + # Returns true or false + def vcr_cassette? + return false unless extname == '.yml' + return false unless lines.count > 2 + # VCR Cassettes have "recorded_with: VCR" in the second last line. + return lines[-2].include?("recorded_with: VCR") + end end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f8732596..3e849946 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -254,6 +254,7 @@ C++: extensions: - .C - .c++ + - .cc - .cxx - .H - .h++ @@ -491,6 +492,9 @@ Dylan: type: programming color: "#3ebc27" primary_extension: .dylan + extensions: + - .intr + - .lid Ecere Projects: type: data @@ -556,6 +560,14 @@ F#: - .fsi - .fsx +FLUX: + type: programming + color: "#33CCFF" + primary_extension: .fx + lexer: Text only + extensions: + - .flux + FORTRAN: type: programming lexer: Fortran @@ -594,7 +606,7 @@ Fancy: - .fancypack filenames: - Fakefile - + Fantom: type: programming color: "#dbded5" @@ -1846,6 +1858,7 @@ XML: - .kml - .launch - .mxml + - .osm - .plist - .pluginspec - .ps1xml diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 3609b466..135f367c 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -117,6 +117,13 @@ # Sparkle - (^|/)Sparkle/ +## Groovy ## + +# Gradle +- (^|/)gradlew$ +- (^|/)gradlew\.bat$ +- (^|/)gradle/wrapper/ + ## .NET ## # Visual Studio IntelliSense diff --git a/samples/YAML/vcr_cassette.yml b/samples/YAML/vcr_cassette.yml new file mode 100644 index 00000000..cf21a3fb --- /dev/null +++ b/samples/YAML/vcr_cassette.yml @@ -0,0 +1,20 @@ +--- +http_interactions: +- request: + method: get + uri: http://example.com/ + body: '' + headers: {} + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - text/html;charset=utf-8 + Content-Length: + - '26' + body: This is the response body + http_version: '1.1' + recorded_at: Tue, 01 Nov 2011 04:58:44 GMT +recorded_with: VCR 2.0.0 diff --git a/test/test_blob.rb b/test/test_blob.rb index 9f56265b..3e82f7a8 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -211,6 +211,9 @@ class TestBlob < Test::Unit::TestCase assert !blob("CSS/bootstrap.css").generated? assert blob("CSS/bootstrap.min.css").generated? + # Generated VCR + assert blob("YAML/vcr_cassette.yml").generated? + assert Linguist::Generated.generated?("node_modules/grunt/lib/grunt.js", nil) end @@ -343,6 +346,14 @@ class TestBlob < Test::Unit::TestCase # Vagrant assert blob("Vagrantfile").vendored? + + # Gradle + assert blob("gradlew").vendored? + assert blob("gradlew.bat").vendored? + assert blob("gradle/wrapper/gradle-wrapper.properties").vendored? + assert blob("subproject/gradlew").vendored? + assert blob("subproject/gradlew.bat").vendored? + assert blob("subproject/gradle/wrapper/gradle-wrapper.properties").vendored? end def test_language