diff options
Diffstat (limited to 'framework/Web/Javascripts/prototype/range.js')
-rw-r--r-- | framework/Web/Javascripts/prototype/range.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/framework/Web/Javascripts/prototype/range.js b/framework/Web/Javascripts/prototype/range.js new file mode 100644 index 00000000..f7c87166 --- /dev/null +++ b/framework/Web/Javascripts/prototype/range.js @@ -0,0 +1,29 @@ +var Range = Class.create();
+Object.extend(Range.prototype, Enumerable);
+Object.extend(Range.prototype, {
+ initialize: function(start, end, exclusive) {
+ this.start = start;
+ this.end = end;
+ this.exclusive = exclusive;
+ },
+
+ _each: function(iterator) {
+ var value = this.start;
+ do {
+ iterator(value);
+ value = value.succ();
+ } while (this.include(value));
+ },
+
+ include: function(value) {
+ if (value < this.start)
+ return false;
+ if (this.exclusive)
+ return value < this.end;
+ return value <= this.end;
+ }
+});
+
+var $R = function(start, end, exclusive) {
+ return new Range(start, end, exclusive);
+}
\ No newline at end of file |