Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

gulp-rev-append

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gulp-rev-append - npm Package Compare versions

Comparing version
0.1.6
to
0.1.7
+8
test/fixtures/static/image-element-post-class.html
<!doctype html>
<html>
<head></head>
<body>
<div><p>hello, world!</p></div>
<img src="img/file.jpg?rev=@@" class="pull-right company-logo media-object" alt="image">
</body>
</html>

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

<!doctype html>
<html>
<head>
<link rel="shortcut icon" href="/images/icon.jpg?rev=@@hash" type="image/png"><link rel="stylesheet" href="/style/style-one.css?rev=@@hash">
<script src="script/script-one.js?rev=@@hash"></script>
<script src="script/script-two.js"></script>
</head>
<body>
<div><p>hello, world!</p></div>
</body>
</html>
+46
-2
var chai = require('chai');
var expect = chai.expect;
var cheerio = require('cheerio');
var File = require('gulp-util').File;

@@ -13,3 +14,3 @@ var Buffer = require('buffer').Buffer;

this.Given(/^I have declared dependencies in an html file with revision tokens$/, function (callback) {
this.Given(/^I have declared a dependency in an html file with revision tokens$/, function (callback) {
this.indexFile = new File({

@@ -24,2 +25,22 @@ cwd: 'test/fixtures/',

this.Given(/^I have declared dependencies in an html file with revision tokens$/, function (callback) {
this.indexFile = new File({
cwd: 'test/fixtures/',
base: 'test/fixtures/static',
path: 'test/fixtures/static/multiple-index.html',
contents: new Buffer(this.htmlFileContents('multiple-index'))
});
callback();
});
this.Given(/^I have declared an image dependency in an html file with revision tokens$/, function (callback) {
this.indexFile = new File({
cwd: 'test/fixtures/',
base: 'test/fixtures/static',
path: 'test/fixtures/static/image-element-post-class.html',
contents: new Buffer(this.htmlFileContents('image-element-post-class'))
});
callback();
});
this.When(/^I invoke the gulp\-rev\-append plugin$/, function (callback) {

@@ -34,3 +55,3 @@ var revver = this.plugin();

this.Then(/^The depencies are appended with a hash inline$/, function (callback) {
this.Then(/^The dependency is appended with a hash inline$/, function (callback) {
var fileDeclarationRegex = this.FILE_DECL;

@@ -48,2 +69,25 @@ var declarations = result.match(fileDeclarationRegex);

this.Then(/^The dependencies are appended with a hash inline$/, function (callback) {
var fileDeclarationRegex = this.FILE_DECL;
var declarations = result.match(fileDeclarationRegex);
// defined in test/fixtures/static/index.html
console.log(result);
expect(declarations.length).to.equal(3);
for(var i = 0; i < declarations.length; i++) {
// plugin should change @@hash to hash based on file contents
expect(fileDeclarationRegex.exec(declarations[i])[2]).to.not.equal('@@hash');
fileDeclarationRegex.lastIndex = 0;
}
callback();
});
this.Then(/^The attributes following the revision tokens are preserved$/, function (callback) {
var $ = cheerio.load(result);
var classDeclaration = $('img').attr('class');
expect(classDeclaration).to.not.be.undefined;
expect(classDeclaration).to.equal('pull-right company-logo media-object');
callback();
});
};
+26
-20

@@ -20,2 +20,3 @@ var fs = require('fs');

var groups;
var declarations;
var dependencyPath;

@@ -38,25 +39,30 @@ var data, hash;

line = lines[i];
groups = FILE_DECL.exec(line);
if(groups && groups.length > 1) {
// are we an "absoulte path"? (e.g. /js/app.js)
var normPath = path.normalize(groups[1]);
if (normPath.indexOf(path.sep) === 0) {
dependencyPath = path.join(file.base, normPath);
}
else {
dependencyPath = path.resolve(path.dirname(file.path), normPath);
}
declarations = line.match(FILE_DECL);
if (declarations && declarations.length > 0) {
for(var j = 0; j < declarations.length; j++) {
groups = FILE_DECL.exec(declarations[j]);
if(groups && groups.length > 1) {
// are we an "absoulte path"? (e.g. /js/app.js)
var normPath = path.normalize(groups[1]);
if (normPath.indexOf(path.sep) === 0) {
dependencyPath = path.join(file.base, normPath);
}
else {
dependencyPath = path.resolve(path.dirname(file.path), normPath);
}
try {
data = fs.readFileSync(dependencyPath);
hash = crypto.createHash('md5');
hash.update(data.toString(), 'utf8');
line = line.replace(groups[2], hash.digest('hex'));
try {
data = fs.readFileSync(dependencyPath);
hash = crypto.createHash('md5');
hash.update(data.toString(), 'utf8');
line = line.replace(groups[2], hash.digest('hex'));
}
catch(e) {
// fail silently.
}
}
FILE_DECL.lastIndex = 0;
}
catch(e) {
// fail silently.
}
lines[i] = line;
}
lines[i] = line;
FILE_DECL.lastIndex = 0;
}

@@ -63,0 +69,0 @@

{
"name": "gulp-rev-append",
"version": "0.1.6",
"version": "0.1.7",
"description": "Cache-busting plugin for gulp.",

@@ -29,4 +29,5 @@ "main": "index.js",

"devDependencies": {
"cucumber": "^0.4.0",
"chai": "^1.9.0"
"chai": "^1.9.0",
"cheerio": "^0.19.0",
"cucumber": "^0.4.0"
},

@@ -33,0 +34,0 @@ "dependencies": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet