2010-07-25 07:15:12 +00:00
|
|
|
(function() {
|
2010-09-25 00:29:44 +00:00
|
|
|
var extend, indexOf;
|
|
|
|
indexOf = (exports.indexOf = Array.indexOf || (Array.prototype.indexOf ? function(array, item, from) {
|
2010-09-25 00:18:47 +00:00
|
|
|
return array.indexOf(item, from);
|
|
|
|
} : function(array, item, from) {
|
2010-09-21 02:13:08 +00:00
|
|
|
var _len, _ref, index, other;
|
2010-09-21 01:56:18 +00:00
|
|
|
_ref = array;
|
2010-09-21 02:13:08 +00:00
|
|
|
for (index = 0, _len = _ref.length; index < _len; index++) {
|
2010-09-21 01:56:18 +00:00
|
|
|
other = _ref[index];
|
2010-05-15 03:40:04 +00:00
|
|
|
if (other === item && (!from || (from <= index))) {
|
|
|
|
return index;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return -1;
|
2010-09-25 00:18:47 +00:00
|
|
|
}));
|
2010-09-25 00:29:44 +00:00
|
|
|
exports.include = function(list, value) {
|
2010-09-26 14:28:48 +00:00
|
|
|
return indexOf(list, value) >= 0;
|
2010-09-25 00:18:47 +00:00
|
|
|
};
|
2010-09-25 00:29:44 +00:00
|
|
|
exports.starts = function(string, literal, start) {
|
2010-09-25 00:18:47 +00:00
|
|
|
return literal === string.substr(start, literal.length);
|
|
|
|
};
|
2010-09-25 00:29:44 +00:00
|
|
|
exports.ends = function(string, literal, back) {
|
2010-09-26 14:28:48 +00:00
|
|
|
var len;
|
|
|
|
len = literal.length;
|
|
|
|
return literal === string.substr(string.length - len - (back || 0), len);
|
2010-09-25 00:18:47 +00:00
|
|
|
};
|
2010-09-25 00:29:44 +00:00
|
|
|
exports.compact = function(array) {
|
2010-09-21 02:13:08 +00:00
|
|
|
var _i, _len, _ref, _result, item;
|
2010-09-21 01:56:18 +00:00
|
|
|
_result = []; _ref = array;
|
2010-09-21 02:13:08 +00:00
|
|
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
2010-09-21 01:56:18 +00:00
|
|
|
item = _ref[_i];
|
2010-08-11 04:40:15 +00:00
|
|
|
if (item) {
|
2010-09-19 12:29:15 +00:00
|
|
|
_result.push(item);
|
2010-08-14 15:42:19 +00:00
|
|
|
}
|
2010-03-10 02:24:30 +00:00
|
|
|
}
|
2010-09-19 12:29:15 +00:00
|
|
|
return _result;
|
2010-09-25 00:18:47 +00:00
|
|
|
};
|
2010-09-25 00:29:44 +00:00
|
|
|
exports.count = function(string, letter) {
|
2010-03-10 02:24:30 +00:00
|
|
|
var num, pos;
|
2010-09-25 00:18:47 +00:00
|
|
|
num = (pos = 0);
|
2010-09-28 12:52:51 +00:00
|
|
|
while (pos = 1 + string.indexOf(letter, pos)) {
|
2010-09-25 00:18:47 +00:00
|
|
|
num++;
|
2010-03-10 02:24:30 +00:00
|
|
|
}
|
|
|
|
return num;
|
2010-09-25 00:18:47 +00:00
|
|
|
};
|
2010-09-25 00:29:44 +00:00
|
|
|
exports.merge = function(options, overrides) {
|
2010-09-25 00:18:47 +00:00
|
|
|
return extend(extend({}, options), overrides);
|
|
|
|
};
|
2010-09-25 00:29:44 +00:00
|
|
|
extend = (exports.extend = function(object, properties) {
|
2010-09-25 00:18:47 +00:00
|
|
|
var _ref, key, val;
|
|
|
|
_ref = properties;
|
2010-09-21 01:56:18 +00:00
|
|
|
for (key in _ref) {
|
|
|
|
val = _ref[key];
|
2010-09-26 14:28:48 +00:00
|
|
|
object[key] = val;
|
2010-03-10 02:24:30 +00:00
|
|
|
}
|
2010-09-25 00:18:47 +00:00
|
|
|
return object;
|
2010-03-10 14:47:02 +00:00
|
|
|
});
|
2010-09-25 00:29:44 +00:00
|
|
|
exports.flatten = function(array) {
|
2010-09-25 00:18:47 +00:00
|
|
|
return array.concat.apply([], array);
|
|
|
|
};
|
2010-09-25 00:29:44 +00:00
|
|
|
exports.del = function(obj, key) {
|
2010-03-10 02:24:30 +00:00
|
|
|
var val;
|
|
|
|
val = obj[key];
|
|
|
|
delete obj[key];
|
|
|
|
return val;
|
2010-09-25 00:18:47 +00:00
|
|
|
};
|
2010-09-28 12:52:51 +00:00
|
|
|
exports.last = function(array, back) {
|
|
|
|
return array[array.length - (back || 0) - 1];
|
|
|
|
};
|
2010-09-21 07:53:58 +00:00
|
|
|
}).call(this);
|