Projekt

Obecné

Profil

Stáhnout (3.9 KB) Statistiky
| Větev: | Revize:
1
// Generated by CoffeeScript 1.12.7
2
(function() {
3
  var array_intersection, crypto, escapable, lookup, unroll_lookup;
4

    
5
  crypto = require('crypto');
6

    
7
  exports.array_intersection = array_intersection = function(arr_a, arr_b) {
8
    var a, j, len, r;
9
    r = [];
10
    for (j = 0, len = arr_a.length; j < len; j++) {
11
      a = arr_a[j];
12
      if (arr_b.indexOf(a) !== -1) {
13
        r.push(a);
14
      }
15
    }
16
    return r;
17
  };
18

    
19
  exports.escape_selected = function(str, chars) {
20
    var c, i, j, l, len, map, parts, r, ref, v;
21
    map = {};
22
    chars = '%' + chars;
23
    for (j = 0, len = chars.length; j < len; j++) {
24
      c = chars[j];
25
      map[c] = escape(c);
26
    }
27
    r = new RegExp('([' + chars + '])');
28
    parts = str.split(r);
29
    for (i = l = 0, ref = parts.length; 0 <= ref ? l < ref : l > ref; i = 0 <= ref ? ++l : --l) {
30
      v = parts[i];
31
      if (v.length === 1 && v in map) {
32
        parts[i] = map[v];
33
      }
34
    }
35
    return parts.join('');
36
  };
37

    
38
  exports.buffer_concat = function(buf_a, buf_b) {
39
    var dst;
40
    dst = new Buffer(buf_a.length + buf_b.length);
41
    buf_a.copy(dst);
42
    buf_b.copy(dst, buf_a.length);
43
    return dst;
44
  };
45

    
46
  exports.md5_hex = function(data) {
47
    return crypto.createHash('md5').update(data).digest('hex');
48
  };
49

    
50
  exports.sha1_base64 = function(data) {
51
    return crypto.createHash('sha1').update(data).digest('base64');
52
  };
53

    
54
  exports.timeout_chain = function(arr) {
55
    var fun, ref, timeout, user_fun;
56
    arr = arr.slice(0);
57
    if (!arr.length) {
58
      return;
59
    }
60
    ref = arr.shift(), timeout = ref[0], user_fun = ref[1];
61
    fun = (function(_this) {
62
      return function() {
63
        user_fun();
64
        return exports.timeout_chain(arr);
65
      };
66
    })(this);
67
    return setTimeout(fun, timeout);
68
  };
69

    
70
  exports.objectExtend = function(dst, src) {
71
    var k;
72
    for (k in src) {
73
      if (src.hasOwnProperty(k)) {
74
        dst[k] = src[k];
75
      }
76
    }
77
    return dst;
78
  };
79

    
80
  exports.overshadowListeners = function(ee, event, handler) {
81
    var new_handler, old_listeners;
82
    old_listeners = ee.listeners(event).slice(0);
83
    ee.removeAllListeners(event);
84
    new_handler = function() {
85
      var j, len, listener;
86
      if (handler.apply(this, arguments) !== true) {
87
        for (j = 0, len = old_listeners.length; j < len; j++) {
88
          listener = old_listeners[j];
89
          listener.apply(this, arguments);
90
        }
91
        return false;
92
      }
93
      return true;
94
    };
95
    return ee.addListener(event, new_handler);
96
  };
97

    
98
  escapable = /[\x00-\x1f\ud800-\udfff\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufff0-\uffff]/g;
99

    
100
  unroll_lookup = function(escapable) {
101
    var c, i, unrolled;
102
    unrolled = {};
103
    c = (function() {
104
      var j, results;
105
      results = [];
106
      for (i = j = 0; j < 65536; i = ++j) {
107
        results.push(String.fromCharCode(i));
108
      }
109
      return results;
110
    })();
111
    escapable.lastIndex = 0;
112
    c.join('').replace(escapable, function(a) {
113
      return unrolled[a] = '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
114
    });
115
    return unrolled;
116
  };
117

    
118
  lookup = unroll_lookup(escapable);
119

    
120
  exports.quote = function(string) {
121
    var quoted;
122
    quoted = JSON.stringify(string);
123
    escapable.lastIndex = 0;
124
    if (!escapable.test(quoted)) {
125
      return quoted;
126
    }
127
    return quoted.replace(escapable, function(a) {
128
      return lookup[a];
129
    });
130
  };
131

    
132
  exports.parseCookie = function(cookie_header) {
133
    var cookie, cookies, j, len, parts, ref;
134
    cookies = {};
135
    if (cookie_header) {
136
      ref = cookie_header.split(';');
137
      for (j = 0, len = ref.length; j < len; j++) {
138
        cookie = ref[j];
139
        parts = cookie.split('=');
140
        cookies[parts[0].trim()] = (parts[1] || '').trim();
141
      }
142
    }
143
    return cookies;
144
  };
145

    
146
  exports.random32 = function() {
147
    var foo, v;
148
    foo = crypto.randomBytes(4);
149
    v = [foo[0], foo[1], foo[2], foo[3]];
150
    return v[0] + (v[1] * 256) + (v[2] * 256 * 256) + (v[3] * 256 * 256 * 256);
151
  };
152

    
153
}).call(this);
(10-10/11)