[#96,backend/memory] Simplified types handling in range filter

This commit is contained in:
Krzysztof Trzewiczek
2012-08-08 18:27:52 +02:00
parent d445629318
commit e701f11e29

View File

@@ -99,11 +99,12 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
break; break;
case 'range': case 'range':
results = _.filter(results, function (doc) { results = _.filter(results, function (doc) {
var start = filter.start; // TODO handle different data types correctly
var stop = filter.stop; var number = !isNaN(parseFloat(filter.start, 10));
var value = doc[filter.field]; var start = number ? parseFloat(filter.start, 10) : filter.start;
var stop = number ? parseFloat(filter.stop, 10) : filter.stop;
var value = number ? parseFloat(doc[filter.field]) : doc[filter.field];
// implicit string to number casting is done in JS if needed
return (value >= start && value <= stop); return (value >= start && value <= stop);
}); });
break; break;