From 76a6c4cc5d8df203a50bc9c97bf38b192aabcd42 Mon Sep 17 00:00:00 2001 From: Dan Thiffault Date: Tue, 5 Mar 2013 10:42:39 +0530 Subject: [PATCH 1/2] Use less builtin compression --- README.md | 4 ++-- dieter-core/resources/vendor/less-wrapper.js | 14 +++++++++++--- dieter-core/src/dieter/asset/less.clj | 2 +- dieter-core/test/dieter/test/asset/less.clj | 11 +++++++---- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index fe11bad..c16f887 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ In order to include links to your assets you may use the link-to-asset function. ## Configuration Options :engine :rhino ; defaults to :rhino; :v8 is much much faster - :compress false ; minify using Google Closure Compiler + :compress false ; minify using Google Closure Compiler & Less compression :asset-roots ["resources"] ; must have a folder called 'assets'. Searched for assets in the order listed. :cache-root "resources/asset-cache" ; compiled assets are cached here :cache-mode :development ; or :production. :development disables cacheing @@ -113,4 +113,4 @@ Distributed under the Eclipse Public License, the same as Clojure. * Add mime type headers for dieter files ### Version 0.2.0 -* Handlebars templates are now a separate library. [dieter-ember](https://github.com/edgecase/dieter-ember) \ No newline at end of file +* Handlebars templates are now a separate library. [dieter-ember](https://github.com/edgecase/dieter-ember) diff --git a/dieter-core/resources/vendor/less-wrapper.js b/dieter-core/resources/vendor/less-wrapper.js index 304dc52..3606718 100644 --- a/dieter-core/resources/vendor/less-wrapper.js +++ b/dieter-core/resources/vendor/less-wrapper.js @@ -30,9 +30,9 @@ function loadStyleSheet(sheet, callback, reload, remaining) { }); } -function compileLess(input, name) { +function compileLess(input, name, shouldCompress) { var output, - compress = false, + compress = shouldCompress, i; startingName = name; @@ -49,9 +49,17 @@ function compileLess(input, name) { var parser = new less.Parser(); parser.parse(input, function (e, root) { if (e) { throw(e); } - result = root.toCSS(); + result = root.toCSS({compress: compress}); }); } catch(e) { throw format_error(e); } return result; }; + +function compileLessNoCompress(input, name) { + return compileLess(input, name, false); +} + +function compileLessCompress(input, name) { + return compileLess(input, name, true); +} diff --git a/dieter-core/src/dieter/asset/less.clj b/dieter-core/src/dieter/asset/less.clj index 2480189..d60990b 100644 --- a/dieter-core/src/dieter/asset/less.clj +++ b/dieter-core/src/dieter/asset/less.clj @@ -12,7 +12,7 @@ (if (-> settings/*settings* :engine (= :rhino)) ["less-rhino-wrapper.js" "less-wrapper.js" "less-rhino-1.3.3.js"] ["less-wrapper.js" "less-rhino-1.3.3.js"]) - "compileLess" + (if (settings/compress?) "compileLessCompress" "compileLessNoCompress") file)) (defrecord Less [file] diff --git a/dieter-core/test/dieter/test/asset/less.clj b/dieter-core/test/dieter/test/asset/less.clj index ed40ecb..f32da09 100644 --- a/dieter-core/test/dieter/test/asset/less.clj +++ b/dieter-core/test/dieter/test/asset/less.clj @@ -1,19 +1,22 @@ (ns dieter.test.asset.less (:require [clojure.java.io :as io] [dieter.asset.less :as less] + [dieter.settings :as settings] [dieter.test.helpers :as h]) (:use clojure.test)) (deftest test-preprocess-less - (testing "basic less file" + (settings/with-options + {:compress false} + (testing "basic less file" (is (= "#header {\n color: #4d926f;\n}\n" (less/preprocess-less (io/file "test/fixtures/assets/stylesheets/basic.less"))))) - (testing "file with imports" + (testing "file with imports" (is (= "#includee {\n color: white;\n}\n#includee-three {\n color: white;\n}\n#includee-two {\n color: white;\n}\n#includer {\n color: black;\n}\n" (less/preprocess-less (io/file "test/fixtures/assets/stylesheets/includes.less"))))) - (testing "bad less syntax" + (testing "bad less syntax" (try (less/preprocess-less (io/file "test/fixtures/assets/stylesheets/bad.less")) (is false) ; test it throws (catch Exception e (is (h/has-text? (.toString e) "Syntax Error on line 1")) - (is (h/has-text? (.toString e) "@import \"includeme.less\"")))))) + (is (h/has-text? (.toString e) "@import \"includeme.less\""))))))) From 2bddf9e3da6dff0b6d6874b52e1116acdb992115 Mon Sep 17 00:00:00 2001 From: Dan Thiffault Date: Thu, 21 Mar 2013 16:33:33 +0530 Subject: [PATCH 2/2] Fixing indentation error --- dieter-core/resources/vendor/less-wrapper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dieter-core/resources/vendor/less-wrapper.js b/dieter-core/resources/vendor/less-wrapper.js index 3606718..f861bbb 100644 --- a/dieter-core/resources/vendor/less-wrapper.js +++ b/dieter-core/resources/vendor/less-wrapper.js @@ -49,7 +49,7 @@ function compileLess(input, name, shouldCompress) { var parser = new less.Parser(); parser.parse(input, function (e, root) { if (e) { throw(e); } - result = root.toCSS({compress: compress}); + result = root.toCSS({compress: compress}); }); } catch(e) { throw format_error(e); }