fix callbacks and regex

v1.18.x
yariplus 8 years ago
parent 1bb44e2429
commit be3b35dea3

@ -596,18 +596,22 @@ module.exports = function (db, module) {
var query = {_key: key, value: {}}; var query = {_key: key, value: {}};
if (min !== '-') { if (min !== '-') {
if (min.match('(')) { if (min.match(/^\(/)) {
query.value = {$gt: parseInt(min, 10)}; query.value = {$gt: min.slice(1)};
} else if (min.match(/^\[/)) {
query.value = {$gte: min.slice(1)};
} else { } else {
query.value = {$gte: parseInt(min, 10)}; query.value = {$gte: min};
} }
} }
if (max !== '+') { if (max !== '+') {
query.value = query.value || {}; query.value = query.value || {};
if (max.match('(')) { if (max.match(/^\(/)) {
query.value = {$lt: parseInt(max, 10)}; query.value.$lt = max.slice(1);
} else if (max.match(/^\[/)) {
query.value.$lte = max.slice(1);
} else { } else {
query.value = {$lte: parseInt(max, 10)}; query.value.$lte = max;
} }
} }
@ -632,18 +636,22 @@ module.exports = function (db, module) {
var query = {_key: key}; var query = {_key: key};
if (min !== '-') { if (min !== '-') {
if (min.match('(')) { if (min.match(/^\(/)) {
query.value = {$gt: parseInt(min, 10)}; query.value = {$gt: min.slice(1)};
} else if (min.match(/^\[/)) {
query.value = {$gte: min.slice(1)};
} else { } else {
query.value = {$gte: parseInt(min, 10)}; query.value = {$gte: min};
} }
} }
if (max !== '+') { if (max !== '+') {
query.value = query.value || {}; query.value = query.value || {};
if (max.match('(')) { if (max.match(/^\(/)) {
query.value = {$lt: parseInt(max, 10)}; query.value.$lt = max.slice(1);
} else if (max.match(/^\[/)) {
query.value.$lte = max.slice(1);
} else { } else {
query.value = {$lte: parseInt(max, 10)}; query.value.$lte = max;
} }
} }

@ -293,23 +293,24 @@ module.exports = function (redisClient, module) {
}; };
module.getSortedSetRangeByLex = function (key, min, max, start, count, callback) { module.getSortedSetRangeByLex = function (key, min, max, start, count, callback) {
sortedSetLex('zrangebylex', false, key, min, max, start, count, callback) sortedSetLex('zrangebylex', false, key, min, max, start, count, callback);
}; };
module.getSortedSetRevRangeByLex = function (key, max, min, start, count, callback) { module.getSortedSetRevRangeByLex = function (key, max, min, start, count, callback) {
sortedSetLex('zrevrangebylex', true, key, max, min, start, count, callback) sortedSetLex('zrevrangebylex', true, key, max, min, start, count, callback);
}; };
module.sortedSetRemoveRangeByLex = function (key, min, max) { module.sortedSetRemoveRangeByLex = function (key, min, max, callback) {
sortedSetLex('zremrangebylex', false, key, min, max, callback) callback = callback || helpers.noop;
sortedSetLex('zremrangebylex', false, key, min, max, callback);
}; };
module.sortedSetLexCount = function (key, min, max) { module.sortedSetLexCount = function (key, min, max, callback) {
sortedSetLex('zlexcount', false, key, min, max, callback) sortedSetLex('zlexcount', false, key, min, max, callback);
}; };
function sortedSetLex(method, reverse, key, min, max, start, count, callback) { function sortedSetLex(method, reverse, key, min, max, start, count, callback) {
if (!callback) callback === start; callback = callback || start;
var minmin, maxmax; var minmin, maxmax;
if (reverse) { if (reverse) {
@ -321,12 +322,10 @@ module.exports = function (redisClient, module) {
} }
if (min !== minmin) { if (min !== minmin) {
min = '' + min; if (!min.match(/^[\[\(]/)) min = '[' + min;
if (!min.match(/[\[\(]/)) min = '[' + min;
} }
if (max !== maxmax) { if (max !== maxmax) {
max = '' + max; if (!max.match(/^[\[\(]/)) max = '[' + max;
if (!max.match(/[\[\(]/)) max = '[' + max;
} }
if (count) { if (count) {

Loading…
Cancel
Save