diff --git a/.travis.yml b/.travis.yml index 27f84b9..ef9515d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: groovy +dist: trusty jdk: - oraclejdk8 install: ./gradlew resolveAllDependencies test diff --git a/README.md b/README.md index cadddcb..77e6594 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ minifyCss { dest = "${buildDir}/all-min.css" yuicompressor { // Optional lineBreakPos = -1 + charset = 'UTF-8' } } @@ -89,6 +90,7 @@ csslint { - source = File to minify - dest = File for minified output - *(Optional)* yuicompressor.lineBreakPos = -1 (default) Insert a line break after the specified column number +- *(Optional)* yuicompressor.charset = 'UTF-8' (default) Read the input file using specified charset (e.g. 'UTF-8', 'ISO-8859-1', etc.) ### gzipCss - source = File to compress diff --git a/build.gradle b/build.gradle index a52ac82..3f428b2 100644 --- a/build.gradle +++ b/build.gradle @@ -225,6 +225,6 @@ def getPomConfiguration() { // download dependencies all at once, keeps downloads out of travis output task resolveAllDependencies { doLast { - configurations.all { it.resolve() } + configurations.findAll { it.canBeResolved } .each { it.resolve() } } } \ No newline at end of file diff --git a/plugin.gradle b/plugin.gradle index f85c304..0ee251d 100644 --- a/plugin.gradle +++ b/plugin.gradle @@ -45,6 +45,7 @@ task minify(type: com.eriwen.gradle.css.tasks.MinifyCssTask) { dest = file("${buildDir}/all-min.css") yuicompressor { lineBreakPos = 100 + charset = 'UTF-8' } } diff --git a/src/main/groovy/com/eriwen/gradle/css/CssMinifier.groovy b/src/main/groovy/com/eriwen/gradle/css/CssMinifier.groovy index cb82426..a354fa7 100644 --- a/src/main/groovy/com/eriwen/gradle/css/CssMinifier.groovy +++ b/src/main/groovy/com/eriwen/gradle/css/CssMinifier.groovy @@ -8,18 +8,18 @@ import com.yahoo.platform.yui.compressor.CssCompressor * @author Eric Wendelin */ class CssMinifier { - private static final String CHARSET = 'UTF-8' + public static final String UTF8_CHARSET = 'UTF-8' /** * Given input and output files, minify input file and output to given output file * @param inputFile File to be minified * @param outputFile File for minified output */ - void minifyCssFile(final File inputFile, final File outputFile, final Integer lineBreakPos) { + void minifyCssFile(final File inputFile, final File outputFile, final Integer lineBreakPos, final String charset) { Reader reader CssCompressor compressor try { - reader = new InputStreamReader(new FileInputStream(inputFile), CHARSET) + reader = new InputStreamReader(new FileInputStream(inputFile), charset) compressor = new CssCompressor(reader) } finally { // Close the input stream first, and then open the output stream, @@ -31,7 +31,7 @@ class CssMinifier { Writer writer try { - writer = new OutputStreamWriter(new FileOutputStream(outputFile), CHARSET) + writer = new OutputStreamWriter(new FileOutputStream(outputFile), charset) compressor.compress(writer, lineBreakPos) } finally { if (writer != null) { diff --git a/src/main/groovy/com/eriwen/gradle/css/YuiCompressorExtension.groovy b/src/main/groovy/com/eriwen/gradle/css/YuiCompressorExtension.groovy index 023119e..bb3a28b 100644 --- a/src/main/groovy/com/eriwen/gradle/css/YuiCompressorExtension.groovy +++ b/src/main/groovy/com/eriwen/gradle/css/YuiCompressorExtension.groovy @@ -20,4 +20,5 @@ import org.gradle.api.tasks.Input class YuiCompressorExtension { public static final NAME = "yuicompressor" @Input Integer lineBreakPos = -1 + @Input String charset = CssMinifier.UTF8_CHARSET } diff --git a/src/main/groovy/com/eriwen/gradle/css/tasks/CssTask.groovy b/src/main/groovy/com/eriwen/gradle/css/tasks/CssTask.groovy index d08b350..5c3fba2 100644 --- a/src/main/groovy/com/eriwen/gradle/css/tasks/CssTask.groovy +++ b/src/main/groovy/com/eriwen/gradle/css/tasks/CssTask.groovy @@ -25,6 +25,7 @@ class CssTask extends DefaultTask { private static final CssMinifier MINIFIER = new CssMinifier() Integer lineBreakPos = -1 + String charset = CssMinifier.CHARSET @TaskAction def run() { @@ -62,7 +63,7 @@ class CssTask extends DefaultTask { } } - MINIFIER.minifyCssFile(new File(tempPath), outputFiles[0] as File, lineBreakPos) + MINIFIER.minifyCssFile(new File(tempPath), outputFiles[0] as File, lineBreakPos, charset) ant.gzip(src: outputPath, destfile: "${outputPath}.gz") ant.move(file: "${outputPath}.gz", tofile: outputPath) diff --git a/src/main/groovy/com/eriwen/gradle/css/tasks/MinifyCssTask.groovy b/src/main/groovy/com/eriwen/gradle/css/tasks/MinifyCssTask.groovy index a74a8f3..b6dc5d6 100644 --- a/src/main/groovy/com/eriwen/gradle/css/tasks/MinifyCssTask.groovy +++ b/src/main/groovy/com/eriwen/gradle/css/tasks/MinifyCssTask.groovy @@ -31,6 +31,6 @@ class MinifyCssTask extends SourceTask { @TaskAction def run() { - MINIFIER.minifyCssFile(source.singleFile, dest as File, project.yuicompressor.lineBreakPos) + MINIFIER.minifyCssFile(source.singleFile, dest as File, project.yuicompressor.lineBreakPos, project.yuicompressor.charset) } }