hooch 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/hooch.js +395 -1
- data/jasmine/jasmine-fixture.js +433 -0
- data/jasmine/node_modules/karma-chrome-launcher/CHANGELOG.md +108 -0
- data/jasmine/node_modules/karma-chrome-launcher/LICENSE +20 -0
- data/jasmine/node_modules/karma-chrome-launcher/README.md +49 -0
- data/jasmine/node_modules/karma-chrome-launcher/examples/simple/index.spec.js +5 -0
- data/jasmine/node_modules/karma-chrome-launcher/examples/simple/karma.conf.js +32 -0
- data/jasmine/node_modules/karma-chrome-launcher/gruntfile.js +63 -0
- data/jasmine/node_modules/karma-chrome-launcher/index.js +181 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/.bin/which +14 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/index.js +41 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/license +21 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/index.js +19 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/license +21 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/package.json +65 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/readme.md +34 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/package.json +71 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/readme.md +53 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/.travis.yml +8 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/LICENSE +15 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/README.md +34 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/bin/which +14 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/LICENSE +21 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/README.md +53 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/index.js +27 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/LICENSE-MIT +21 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/README.md +38 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/index.js +21 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/package.json +75 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/package.json +75 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/package.json +56 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/test/basic.js +99 -0
- data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/which.js +111 -0
- data/jasmine/node_modules/karma-chrome-launcher/package.json +142 -0
- data/jasmine/node_modules/karma-chrome-launcher/test/jsflags.spec.js +53 -0
- data/jasmine/spec/hoochSpec.js +66 -0
- data/lib/hooch/version.rb +1 -1
- metadata +37 -3
@@ -0,0 +1,433 @@
|
|
1
|
+
/* jasmine-fixture - 1.3.2
|
2
|
+
* Makes injecting HTML snippets into the DOM easy & clean!
|
3
|
+
* https://github.com/searls/jasmine-fixture
|
4
|
+
*/
|
5
|
+
(function() {
|
6
|
+
var createHTMLBlock,
|
7
|
+
__slice = [].slice;
|
8
|
+
|
9
|
+
(function($) {
|
10
|
+
var ewwSideEffects, jasmineFixture, originalAffix, originalJasmineDotFixture, originalJasmineFixture, root, _, _ref;
|
11
|
+
root = (1, eval)('this');
|
12
|
+
originalJasmineFixture = root.jasmineFixture;
|
13
|
+
originalJasmineDotFixture = (_ref = root.jasmine) != null ? _ref.fixture : void 0;
|
14
|
+
originalAffix = root.affix;
|
15
|
+
_ = function(list) {
|
16
|
+
return {
|
17
|
+
inject: function(iterator, memo) {
|
18
|
+
var item, _i, _len, _results;
|
19
|
+
_results = [];
|
20
|
+
for (_i = 0, _len = list.length; _i < _len; _i++) {
|
21
|
+
item = list[_i];
|
22
|
+
_results.push(memo = iterator(memo, item));
|
23
|
+
}
|
24
|
+
return _results;
|
25
|
+
}
|
26
|
+
};
|
27
|
+
};
|
28
|
+
root.jasmineFixture = function($) {
|
29
|
+
var $whatsTheRootOf, affix, create, jasmineFixture, noConflict;
|
30
|
+
affix = function(selectorOptions) {
|
31
|
+
return create.call(this, selectorOptions, true);
|
32
|
+
};
|
33
|
+
create = function(selectorOptions, attach) {
|
34
|
+
var $top;
|
35
|
+
$top = null;
|
36
|
+
_(selectorOptions.split(/[ ](?![^\{]*\})(?=[^\]]*?(?:\[|$))/)).inject(function($parent, elementSelector) {
|
37
|
+
var $el;
|
38
|
+
if (elementSelector === ">") {
|
39
|
+
return $parent;
|
40
|
+
}
|
41
|
+
$el = createHTMLBlock($, elementSelector);
|
42
|
+
if (attach || $top) {
|
43
|
+
$el.appendTo($parent);
|
44
|
+
}
|
45
|
+
$top || ($top = $el);
|
46
|
+
return $el;
|
47
|
+
}, $whatsTheRootOf(this));
|
48
|
+
return $top;
|
49
|
+
};
|
50
|
+
noConflict = function() {
|
51
|
+
var currentJasmineFixture, _ref1;
|
52
|
+
currentJasmineFixture = jasmine.fixture;
|
53
|
+
root.jasmineFixture = originalJasmineFixture;
|
54
|
+
if ((_ref1 = root.jasmine) != null) {
|
55
|
+
_ref1.fixture = originalJasmineDotFixture;
|
56
|
+
}
|
57
|
+
root.affix = originalAffix;
|
58
|
+
return currentJasmineFixture;
|
59
|
+
};
|
60
|
+
$whatsTheRootOf = function(that) {
|
61
|
+
if ((that != null ? that.jquery : void 0) != null) {
|
62
|
+
return that;
|
63
|
+
} else if ($('#jasmine_content').length > 0) {
|
64
|
+
return $('#jasmine_content');
|
65
|
+
} else {
|
66
|
+
return $('<div id="jasmine_content"></div>').appendTo('body');
|
67
|
+
}
|
68
|
+
};
|
69
|
+
jasmineFixture = {
|
70
|
+
affix: affix,
|
71
|
+
create: create,
|
72
|
+
noConflict: noConflict
|
73
|
+
};
|
74
|
+
ewwSideEffects(jasmineFixture);
|
75
|
+
return jasmineFixture;
|
76
|
+
};
|
77
|
+
ewwSideEffects = function(jasmineFixture) {
|
78
|
+
var _ref1;
|
79
|
+
if ((_ref1 = root.jasmine) != null) {
|
80
|
+
_ref1.fixture = jasmineFixture;
|
81
|
+
}
|
82
|
+
$.fn.affix = root.affix = jasmineFixture.affix;
|
83
|
+
return afterEach(function() {
|
84
|
+
return $('#jasmine_content').remove();
|
85
|
+
});
|
86
|
+
};
|
87
|
+
if ($) {
|
88
|
+
return jasmineFixture = root.jasmineFixture($);
|
89
|
+
} else {
|
90
|
+
return root.affix = function() {
|
91
|
+
var nowJQueryExists;
|
92
|
+
nowJQueryExists = window.jQuery || window.$;
|
93
|
+
if (nowJQueryExists != null) {
|
94
|
+
jasmineFixture = root.jasmineFixture(nowJQueryExists);
|
95
|
+
return affix.call.apply(affix, [this].concat(__slice.call(arguments)));
|
96
|
+
} else {
|
97
|
+
throw new Error("jasmine-fixture requires jQuery to be defined at window.jQuery or window.$");
|
98
|
+
}
|
99
|
+
};
|
100
|
+
}
|
101
|
+
})(window.jQuery || window.$);
|
102
|
+
|
103
|
+
createHTMLBlock = (function() {
|
104
|
+
var bindData, bindEvents, parseAttributes, parseClasses, parseContents, parseEnclosure, parseReferences, parseVariableScope, regAttr, regAttrDfn, regAttrs, regCBrace, regClass, regClasses, regData, regDatas, regEvent, regEvents, regExclamation, regId, regReference, regTag, regTagNotContent, regZenTagDfn;
|
105
|
+
createHTMLBlock = function($, ZenObject, data, functions, indexes) {
|
106
|
+
var ZenCode, arr, block, blockAttrs, blockClasses, blockHTML, blockId, blockTag, blocks, el, el2, els, forScope, indexName, inner, len, obj, origZenCode, paren, result, ret, zc, zo;
|
107
|
+
if ($.isPlainObject(ZenObject)) {
|
108
|
+
ZenCode = ZenObject.main;
|
109
|
+
} else {
|
110
|
+
ZenCode = ZenObject;
|
111
|
+
ZenObject = {
|
112
|
+
main: ZenCode
|
113
|
+
};
|
114
|
+
}
|
115
|
+
origZenCode = ZenCode;
|
116
|
+
if (indexes === undefined) {
|
117
|
+
indexes = {};
|
118
|
+
}
|
119
|
+
if (ZenCode.charAt(0) === "!" || $.isArray(data)) {
|
120
|
+
if ($.isArray(data)) {
|
121
|
+
forScope = ZenCode;
|
122
|
+
} else {
|
123
|
+
obj = parseEnclosure(ZenCode, "!");
|
124
|
+
obj = obj.substring(obj.indexOf(":") + 1, obj.length - 1);
|
125
|
+
forScope = parseVariableScope(ZenCode);
|
126
|
+
}
|
127
|
+
while (forScope.charAt(0) === "@") {
|
128
|
+
forScope = parseVariableScope("!for:!" + parseReferences(forScope, ZenObject));
|
129
|
+
}
|
130
|
+
zo = ZenObject;
|
131
|
+
zo.main = forScope;
|
132
|
+
el = $();
|
133
|
+
if (ZenCode.substring(0, 5) === "!for:" || $.isArray(data)) {
|
134
|
+
if (!$.isArray(data) && obj.indexOf(":") > 0) {
|
135
|
+
indexName = obj.substring(0, obj.indexOf(":"));
|
136
|
+
obj = obj.substr(obj.indexOf(":") + 1);
|
137
|
+
}
|
138
|
+
arr = ($.isArray(data) ? data : data[obj]);
|
139
|
+
zc = zo.main;
|
140
|
+
if ($.isArray(arr) || $.isPlainObject(arr)) {
|
141
|
+
$.map(arr, function(value, index) {
|
142
|
+
var next;
|
143
|
+
zo.main = zc;
|
144
|
+
if (indexName !== undefined) {
|
145
|
+
indexes[indexName] = index;
|
146
|
+
}
|
147
|
+
if (!$.isPlainObject(value)) {
|
148
|
+
value = {
|
149
|
+
value: value
|
150
|
+
};
|
151
|
+
}
|
152
|
+
next = createHTMLBlock($, zo, value, functions, indexes);
|
153
|
+
if (el.length !== 0) {
|
154
|
+
return $.each(next, function(index, value) {
|
155
|
+
return el.push(value);
|
156
|
+
});
|
157
|
+
}
|
158
|
+
});
|
159
|
+
}
|
160
|
+
if (!$.isArray(data)) {
|
161
|
+
ZenCode = ZenCode.substr(obj.length + 6 + forScope.length);
|
162
|
+
} else {
|
163
|
+
ZenCode = "";
|
164
|
+
}
|
165
|
+
} else if (ZenCode.substring(0, 4) === "!if:") {
|
166
|
+
result = parseContents("!" + obj + "!", data, indexes);
|
167
|
+
if (result !== "undefined" || result !== "false" || result !== "") {
|
168
|
+
el = createHTMLBlock($, zo, data, functions, indexes);
|
169
|
+
}
|
170
|
+
ZenCode = ZenCode.substr(obj.length + 5 + forScope.length);
|
171
|
+
}
|
172
|
+
ZenObject.main = ZenCode;
|
173
|
+
} else if (ZenCode.charAt(0) === "(") {
|
174
|
+
paren = parseEnclosure(ZenCode, "(", ")");
|
175
|
+
inner = paren.substring(1, paren.length - 1);
|
176
|
+
ZenCode = ZenCode.substr(paren.length);
|
177
|
+
zo = ZenObject;
|
178
|
+
zo.main = inner;
|
179
|
+
el = createHTMLBlock($, zo, data, functions, indexes);
|
180
|
+
} else {
|
181
|
+
blocks = ZenCode.match(regZenTagDfn);
|
182
|
+
block = blocks[0];
|
183
|
+
if (block.length === 0) {
|
184
|
+
return "";
|
185
|
+
}
|
186
|
+
if (block.indexOf("@") >= 0) {
|
187
|
+
ZenCode = parseReferences(ZenCode, ZenObject);
|
188
|
+
zo = ZenObject;
|
189
|
+
zo.main = ZenCode;
|
190
|
+
return createHTMLBlock($, zo, data, functions, indexes);
|
191
|
+
}
|
192
|
+
block = parseContents(block, data, indexes);
|
193
|
+
blockClasses = parseClasses($, block);
|
194
|
+
if (regId.test(block)) {
|
195
|
+
blockId = regId.exec(block)[1];
|
196
|
+
}
|
197
|
+
blockAttrs = parseAttributes(block, data);
|
198
|
+
blockTag = (block.charAt(0) === "{" ? "span" : "div");
|
199
|
+
if (ZenCode.charAt(0) !== "#" && ZenCode.charAt(0) !== "." && ZenCode.charAt(0) !== "{") {
|
200
|
+
blockTag = regTag.exec(block)[1];
|
201
|
+
}
|
202
|
+
if (block.search(regCBrace) !== -1) {
|
203
|
+
blockHTML = block.match(regCBrace)[1];
|
204
|
+
}
|
205
|
+
blockAttrs = $.extend(blockAttrs, {
|
206
|
+
id: blockId,
|
207
|
+
"class": blockClasses,
|
208
|
+
html: blockHTML
|
209
|
+
});
|
210
|
+
el = $("<" + blockTag + ">", blockAttrs);
|
211
|
+
el.attr(blockAttrs);
|
212
|
+
el = bindEvents(block, el, functions);
|
213
|
+
el = bindData(block, el, data);
|
214
|
+
ZenCode = ZenCode.substr(blocks[0].length);
|
215
|
+
ZenObject.main = ZenCode;
|
216
|
+
}
|
217
|
+
if (ZenCode.length > 0) {
|
218
|
+
if (ZenCode.charAt(0) === ">") {
|
219
|
+
if (ZenCode.charAt(1) === "(") {
|
220
|
+
zc = parseEnclosure(ZenCode.substr(1), "(", ")");
|
221
|
+
ZenCode = ZenCode.substr(zc.length + 1);
|
222
|
+
} else if (ZenCode.charAt(1) === "!") {
|
223
|
+
obj = parseEnclosure(ZenCode.substr(1), "!");
|
224
|
+
forScope = parseVariableScope(ZenCode.substr(1));
|
225
|
+
zc = obj + forScope;
|
226
|
+
ZenCode = ZenCode.substr(zc.length + 1);
|
227
|
+
} else {
|
228
|
+
len = Math.max(ZenCode.indexOf("+"), ZenCode.length);
|
229
|
+
zc = ZenCode.substring(1, len);
|
230
|
+
ZenCode = ZenCode.substr(len);
|
231
|
+
}
|
232
|
+
zo = ZenObject;
|
233
|
+
zo.main = zc;
|
234
|
+
els = $(createHTMLBlock($, zo, data, functions, indexes));
|
235
|
+
els.appendTo(el);
|
236
|
+
}
|
237
|
+
if (ZenCode.charAt(0) === "+") {
|
238
|
+
zo = ZenObject;
|
239
|
+
zo.main = ZenCode.substr(1);
|
240
|
+
el2 = createHTMLBlock($, zo, data, functions, indexes);
|
241
|
+
$.each(el2, function(index, value) {
|
242
|
+
return el.push(value);
|
243
|
+
});
|
244
|
+
}
|
245
|
+
}
|
246
|
+
ret = el;
|
247
|
+
return ret;
|
248
|
+
};
|
249
|
+
bindData = function(ZenCode, el, data) {
|
250
|
+
var datas, i, split;
|
251
|
+
if (ZenCode.search(regDatas) === 0) {
|
252
|
+
return el;
|
253
|
+
}
|
254
|
+
datas = ZenCode.match(regDatas);
|
255
|
+
if (datas === null) {
|
256
|
+
return el;
|
257
|
+
}
|
258
|
+
i = 0;
|
259
|
+
while (i < datas.length) {
|
260
|
+
split = regData.exec(datas[i]);
|
261
|
+
if (split[3] === undefined) {
|
262
|
+
$(el).data(split[1], data[split[1]]);
|
263
|
+
} else {
|
264
|
+
$(el).data(split[1], data[split[3]]);
|
265
|
+
}
|
266
|
+
i++;
|
267
|
+
}
|
268
|
+
return el;
|
269
|
+
};
|
270
|
+
bindEvents = function(ZenCode, el, functions) {
|
271
|
+
var bindings, fn, i, split;
|
272
|
+
if (ZenCode.search(regEvents) === 0) {
|
273
|
+
return el;
|
274
|
+
}
|
275
|
+
bindings = ZenCode.match(regEvents);
|
276
|
+
if (bindings === null) {
|
277
|
+
return el;
|
278
|
+
}
|
279
|
+
i = 0;
|
280
|
+
while (i < bindings.length) {
|
281
|
+
split = regEvent.exec(bindings[i]);
|
282
|
+
if (split[2] === undefined) {
|
283
|
+
fn = functions[split[1]];
|
284
|
+
} else {
|
285
|
+
fn = functions[split[2]];
|
286
|
+
}
|
287
|
+
$(el).bind(split[1], fn);
|
288
|
+
i++;
|
289
|
+
}
|
290
|
+
return el;
|
291
|
+
};
|
292
|
+
parseAttributes = function(ZenBlock, data) {
|
293
|
+
var attrStrs, attrs, i, parts;
|
294
|
+
if (ZenBlock.search(regAttrDfn) === -1) {
|
295
|
+
return undefined;
|
296
|
+
}
|
297
|
+
attrStrs = ZenBlock.match(regAttrDfn);
|
298
|
+
attrs = {};
|
299
|
+
i = 0;
|
300
|
+
while (i < attrStrs.length) {
|
301
|
+
parts = regAttr.exec(attrStrs[i]);
|
302
|
+
attrs[parts[1]] = "";
|
303
|
+
if (parts[3] !== undefined) {
|
304
|
+
attrs[parts[1]] = parseContents(parts[3], data);
|
305
|
+
}
|
306
|
+
i++;
|
307
|
+
}
|
308
|
+
return attrs;
|
309
|
+
};
|
310
|
+
parseClasses = function($, ZenBlock) {
|
311
|
+
var classes, clsString, i;
|
312
|
+
ZenBlock = ZenBlock.match(regTagNotContent)[0];
|
313
|
+
if (ZenBlock.search(regClasses) === -1) {
|
314
|
+
return undefined;
|
315
|
+
}
|
316
|
+
classes = ZenBlock.match(regClasses);
|
317
|
+
clsString = "";
|
318
|
+
i = 0;
|
319
|
+
while (i < classes.length) {
|
320
|
+
clsString += " " + regClass.exec(classes[i])[1];
|
321
|
+
i++;
|
322
|
+
}
|
323
|
+
return $.trim(clsString);
|
324
|
+
};
|
325
|
+
parseContents = function(ZenBlock, data, indexes) {
|
326
|
+
var html;
|
327
|
+
if (indexes === undefined) {
|
328
|
+
indexes = {};
|
329
|
+
}
|
330
|
+
html = ZenBlock;
|
331
|
+
if (data === undefined) {
|
332
|
+
return html;
|
333
|
+
}
|
334
|
+
while (regExclamation.test(html)) {
|
335
|
+
html = html.replace(regExclamation, function(str, str2) {
|
336
|
+
var begChar, fn, val;
|
337
|
+
begChar = "";
|
338
|
+
if (str.indexOf("!for:") > 0 || str.indexOf("!if:") > 0) {
|
339
|
+
return str;
|
340
|
+
}
|
341
|
+
if (str.charAt(0) !== "!") {
|
342
|
+
begChar = str.charAt(0);
|
343
|
+
str = str.substring(2, str.length - 1);
|
344
|
+
}
|
345
|
+
fn = new Function("data", "indexes", "var r=undefined;" + "with(data){try{r=" + str + ";}catch(e){}}" + "with(indexes){try{if(r===undefined)r=" + str + ";}catch(e){}}" + "return r;");
|
346
|
+
val = unescape(fn(data, indexes));
|
347
|
+
return begChar + val;
|
348
|
+
});
|
349
|
+
}
|
350
|
+
html = html.replace(/\\./g, function(str) {
|
351
|
+
return str.charAt(1);
|
352
|
+
});
|
353
|
+
return unescape(html);
|
354
|
+
};
|
355
|
+
parseEnclosure = function(ZenCode, open, close, count) {
|
356
|
+
var index, ret;
|
357
|
+
if (close === undefined) {
|
358
|
+
close = open;
|
359
|
+
}
|
360
|
+
index = 1;
|
361
|
+
if (count === undefined) {
|
362
|
+
count = (ZenCode.charAt(0) === open ? 1 : 0);
|
363
|
+
}
|
364
|
+
if (count === 0) {
|
365
|
+
return;
|
366
|
+
}
|
367
|
+
while (count > 0 && index < ZenCode.length) {
|
368
|
+
if (ZenCode.charAt(index) === close && ZenCode.charAt(index - 1) !== "\\") {
|
369
|
+
count--;
|
370
|
+
} else {
|
371
|
+
if (ZenCode.charAt(index) === open && ZenCode.charAt(index - 1) !== "\\") {
|
372
|
+
count++;
|
373
|
+
}
|
374
|
+
}
|
375
|
+
index++;
|
376
|
+
}
|
377
|
+
ret = ZenCode.substring(0, index);
|
378
|
+
return ret;
|
379
|
+
};
|
380
|
+
parseReferences = function(ZenCode, ZenObject) {
|
381
|
+
ZenCode = ZenCode.replace(regReference, function(str) {
|
382
|
+
var fn;
|
383
|
+
str = str.substr(1);
|
384
|
+
fn = new Function("objs", "var r=\"\";" + "with(objs){try{" + "r=" + str + ";" + "}catch(e){}}" + "return r;");
|
385
|
+
return fn(ZenObject, parseReferences);
|
386
|
+
});
|
387
|
+
return ZenCode;
|
388
|
+
};
|
389
|
+
parseVariableScope = function(ZenCode) {
|
390
|
+
var forCode, rest, tag;
|
391
|
+
if (ZenCode.substring(0, 5) !== "!for:" && ZenCode.substring(0, 4) !== "!if:") {
|
392
|
+
return undefined;
|
393
|
+
}
|
394
|
+
forCode = parseEnclosure(ZenCode, "!");
|
395
|
+
ZenCode = ZenCode.substr(forCode.length);
|
396
|
+
if (ZenCode.charAt(0) === "(") {
|
397
|
+
return parseEnclosure(ZenCode, "(", ")");
|
398
|
+
}
|
399
|
+
tag = ZenCode.match(regZenTagDfn)[0];
|
400
|
+
ZenCode = ZenCode.substr(tag.length);
|
401
|
+
if (ZenCode.length === 0 || ZenCode.charAt(0) === "+") {
|
402
|
+
return tag;
|
403
|
+
} else if (ZenCode.charAt(0) === ">") {
|
404
|
+
rest = "";
|
405
|
+
rest = parseEnclosure(ZenCode.substr(1), "(", ")", 1);
|
406
|
+
return tag + ">" + rest;
|
407
|
+
}
|
408
|
+
return undefined;
|
409
|
+
};
|
410
|
+
regZenTagDfn = /([#\.\@]?[\w-]+|\[([\w-!?=:"']+(="([^"]|\\")+")? {0,})+\]|\~[\w$]+=[\w$]+|&[\w$]+(=[\w$]+)?|[#\.\@]?!([^!]|\\!)+!){0,}(\{([^\}]|\\\})+\})?/i;
|
411
|
+
regTag = /(\w+)/i;
|
412
|
+
regId = /(?:^|\b)#([\w-!]+)/i;
|
413
|
+
regTagNotContent = /((([#\.]?[\w-]+)?(\[([\w!]+(="([^"]|\\")+")? {0,})+\])?)+)/i;
|
414
|
+
/*
|
415
|
+
See lookahead syntax (?!) at https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
|
416
|
+
*/
|
417
|
+
|
418
|
+
regClasses = /(\.[\w-]+)(?!["\w])/g;
|
419
|
+
regClass = /\.([\w-]+)/i;
|
420
|
+
regReference = /(@[\w$_][\w$_\d]+)/i;
|
421
|
+
regAttrDfn = /(\[([\w-!]+(="?([^"]|\\")+"?)? {0,})+\])/ig;
|
422
|
+
regAttrs = /([\w-!]+(="([^"]|\\")+")?)/g;
|
423
|
+
regAttr = /([\w-!]+)(="?((([\w]+(\[.*?\])+)|[^"\]]|\\")+)"?)?/i;
|
424
|
+
regCBrace = /\{(([^\}]|\\\})+)\}/i;
|
425
|
+
regExclamation = /(?:([^\\]|^))!([^!]|\\!)+!/g;
|
426
|
+
regEvents = /\~[\w$]+(=[\w$]+)?/g;
|
427
|
+
regEvent = /\~([\w$]+)=([\w$]+)/i;
|
428
|
+
regDatas = /&[\w$]+(=[\w$]+)?/g;
|
429
|
+
regData = /&([\w$]+)(=([\w$]+))?/i;
|
430
|
+
return createHTMLBlock;
|
431
|
+
})();
|
432
|
+
|
433
|
+
}).call(this);
|
@@ -0,0 +1,108 @@
|
|
1
|
+
<a name"0.2.0"></a>
|
2
|
+
## 0.2.0 (2015-06-23)
|
3
|
+
|
4
|
+
|
5
|
+
#### Bug Fixes
|
6
|
+
|
7
|
+
* Use fs-access shim for file detection. ([6355ca88](https://github.com/karma-runner/karma-chrome-launcher/commit/6355ca88), closes [#53](https://github.com/karma-runner/karma-chrome-launcher/issues/53))
|
8
|
+
|
9
|
+
|
10
|
+
<a name"0.1.9"></a>
|
11
|
+
### 0.1.9 (2015-06-23)
|
12
|
+
|
13
|
+
|
14
|
+
<a name"0.1.8"></a>
|
15
|
+
### 0.1.8 (2015-06-23)
|
16
|
+
|
17
|
+
|
18
|
+
<a name"0.1.7"></a>
|
19
|
+
### 0.1.7 (2015-06-23)
|
20
|
+
|
21
|
+
|
22
|
+
<a name"0.1.6"></a>
|
23
|
+
### 0.1.6 (2015-06-23)
|
24
|
+
|
25
|
+
|
26
|
+
#### Bug Fixes
|
27
|
+
|
28
|
+
* **jsFlags:** un-quote --js-flags flag and automatically merge with presets ([4509c277](https://github.com/karma-runner/karma-chrome-launcher/commit/4509c277))
|
29
|
+
|
30
|
+
|
31
|
+
<a name"0.1.5"></a>
|
32
|
+
### 0.1.5 (2015-06-23)
|
33
|
+
|
34
|
+
|
35
|
+
#### Bug Fixes
|
36
|
+
|
37
|
+
* better error when DARTIUM_BIN not set ([27462e86](https://github.com/karma-runner/karma-chrome-launcher/commit/27462e86))
|
38
|
+
|
39
|
+
|
40
|
+
<a name"0.1.4"></a>
|
41
|
+
### 0.1.4 (2015-06-23)
|
42
|
+
|
43
|
+
|
44
|
+
#### Bug Fixes
|
45
|
+
|
46
|
+
* the translation is now disabled on launch ([b2f389ba](https://github.com/karma-runner/karma-chrome-launcher/commit/b2f389ba))
|
47
|
+
|
48
|
+
|
49
|
+
<a name"0.1.3"></a>
|
50
|
+
### 0.1.3 (2015-06-23)
|
51
|
+
|
52
|
+
|
53
|
+
#### Features
|
54
|
+
|
55
|
+
* **Launcher:** Add Dartium launcher. ([ae81c0c1](https://github.com/karma-runner/karma-chrome-launcher/commit/ae81c0c1))
|
56
|
+
|
57
|
+
|
58
|
+
<a name"0.1.2"></a>
|
59
|
+
### 0.1.2 (2015-06-23)
|
60
|
+
|
61
|
+
|
62
|
+
<a name"0.1.12"></a>
|
63
|
+
### 0.1.12 (2015-06-23)
|
64
|
+
|
65
|
+
|
66
|
+
<a name"0.1.11"></a>
|
67
|
+
### 0.1.11 (2015-06-23)
|
68
|
+
|
69
|
+
|
70
|
+
<a name"0.1.10"></a>
|
71
|
+
### 0.1.10 (2015-06-23)
|
72
|
+
|
73
|
+
|
74
|
+
#### Bug Fixes
|
75
|
+
|
76
|
+
* better error when DARTIUM_BIN not set ([27462e86](https://github.com/karma-runner/karma-chrome-launcher/commit/27462e86))
|
77
|
+
* the translation is now disabled on launch ([b2f389ba](https://github.com/karma-runner/karma-chrome-launcher/commit/b2f389ba))
|
78
|
+
* **jsFlags:** un-quote --js-flags flag and automatically merge with presets ([4509c277](https://github.com/karma-runner/karma-chrome-launcher/commit/4509c277))
|
79
|
+
|
80
|
+
|
81
|
+
#### Features
|
82
|
+
|
83
|
+
* disable popup blocking by default ([2cdace9e](https://github.com/karma-runner/karma-chrome-launcher/commit/2cdace9e))
|
84
|
+
* **Launcher:** Add Dartium launcher. ([ae81c0c1](https://github.com/karma-runner/karma-chrome-launcher/commit/ae81c0c1))
|
85
|
+
|
86
|
+
|
87
|
+
<a name"0.1.1"></a>
|
88
|
+
### 0.1.1 (2015-06-23)
|
89
|
+
|
90
|
+
|
91
|
+
#### Bug Fixes
|
92
|
+
|
93
|
+
* handle Chrome location on Windows ([62df3014](https://github.com/karma-runner/karma-chrome-launcher/commit/62df3014))
|
94
|
+
* correct Chrome path on Windows ([9ebd9974](https://github.com/karma-runner/karma-chrome-launcher/commit/9ebd9974), closes [#2](https://github.com/karma-runner/karma-chrome-launcher/issues/2))
|
95
|
+
|
96
|
+
|
97
|
+
<a name"0.1.0"></a>
|
98
|
+
## 0.1.0 (2015-06-23)
|
99
|
+
|
100
|
+
|
101
|
+
<a name"0.0.2"></a>
|
102
|
+
### 0.0.2 (2015-06-23)
|
103
|
+
|
104
|
+
|
105
|
+
#### Features
|
106
|
+
|
107
|
+
* allow passing custom flags ([4ebc7694](https://github.com/karma-runner/karma-chrome-launcher/commit/4ebc7694))
|
108
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Copyright (C) 2011-2013 Google, Inc.
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
7
|
+
the Software without restriction, including without limitation the rights to
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
9
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
10
|
+
so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
17
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
18
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
19
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# karma-chrome-launcher
|
2
|
+
|
3
|
+
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/karma-runner/karma-chrome-launcher)
|
4
|
+
[![npm version](https://img.shields.io/npm/v/karma-chrome-launcher.svg?style=flat-square)](https://www.npmjs.com/package/karma-chrome-launcher) [![npm downloads](https://img.shields.io/npm/dm/karma-chrome-launcher.svg?style=flat-square)](https://www.npmjs.com/package/karma-chrome-launcher)
|
5
|
+
|
6
|
+
[![Build Status](https://img.shields.io/travis/karma-runner/karma-chrome-launcher/master.svg?style=flat-square)](https://travis-ci.org/karma-runner/karma-chrome-launcher) [![Dependency Status](https://img.shields.io/david/karma-runner/karma-chrome-launcher.svg?style=flat-square)](https://david-dm.org/karma-runner/karma-chrome-launcher) [![devDependency Status](https://img.shields.io/david/dev/karma-runner/karma-chrome-launcher.svg?style=flat-square)](https://david-dm.org/karma-runner/karma-chrome-launcher#info=devDependencies)
|
7
|
+
|
8
|
+
> Launcher for Google Chrome and Google Chrome Canary.
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
The easiest way is to keep `karma-chrome-launcher` as a devDependency in your `package.json`,
|
13
|
+
by running
|
14
|
+
|
15
|
+
```bash
|
16
|
+
$ npm install karma-chrome-launcher --save-dev
|
17
|
+
```
|
18
|
+
|
19
|
+
## Configuration
|
20
|
+
|
21
|
+
```js
|
22
|
+
// karma.conf.js
|
23
|
+
module.exports = function(config) {
|
24
|
+
config.set({
|
25
|
+
browsers: ['Chrome', 'Chrome_without_security'],
|
26
|
+
|
27
|
+
// you can define custom flags
|
28
|
+
customLaunchers: {
|
29
|
+
Chrome_without_security: {
|
30
|
+
base: 'Chrome',
|
31
|
+
flags: ['--disable-web-security']
|
32
|
+
}
|
33
|
+
}
|
34
|
+
})
|
35
|
+
}
|
36
|
+
```
|
37
|
+
|
38
|
+
You can pass list of browsers as a CLI argument too:
|
39
|
+
|
40
|
+
```bash
|
41
|
+
$ karma start --browsers Chrome,Chrome_without_security
|
42
|
+
```
|
43
|
+
|
44
|
+
----
|
45
|
+
|
46
|
+
For more information on Karma see the [homepage].
|
47
|
+
|
48
|
+
|
49
|
+
[homepage]: http://karma-runner.github.com
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module.exports = function (config) {
|
2
|
+
config.set({
|
3
|
+
basePath: '',
|
4
|
+
|
5
|
+
frameworks: ['mocha'],
|
6
|
+
|
7
|
+
files: [
|
8
|
+
'*.js'
|
9
|
+
],
|
10
|
+
|
11
|
+
exclude: [],
|
12
|
+
|
13
|
+
reporters: ['progress'],
|
14
|
+
|
15
|
+
port: 9876,
|
16
|
+
|
17
|
+
colors: true,
|
18
|
+
|
19
|
+
logLevel: config.LOG_INFO,
|
20
|
+
|
21
|
+
autoWatch: false,
|
22
|
+
|
23
|
+
browsers: ['Chrome'],
|
24
|
+
|
25
|
+
singleRun: false,
|
26
|
+
|
27
|
+
plugins: [
|
28
|
+
require('../../'),
|
29
|
+
'karma-mocha'
|
30
|
+
]
|
31
|
+
})
|
32
|
+
}
|