From 20aee11cea522df3d4646a604e651de2a8a88ab7 Mon Sep 17 00:00:00 2001 From: Danijar Hafner Date: Sat, 1 Nov 2014 19:13:19 +0100 Subject: [PATCH 1/2] Exclude minified JavaScript and CSS Those files are either external libraries or builds of the repository itself. In any case they are generated automatically and shouldn't count in the language statistics. This also simplifies some of the rules that had to exclude both minified and normal dependencies. --- lib/linguist/vendor.yml | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 490a910f..343202dd 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -36,15 +36,17 @@ # Go dependencies - Godeps/_workspace/ -# Bootstrap minified css and js -- (^|/)bootstrap([^.]*)(\.min)?\.(js|css)$ +# Exclude minified JavaScript and CSS +- \.min\.(js|css)$ +- -min\.js$ + +# Bootstrap css and js +- (^|/)bootstrap([^.]*)\.(js|css)$ # Font Awesome -- font-awesome.min.css - font-awesome.css # Foundation css -- foundation.min.css - foundation.css # Normalize.css @@ -56,7 +58,6 @@ # Animate.css - animate.css -- animate.min.css # Vendored dependencies - third[-_]?party/ @@ -73,12 +74,12 @@ ## Commonly Bundled JavaScript frameworks ## # jQuery -- (^|/)jquery([^.]*)(\.min)?\.js$ -- (^|/)jquery\-\d\.\d+(\.\d+)?(\.min)?\.js$ +- (^|/)jquery([^.]*)\.js$ +- (^|/)jquery\-\d\.\d+(\.\d+)?\.js$ # jQuery UI -- (^|/)jquery\-ui(\-\d\.\d+(\.\d+)?)?(\.\w+)?(\.min)?\.(js|css)$ -- (^|/)jquery\.(ui|effects)\.([^.]*)(\.min)?\.(js|css)$ +- (^|/)jquery\-ui(\-\d\.\d+(\.\d+)?)?(\.\w+)?\.(js|css)$ +- (^|/)jquery\.(ui|effects)\.([^.]*)\.(js|css)$ # Prototype - (^|/)prototype(.*)\.js$ @@ -116,21 +117,20 @@ - (^|/)shLegacy\.js$ # AngularJS -- (^|/)angular([^.]*)(\.min)?\.js$ +- (^|/)angular([^.]*)\.js$ # D3.js -- (^|\/)d3(\.v\d+)?([^.]*)(\.min)?\.js$ +- (^|\/)d3(\.v\d+)?([^.]*)\.js$ # React -- (^|/)react(-[^.]*)?(\.min)?\.js$ +- (^|/)react(-[^.]*)?\.js$ # Modernizr -- (^|/)modernizr\-\d\.\d+(\.\d+)?(\.min)?\.js$ +- (^|/)modernizr\-\d\.\d+(\.\d+)?\.js$ - (^|/)modernizr\.custom\.\d+\.js$ # Knockout - (^|/)knockout-(\d+\.){3}(debug\.)?js$ -- knockout-min.js ## Python ## @@ -168,8 +168,8 @@ - \.intellisense\.js$ # jQuery validation plugin (MS bundles this with asp.net mvc) -- (^|/)jquery([^.]*)\.validate(\.unobtrusive)?(\.min)?\.js$ -- (^|/)jquery([^.]*)\.unobtrusive\-ajax(\.min)?\.js$ +- (^|/)jquery([^.]*)\.validate(\.unobtrusive)?\.js$ +- (^|/)jquery([^.]*)\.unobtrusive\-ajax\.js$ # Microsoft Ajax - (^|/)[Mm]icrosoft([Mm]vc)?([Aa]jax|[Vv]alidation)(\.debug)?\.js$ @@ -196,7 +196,7 @@ - (^|/)extjs/welcome/ # Html5shiv -- (^|/)html5shiv(\.min)?\.js$ +- (^|/)html5shiv\.js$ # Samples folders - ^[Ss]amples/ @@ -215,8 +215,8 @@ - ^[Tt]est/fixtures/ # PhoneGap/Cordova -- (^|/)cordova([^.]*)(\.min)?\.js$ -- (^|/)cordova\-\d\.\d(\.\d)?(\.min)?\.js$ +- (^|/)cordova([^.]*)\.js$ +- (^|/)cordova\-\d\.\d(\.\d)?\.js$ # Foundation js - foundation(\..*)?\.js$ @@ -236,7 +236,6 @@ # Octicons - octicons.css -- octicons.min.css - sprockets-octicons.scss # Typesafe Activator From 1dbbcb73e7e68bd9dc7f117201ab60a6b07d1061 Mon Sep 17 00:00:00 2001 From: Danijar Hafner Date: Mon, 3 Nov 2014 19:41:31 +0100 Subject: [PATCH 2/2] Add tests for minified JavaScript and CSS Also, exclude -min.css pattern, like already done for JavaScript files --- lib/linguist/vendor.yml | 5 ++--- test/test_blob.rb | 8 ++++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 343202dd..0bf4bb6c 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -36,9 +36,8 @@ # Go dependencies - Godeps/_workspace/ -# Exclude minified JavaScript and CSS -- \.min\.(js|css)$ -- -min\.js$ +# Minified JavaScript and CSS +- (\.|-)min\.(js|css)$ # Bootstrap css and js - (^|/)bootstrap([^.]*)\.(js|css)$ diff --git a/test/test_blob.rb b/test/test_blob.rb index fab85779..1d37050d 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -304,6 +304,14 @@ class TestBlob < Test::Unit::TestCase # Debian packaging assert blob("debian/cron.d").vendored? + # Minified JavaScript and CSS + assert blob("foo.min.js").vendored? + assert blob("foo.min.css").vendored? + assert blob("foo-min.js").vendored? + assert blob("foo-min.css").vendored? + assert !blob("foomin.css").vendored? + assert !blob("foo.min.txt").vendored? + # Prototype assert !blob("public/javascripts/application.js").vendored? assert blob("public/javascripts/prototype.js").vendored?