batteries/lib/range.js
2011-11-05 16:08:00 -07:00

30 lines
609 B
JavaScript

// batteries
// Copyright 2010 - 2011 Sami Samhuri <sami@samhuri.net>
exports.Range = Range;
exports.extendNative = function(context) {
context.Range = Range;
};
function Range(start, length) {
this.start = start;
this.length = length;
};
Range.prototype.inRange = function(val) {
if (this.test) return this.test(val);
return val >= this.start && val <= this.start + this.length;
};
Range.prototype.toArray = function(nth) {
var a = []
, i = this.length
;
nth = nth || this.nth;
if (nth)
while (i--) a[i] = nth(i);
else
while (i--) a[i] = this.start + i;
return a;
};