Browse files

Cache images.

  • Loading branch information...
1 parent b7767cd commit 666fd897264730b725c6ea308a0380b635986845 @assaf committed Oct 12, 2012
View
14 lib/passbook.js
@@ -177,7 +177,7 @@ IMAGES.forEach(function(key) {
return this;
}
}
-})
+});
// Load all images from the specified directory. Only supported images are
// loaded, nothing bad happens if directory contains other files.
@@ -240,13 +240,21 @@ Passbook.prototype.generate = function(callback) {
var image = self.images[key];
if (typeof image == "string" || image instanceof String) {
// image is a filename, load from disk
- File.readFile(image, done);
+ File.readFile(image, function(error, buffer) {
+ if (!error)
+ self.images[key] = buffer;
+ done(error, buffer);
+ });
} else if (image instanceof Buffer) {
done(null, image);
} else if (typeof image == "function") {
// image is a function, call it to obtain image
try {
- image(done);
+ image(function(error, buffer) {
+ if (!error)
+ self.images[key] = buffer;
+ done(error, buffer);
+ });
} catch (error) {
done(error);
}
View
15 test/passbook_test.js
@@ -103,8 +103,7 @@ describe("Passbook", function() {
describe("generated", function() {
before(function(done) {
var passbook = this.template.createPassbook(this.fields);
- passbook.icon(__dirname + "/resources/icon.png");
- passbook.logo(__dirname + "/resources/logo.png");
+ passbook.loadImagesFrom(__dirname + "/resources");
passbook.generate(function(error, buffer) {
if (error)
done(error);
@@ -140,16 +139,20 @@ describe("Passbook", function() {
it("should contain a manifest", function(done) {
unzip("/tmp/passbook.pkpass", "manifest.json", function(error, buffer) {
assert.deepEqual(JSON.parse(buffer), {
- 'pass.json': 'bcb463e9d94298e2d9757cea4a1af501fe5b45ae',
- 'icon.png': 'e0f0bcd503f6117bce6a1a3ff8a68e36d26ae47f',
- 'logo.png': 'abc97e3b2bc3b0e412ca4a853ba5fd90fe063551'
+ "pass.json": "bcb463e9d94298e2d9757cea4a1af501fe5b45ae",
+ "icon.png": "e0f0bcd503f6117bce6a1a3ff8a68e36d26ae47f",
+ "icon@2x.png": "10e4a72dbb02cc526cef967420553b459ccf2b9e",
+ "logo.png": "abc97e3b2bc3b0e412ca4a853ba5fd90fe063551",
+ "logo@2x.png": "87ca39ddc347646b5625062a349de4d3f06714ac",
+ "strip.png": "e199fc0e2839ad5698b206d5f4b7d8cb2418927c",
+ "strip@2x.png": "ac640c623741c0081fb1592d6353ebb03122244f"
});
done();
});
});
it("should contain a signature", function(done) {
- execFile("signpass", ["-v", "passbook.pkpass"], function(error, stdout) {
+ execFile("signpass", ["-v", "/tmp/passbook.pkpass"], function(error, stdout) {
assert(/\*\*\* SUCCEEDED \*\*\*/.test(stdout), stdout);
done();
})
View
BIN test/resources/icon@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN test/resources/logo@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN test/resources/strip.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN test/resources/strip@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 666fd89

Please sign in to comment.