cache-manager
Advanced tools
Comparing version 0.5.0 to 0.6.0
@@ -6,2 +6,3 @@ // Setup: | ||
var util = require('util'); | ||
var cache_manager = require('../../'); | ||
@@ -11,2 +12,3 @@ var redis_store = require('./redis_store'); | ||
console.log("set/get/del example:"); | ||
redis_cache.set('foo', 'bar', function (err) { | ||
@@ -16,11 +18,20 @@ if (err) { throw err; } | ||
redis_cache.get('foo', function (err, result) { | ||
console.log(result); | ||
if (err) { throw err; } | ||
console.log("result fetched from cache: " + result); | ||
// >> 'bar' | ||
redis_cache.del('foo', function (err) { console.log(err); }); | ||
redis_cache.del('foo', function (err) { | ||
if (err) { throw err; } | ||
}); | ||
}); | ||
}); | ||
var user_id = 123; | ||
function create_key(id) { | ||
return 'user_' + id; | ||
} | ||
function get_user(id, cb) { | ||
setTimeout(function () { | ||
console.log("Returning user from slow database."); | ||
console.log("\n\nReturning user from slow database."); | ||
cb(null, {id: id, name: 'Bob'}); | ||
@@ -30,16 +41,26 @@ }, 100); | ||
var user_id = 123; | ||
var key = 'user_' + user_id; | ||
function get_user_from_cache(id, cb) { | ||
var key = create_key(id); | ||
redis_cache.wrap(key, function (cache_cb) { | ||
get_user(user_id, cache_cb); | ||
}, cb); | ||
} | ||
redis_cache.wrap(key, function (cb) { | ||
get_user(user_id, cb); | ||
}, function (err, user) { | ||
get_user_from_cache(user_id, function (err, user) { | ||
console.log(user); | ||
// Second time fetches user from redis_cache | ||
redis_cache.wrap(key, function (cb) { | ||
get_user(user_id, cb); | ||
}, function (err, user) { | ||
// Second time fetches user from redis_cache | ||
get_user_from_cache(user_id, function (err, user) { | ||
console.log("user from second cache request:"); | ||
console.log(user); | ||
process.exit(); | ||
redis_cache.keys(function (err, keys) { | ||
console.log("keys: " + util.inspect(keys)); | ||
var key = create_key(user_id); | ||
redis_cache.del(key, function (err) { | ||
if (err) { throw err; } | ||
process.exit(); | ||
}); | ||
}); | ||
}); | ||
@@ -49,4 +70,5 @@ }); | ||
// Outputs: | ||
// Returning user from slow database. | ||
// { id: 123, name: 'Bob' } | ||
// user from second cache request: | ||
// { id: 123, name: 'Bob' } | ||
// keys: [ 'user_123' ] |
@@ -78,6 +78,22 @@ /** | ||
self.keys = function (pattern, cb) { | ||
if (typeof pattern === 'function') { | ||
cb = pattern; | ||
pattern = '*'; | ||
} | ||
connect(function (err, conn) { | ||
if (err) { return cb(err); } | ||
conn.keys(pattern, function (err, result) { | ||
pool.release(conn); | ||
cb(err, result); | ||
}); | ||
}); | ||
}; | ||
return self; | ||
} | ||
var methods = { | ||
module.exports = { | ||
create: function (args) { | ||
@@ -87,3 +103,1 @@ return redis_store(args); | ||
}; | ||
module.exports = methods; |
@@ -0,1 +1,6 @@ | ||
- 0.6.0 2014-06-15 | ||
Adding caching.keys() function (issue #6) | ||
Updating examples/redis_example/example.js with cache.keys() usage | ||
Allow calling memory store get() without callback | ||
- 0.5.0 2014-05-02 | ||
@@ -2,0 +7,0 @@ Adding reset() function to caching.js. Closes #5. |
@@ -0,1 +1,2 @@ | ||
/*jshint maxcomplexity:10*/ | ||
var caching = function (args) { | ||
@@ -64,2 +65,6 @@ args = args || {}; | ||
if (typeof self.store.keys === 'function') { | ||
self.keys = self.store.keys.bind(self.store); | ||
} | ||
return self; | ||
@@ -66,0 +71,0 @@ }; |
@@ -23,5 +23,10 @@ var Lru = require("lru-cache"); | ||
self.get = function (key, cb) { | ||
process.nextTick(function () { | ||
cb(null, lru_cache.get(key)); | ||
}); | ||
var value = lru_cache.get(key); | ||
if (cb) { | ||
process.nextTick(function () { | ||
cb(null, value); | ||
}); | ||
} else { | ||
return value; | ||
} | ||
}; | ||
@@ -43,2 +48,13 @@ | ||
self.keys = function (cb) { | ||
var keys = lru_cache.keys(); | ||
if (cb) { | ||
process.nextTick(function () { | ||
cb(null, keys); | ||
}); | ||
} else { | ||
return keys; | ||
} | ||
}; | ||
return self; | ||
@@ -45,0 +61,0 @@ }; |
{ | ||
"name": "cache-manager", | ||
"version": "0.5.0", | ||
"version": "0.6.0", | ||
"description": "Cache module for Node.js", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
// TODO: These are really a mix of unit and integration tests. | ||
var assert = require('assert'); | ||
var async = require('async'); | ||
var sinon = require('sinon'); | ||
@@ -42,9 +43,8 @@ var support = require('./support'); | ||
it("lets us set data without a callback", function (done) { | ||
it("lets us set and get data without a callback", function (done) { | ||
cache.set(key, value); | ||
setTimeout(function () { | ||
cache.get(key, function (err, result) { | ||
assert.equal(result, value); | ||
done(); | ||
}); | ||
var result = cache.get(key); | ||
assert.equal(result, value); | ||
done(); | ||
}, 20); | ||
@@ -117,3 +117,3 @@ }); | ||
cache.set(key, value, done); | ||
cache.set(key2, value2, done); | ||
}); | ||
@@ -137,3 +137,3 @@ }); | ||
it("lets us clear the cache without a callback", function (done) { | ||
it("lets us clear the cache without a callback (memory store only)", function (done) { | ||
cache.reset(); | ||
@@ -153,2 +153,39 @@ setTimeout(function () { | ||
describe("keys()", function () { | ||
var key_count; | ||
var saved_keys = []; | ||
beforeEach(function (done) { | ||
key_count = 10; | ||
var processed = 0; | ||
cache = caching({store: 'memory'}); | ||
function is_done() { | ||
return processed === key_count; | ||
} | ||
async.until(is_done, function (cb) { | ||
processed += 1; | ||
key = support.random.string(20); | ||
saved_keys.push(key); | ||
value = support.random.string(); | ||
cache.set(key, value, cb); | ||
}, done); | ||
}); | ||
it("calls back with all keys in cache", function (done) { | ||
cache.keys(function (err, keys) { | ||
check_err(err); | ||
assert.deepEqual(keys.sort, saved_keys.sort); | ||
done(); | ||
}); | ||
}); | ||
it("lets us get the keys without a callback (memory store only)", function () { | ||
var keys = cache.keys(); | ||
assert.deepEqual(keys.sort, saved_keys.sort); | ||
}); | ||
}); | ||
describe("wrap()", function () { | ||
@@ -173,3 +210,3 @@ describe("using memory (lru-cache) store", function () { | ||
it("calls back with the result of a function", function (done) { | ||
it("calls back with the result of the wrapped function", function (done) { | ||
cache.wrap(key, function (cb) { | ||
@@ -176,0 +213,0 @@ methods.get_widget(name, cb); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
67305
1344