1 |
|
2 | (function() {
|
3 | var extend, flatten, _ref;
|
4 |
|
5 | exports.starts = function(string, literal, start) {
|
6 | return literal === string.substr(start, literal.length);
|
7 | };
|
8 |
|
9 | exports.ends = function(string, literal, back) {
|
10 | var len;
|
11 | len = literal.length;
|
12 | return literal === string.substr(string.length - len - (back || 0), len);
|
13 | };
|
14 |
|
15 | exports.compact = function(array) {
|
16 | var item, _i, _len, _results;
|
17 | _results = [];
|
18 | for (_i = 0, _len = array.length; _i < _len; _i++) {
|
19 | item = array[_i];
|
20 | if (item) {
|
21 | _results.push(item);
|
22 | }
|
23 | }
|
24 | return _results;
|
25 | };
|
26 |
|
27 | exports.count = function(string, substr) {
|
28 | var num, pos;
|
29 | num = pos = 0;
|
30 | if (!substr.length) {
|
31 | return 1 / 0;
|
32 | }
|
33 | while (pos = 1 + string.indexOf(substr, pos)) {
|
34 | num++;
|
35 | }
|
36 | return num;
|
37 | };
|
38 |
|
39 | exports.merge = function(options, overrides) {
|
40 | return extend(extend({}, options), overrides);
|
41 | };
|
42 |
|
43 | extend = exports.extend = function(object, properties) {
|
44 | var key, val;
|
45 | for (key in properties) {
|
46 | val = properties[key];
|
47 | object[key] = val;
|
48 | }
|
49 | return object;
|
50 | };
|
51 |
|
52 | exports.flatten = flatten = function(array) {
|
53 | var element, flattened, _i, _len;
|
54 | flattened = [];
|
55 | for (_i = 0, _len = array.length; _i < _len; _i++) {
|
56 | element = array[_i];
|
57 | if (element instanceof Array) {
|
58 | flattened = flattened.concat(flatten(element));
|
59 | } else {
|
60 | flattened.push(element);
|
61 | }
|
62 | }
|
63 | return flattened;
|
64 | };
|
65 |
|
66 | exports.del = function(obj, key) {
|
67 | var val;
|
68 | val = obj[key];
|
69 | delete obj[key];
|
70 | return val;
|
71 | };
|
72 |
|
73 | exports.last = function(array, back) {
|
74 | return array[array.length - (back || 0) - 1];
|
75 | };
|
76 |
|
77 | exports.some = (_ref = Array.prototype.some) != null ? _ref : function(fn) {
|
78 | var e, _i, _len;
|
79 | for (_i = 0, _len = this.length; _i < _len; _i++) {
|
80 | e = this[_i];
|
81 | if (fn(e)) {
|
82 | return true;
|
83 | }
|
84 | }
|
85 | return false;
|
86 | };
|
87 |
|
88 | }).call(this);
|