From aa9ca9a81e03549a032460aa5d9d76e677ba5bfd Mon Sep 17 00:00:00 2001 From: ABaldwinHunter Date: Mon, 24 Oct 2016 14:43:59 -0400 Subject: [PATCH 1/3] Guard against divide by zero error Fixes a bug where empty js file could cause an analysis to error --- lib/cc/engine/analyzers/javascript/minification_checker.rb | 6 ++++-- .../analyzers/javascript/minification_checker_spec.rb | 5 +++++ spec/fixtures/empty_file.js | 0 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 spec/fixtures/empty_file.js diff --git a/lib/cc/engine/analyzers/javascript/minification_checker.rb b/lib/cc/engine/analyzers/javascript/minification_checker.rb index e241374b..6b08a61a 100644 --- a/lib/cc/engine/analyzers/javascript/minification_checker.rb +++ b/lib/cc/engine/analyzers/javascript/minification_checker.rb @@ -10,8 +10,10 @@ def initialize(path) end def minified? - ratio = content.chars.count / content.lines.count - ratio >= MINIFIED_AVG_LINE_LENGTH_CUTOFF + if content.lines.count != 0 + ratio = content.chars.count / content.lines.count + ratio >= MINIFIED_AVG_LINE_LENGTH_CUTOFF + end end private diff --git a/spec/cc/engine/analyzers/javascript/minification_checker_spec.rb b/spec/cc/engine/analyzers/javascript/minification_checker_spec.rb index 4a27a03a..2d338e4f 100644 --- a/spec/cc/engine/analyzers/javascript/minification_checker_spec.rb +++ b/spec/cc/engine/analyzers/javascript/minification_checker_spec.rb @@ -18,6 +18,11 @@ module Javascript path = fixture_path("normal_js_file.js") expect(MinificationChecker.new(path)).to_not be_minified end + + it "returns false for empty files" do + path = fixture_path("empty_file.js") + expect(MinificationChecker.new(path)).to_not be_minified + end end end end diff --git a/spec/fixtures/empty_file.js b/spec/fixtures/empty_file.js new file mode 100644 index 00000000..e69de29b From ae51621c41532b154b5375a1348f40d3b13a4af9 Mon Sep 17 00:00:00 2001 From: ABaldwinHunter Date: Mon, 24 Oct 2016 14:57:42 -0400 Subject: [PATCH 2/3] Fix rubocop issue --- lib/cc/engine/analyzers/javascript/minification_checker.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cc/engine/analyzers/javascript/minification_checker.rb b/lib/cc/engine/analyzers/javascript/minification_checker.rb index 6b08a61a..16eb26e2 100644 --- a/lib/cc/engine/analyzers/javascript/minification_checker.rb +++ b/lib/cc/engine/analyzers/javascript/minification_checker.rb @@ -10,7 +10,7 @@ def initialize(path) end def minified? - if content.lines.count != 0 + if content.lines.count.nonzero? ratio = content.chars.count / content.lines.count ratio >= MINIFIED_AVG_LINE_LENGTH_CUTOFF end From accd1b38f7ea50c41eedd8525687dbd2ae20c256 Mon Sep 17 00:00:00 2001 From: ABaldwinHunter Date: Mon, 24 Oct 2016 14:58:49 -0400 Subject: [PATCH 3/3] Ensure method ending with ? returns boolean --- lib/cc/engine/analyzers/javascript/minification_checker.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/cc/engine/analyzers/javascript/minification_checker.rb b/lib/cc/engine/analyzers/javascript/minification_checker.rb index 16eb26e2..7ede7ab5 100644 --- a/lib/cc/engine/analyzers/javascript/minification_checker.rb +++ b/lib/cc/engine/analyzers/javascript/minification_checker.rb @@ -13,6 +13,8 @@ def minified? if content.lines.count.nonzero? ratio = content.chars.count / content.lines.count ratio >= MINIFIED_AVG_LINE_LENGTH_CUTOFF + else + false end end