diff --git a/index.js b/index.js index 0827449..398a7be 100644 --- a/index.js +++ b/index.js @@ -33,20 +33,17 @@ var formatOutput = function(report, file, options) { var cssLintPlugin = function(options) { options = options || {}; - - var ruleset = {}; - var rcLoader = new RcLoader('.csslintrc', options, { loader: 'async' }); - - // Build a list of all available rules - csslint.getRules().forEach(function(rule) { - ruleset[rule.id] = 1; - }); - return through.obj(function(file, enc, cb) { if (file.isNull()) return cb(null, file); // pass along if (file.isStream()) return cb(new gutil.PluginError('gulp-csslint: Streaming not supported'), file); + var ruleset = {}; + // Build a list of all available rules + csslint.getRules().forEach(function(rule) { + ruleset[rule.id] = 1; + }); + var content = file.contents.toString(enc); if (!content) return cb(null, file); // pass along diff --git a/test/fixtures/leaktest1.css b/test/fixtures/leaktest1.css new file mode 100644 index 0000000..64f3242 --- /dev/null +++ b/test/fixtures/leaktest1.css @@ -0,0 +1,6 @@ +/*csslint duplicate-properties:false*/ +.no-leak-1{ + height: 42px; + width: 20px; + height: 21px; +} diff --git a/test/fixtures/leaktest2.css b/test/fixtures/leaktest2.css new file mode 100644 index 0000000..455c59a --- /dev/null +++ b/test/fixtures/leaktest2.css @@ -0,0 +1,5 @@ +.no-leak-2{ + height: 42px; + width: 20px; + height: 21px; +} diff --git a/test/main.js b/test/main.js index d927726..257c06b 100644 --- a/test/main.js +++ b/test/main.js @@ -113,6 +113,29 @@ describe('gulp-csslint', function() { stream.end(); }); + it('should not leak options across files', function(done) { + var failedFiles = 0; + var file1 = getFile('fixtures/leaktest1.css'); + var file2 = getFile('fixtures/leaktest2.css'); + var stream = cssLintPlugin({}); + + stream.on('data', function(newFile) { + should.exist(newFile.csslint.success); + if (!newFile.csslint.success) { + failedFiles++; + } + }); + + stream.once('end', function() { + failedFiles.should.equal(1); + done(); + }); + + stream.write(file1); + stream.write(file2); + stream.end(); + }); + it('should support options', function(done) { var a = 0;