trusty-festivity-extension 2.5.0 → 2.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/skins/traf/fn-instagram-bg.svg +1 -0
  3. data/app/assets/images/skins/traf/fn-twitter-bg.svg +1 -0
  4. data/app/assets/images/skins/traf/traf-background.png +0 -0
  5. data/app/assets/images/skins/traf/traf-bottom-wave.png +0 -0
  6. data/app/assets/images/skins/traf/traf-bridge.png +0 -0
  7. data/app/assets/images/skins/traf/traf-bubbles.png +0 -0
  8. data/app/assets/images/skins/traf/traf-logo.svg +1 -0
  9. data/app/assets/javascripts/modal.js +2 -2
  10. data/app/assets/stylesheets/grunticon/info.svg +1 -0
  11. data/app/assets/stylesheets/grunticon/production/icons.data.png.css +4 -0
  12. data/app/assets/stylesheets/grunticon/production/icons.data.svg.css +5 -0
  13. data/app/assets/stylesheets/grunticon/production/icons.fallback.css +5 -0
  14. data/app/assets/stylesheets/grunticon/production/png/info.png +0 -0
  15. data/app/assets/stylesheets/library/_icons.scss +8 -1
  16. data/app/assets/stylesheets/skins/traf/contexts/_featured_events.scss +72 -0
  17. data/app/assets/stylesheets/skins/traf/contexts/_homepage.scss +95 -0
  18. data/app/assets/stylesheets/skins/traf/contexts/_social_feed.scss +82 -0
  19. data/app/assets/stylesheets/skins/traf/library/_general-mixins.scss +1 -0
  20. data/app/assets/stylesheets/skins/traf/skin.scss +2 -2
  21. data/app/assets/stylesheets/traf.scss +3 -0
  22. data/app/models/festivity_event_list.rb +4 -1
  23. data/app/presenters/social/twitter_post_presenter.rb +32 -0
  24. data/app/services/twitter_feed_service.rb +16 -0
  25. data/app/views/festivity_events/show.html.haml +2 -4
  26. data/app/views/festivity_markets/_market.html.haml +1 -3
  27. data/app/views/social/_instagram_posts.html.haml +0 -4
  28. data/app/views/social/_twitter_posts.html.haml +16 -0
  29. data/lib/tags/header_tags.rb +3 -2
  30. data/lib/tags/social_feed_tags.rb +13 -0
  31. data/lib/trusty-festivity-extension.rb +1 -1
  32. metadata +17 -73
  33. data/node_modules/bower/node_modules/handlebars/coverage/coverage.json +0 -1
  34. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars.js.html +0 -436
  35. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars.runtime.js.html +0 -424
  36. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/base.js.html +0 -1012
  37. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/ast.js.html +0 -961
  38. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/base.js.html +0 -382
  39. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/compiler.js.html +0 -1675
  40. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/helpers.js.html +0 -880
  41. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/index.html +0 -441
  42. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/javascript-compiler.js.html +0 -3211
  43. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/parser.js.html +0 -1819
  44. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/printer.js.html +0 -742
  45. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/visitor.js.html +0 -355
  46. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/exception.js.html +0 -403
  47. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/index.html +0 -402
  48. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/runtime.js.html +0 -898
  49. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/safe-string.js.html +0 -352
  50. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/utils.js.html +0 -583
  51. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/dist/cjs/index.html +0 -363
  52. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/index.html +0 -389
  53. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/lib/index.html +0 -363
  54. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/lib/index.js.html +0 -400
  55. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/lib/precompiler.js.html +0 -754
  56. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/prettify.css +0 -1
  57. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/prettify.js +0 -1
  58. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/ast.js.html +0 -1594
  59. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/basic.js.html +0 -973
  60. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/blocks.js.html +0 -676
  61. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/builtins.js.html +0 -1018
  62. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/data.js.html +0 -1093
  63. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/env/browser.js.html +0 -406
  64. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/env/common.js.html +0 -481
  65. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/env/index.html +0 -402
  66. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/env/node.js.html +0 -391
  67. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/env/runner.js.html +0 -457
  68. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/env/runtime.js.html +0 -466
  69. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/helpers.js.html +0 -2182
  70. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/index.html +0 -597
  71. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/javascript-compiler.js.html +0 -535
  72. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/parser.js.html +0 -892
  73. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/partials.js.html +0 -841
  74. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/precompiler.js.html +0 -442
  75. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/regressions.js.html +0 -790
  76. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/require.js.html +0 -391
  77. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/runtime.js.html +0 -337
  78. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/spec.js.html +0 -469
  79. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/string-params.js.html +0 -850
  80. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/subexpressions.js.html +0 -970
  81. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/tokenizer.js.html +0 -1528
  82. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/track-ids.js.html +0 -811
  83. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/utils.js.html +0 -499
  84. data/node_modules/bower/node_modules/handlebars/coverage/lcov-report/spec/whitespace-control.js.html +0 -508
  85. data/node_modules/bower/node_modules/handlebars/coverage/lcov.info +0 -3181
  86. data/node_modules/bower/node_modules/semver/semver.browser.js.gz +0 -0
  87. data/node_modules/bower/node_modules/semver/semver.min.js.gz +0 -0
  88. data/node_modules/bower/node_modules/tmp/README.md +0 -162
  89. data/node_modules/bower/node_modules/tmp/domain-test.js +0 -13
  90. data/node_modules/bower/node_modules/tmp/lib/tmp.js +0 -307
  91. data/node_modules/bower/node_modules/tmp/package.json +0 -50
  92. data/node_modules/bower/node_modules/tmp/test-all.sh +0 -9
  93. data/node_modules/bower/node_modules/tmp/test.js +0 -6
  94. data/node_modules/bower/node_modules/tmp/test/base.js +0 -74
  95. data/node_modules/bower/node_modules/tmp/test/dir-test.js +0 -196
  96. data/node_modules/bower/node_modules/tmp/test/file-test.js +0 -177
  97. data/node_modules/bower/node_modules/tmp/test/graceful.js +0 -15
  98. data/node_modules/bower/node_modules/tmp/test/keep.js +0 -11
  99. data/node_modules/bower/node_modules/tmp/test/name-test.js +0 -82
  100. data/node_modules/bower/node_modules/tmp/test/spawn.js +0 -32
  101. data/node_modules/bower/node_modules/tmp/test/symlinkme/file.js +0 -0
  102. data/node_modules/bower/node_modules/tmp/test/unsafe.js +0 -30
  103. data/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/nested-error-stacks/README.md~ +0 -0
@@ -1,1528 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <title>Code coverage report for spec/tokenizer.js</title>
5
- <meta charset="utf-8">
6
-
7
- <link rel="stylesheet" href="../prettify.css">
8
-
9
- <style>
10
- body, html {
11
- margin:0; padding: 0;
12
- }
13
- body {
14
- font-family: Helvetica Neue, Helvetica,Arial;
15
- font-size: 10pt;
16
- }
17
- div.header, div.footer {
18
- background: #eee;
19
- padding: 1em;
20
- }
21
- div.header {
22
- z-index: 100;
23
- position: fixed;
24
- top: 0;
25
- border-bottom: 1px solid #666;
26
- width: 100%;
27
- }
28
- div.footer {
29
- border-top: 1px solid #666;
30
- }
31
- div.body {
32
- margin-top: 10em;
33
- }
34
- div.meta {
35
- font-size: 90%;
36
- text-align: center;
37
- }
38
- h1, h2, h3 {
39
- font-weight: normal;
40
- }
41
- h1 {
42
- font-size: 12pt;
43
- }
44
- h2 {
45
- font-size: 10pt;
46
- }
47
- pre {
48
- font-family: Consolas, Menlo, Monaco, monospace;
49
- margin: 0;
50
- padding: 0;
51
- line-height: 14px;
52
- font-size: 14px;
53
- -moz-tab-size: 2;
54
- -o-tab-size: 2;
55
- tab-size: 2;
56
- }
57
-
58
- div.path { font-size: 110%; }
59
- div.path a:link, div.path a:visited { color: #000; }
60
- table.coverage { border-collapse: collapse; margin:0; padding: 0 }
61
-
62
- table.coverage td {
63
- margin: 0;
64
- padding: 0;
65
- color: #111;
66
- vertical-align: top;
67
- }
68
- table.coverage td.line-count {
69
- width: 50px;
70
- text-align: right;
71
- padding-right: 5px;
72
- }
73
- table.coverage td.line-coverage {
74
- color: #777 !important;
75
- text-align: right;
76
- border-left: 1px solid #666;
77
- border-right: 1px solid #666;
78
- }
79
-
80
- table.coverage td.text {
81
- }
82
-
83
- table.coverage td span.cline-any {
84
- display: inline-block;
85
- padding: 0 5px;
86
- width: 40px;
87
- }
88
- table.coverage td span.cline-neutral {
89
- background: #eee;
90
- }
91
- table.coverage td span.cline-yes {
92
- background: #b5d592;
93
- color: #999;
94
- }
95
- table.coverage td span.cline-no {
96
- background: #fc8c84;
97
- }
98
-
99
- .cstat-yes { color: #111; }
100
- .cstat-no { background: #fc8c84; color: #111; }
101
- .fstat-no { background: #ffc520; color: #111 !important; }
102
- .cbranch-no { background: yellow !important; color: #111; }
103
-
104
- .cstat-skip { background: #ddd; color: #111; }
105
- .fstat-skip { background: #ddd; color: #111 !important; }
106
- .cbranch-skip { background: #ddd !important; color: #111; }
107
-
108
- .missing-if-branch {
109
- display: inline-block;
110
- margin-right: 10px;
111
- position: relative;
112
- padding: 0 4px;
113
- background: black;
114
- color: yellow;
115
- }
116
-
117
- .skip-if-branch {
118
- display: none;
119
- margin-right: 10px;
120
- position: relative;
121
- padding: 0 4px;
122
- background: #ccc;
123
- color: white;
124
- }
125
-
126
- .missing-if-branch .typ, .skip-if-branch .typ {
127
- color: inherit !important;
128
- }
129
-
130
- .entity, .metric { font-weight: bold; }
131
- .metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; }
132
- .metric small { font-size: 80%; font-weight: normal; color: #666; }
133
-
134
- div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; }
135
- div.coverage-summary td, div.coverage-summary table th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; }
136
- div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; }
137
- div.coverage-summary th.file { border-right: none !important; }
138
- div.coverage-summary th.pic { border-left: none !important; text-align: right; }
139
- div.coverage-summary th.pct { border-right: none !important; }
140
- div.coverage-summary th.abs { border-left: none !important; text-align: right; }
141
- div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; }
142
- div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; }
143
- div.coverage-summary td.file { text-align: right; border-left: 1px solid #666; white-space: nowrap; }
144
- div.coverage-summary td.pic { min-width: 120px !important; }
145
- div.coverage-summary a:link { text-decoration: none; color: #000; }
146
- div.coverage-summary a:visited { text-decoration: none; color: #333; }
147
- div.coverage-summary a:hover { text-decoration: underline; }
148
- div.coverage-summary tfoot td { border-top: 1px solid #666; }
149
-
150
- div.coverage-summary .yui3-datatable-sort-indicator, div.coverage-summary .dummy-sort-indicator {
151
- height: 10px;
152
- width: 7px;
153
- display: inline-block;
154
- margin-left: 0.5em;
155
- }
156
- div.coverage-summary .yui3-datatable-sort-indicator {
157
- background: url("https://yui-s.yahooapis.com/3.6.0/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png") no-repeat scroll 0 0 transparent;
158
- }
159
- div.coverage-summary .yui3-datatable-sorted .yui3-datatable-sort-indicator {
160
- background-position: 0 -20px;
161
- }
162
- div.coverage-summary .yui3-datatable-sorted-desc .yui3-datatable-sort-indicator {
163
- background-position: 0 -10px;
164
- }
165
-
166
- .high { background: #b5d592 !important; }
167
- .medium { background: #ffe87c !important; }
168
- .low { background: #fc8c84 !important; }
169
-
170
- span.cover-fill, span.cover-empty {
171
- display:inline-block;
172
- border:1px solid #444;
173
- background: white;
174
- height: 12px;
175
- }
176
- span.cover-fill {
177
- background: #ccc;
178
- border-right: 1px solid #444;
179
- }
180
- span.cover-empty {
181
- background: white;
182
- border-left: none;
183
- }
184
- span.cover-full {
185
- border-right: none !important;
186
- }
187
- pre.prettyprint {
188
- border: none !important;
189
- padding: 0 !important;
190
- margin: 0 !important;
191
- }
192
- .com { color: #999 !important; }
193
- .ignore-none { color: #999; font-weight: normal; }
194
-
195
- </style>
196
- </head>
197
- <body>
198
- <div class="header low">
199
- <h1>Code coverage report for <span class="entity">spec/tokenizer.js</span></h1>
200
- <h2>
201
-
202
- Statements: <span class="metric">20.91% <small>(55 / 263)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
203
-
204
-
205
- Branches: <span class="metric">22.22% <small>(2 / 9)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
206
-
207
-
208
- Functions: <span class="metric">1.89% <small>(1 / 53)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
209
-
210
-
211
- Lines: <span class="metric">20.91% <small>(55 / 263)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
212
-
213
- Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
214
- </h2>
215
- <div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">spec/</a> &#187; tokenizer.js</div>
216
- </div>
217
- <div class="body">
218
- <pre><table class="coverage">
219
- <tr><td class="line-count">1
220
- 2
221
- 3
222
- 4
223
- 5
224
- 6
225
- 7
226
- 8
227
- 9
228
- 10
229
- 11
230
- 12
231
- 13
232
- 14
233
- 15
234
- 16
235
- 17
236
- 18
237
- 19
238
- 20
239
- 21
240
- 22
241
- 23
242
- 24
243
- 25
244
- 26
245
- 27
246
- 28
247
- 29
248
- 30
249
- 31
250
- 32
251
- 33
252
- 34
253
- 35
254
- 36
255
- 37
256
- 38
257
- 39
258
- 40
259
- 41
260
- 42
261
- 43
262
- 44
263
- 45
264
- 46
265
- 47
266
- 48
267
- 49
268
- 50
269
- 51
270
- 52
271
- 53
272
- 54
273
- 55
274
- 56
275
- 57
276
- 58
277
- 59
278
- 60
279
- 61
280
- 62
281
- 63
282
- 64
283
- 65
284
- 66
285
- 67
286
- 68
287
- 69
288
- 70
289
- 71
290
- 72
291
- 73
292
- 74
293
- 75
294
- 76
295
- 77
296
- 78
297
- 79
298
- 80
299
- 81
300
- 82
301
- 83
302
- 84
303
- 85
304
- 86
305
- 87
306
- 88
307
- 89
308
- 90
309
- 91
310
- 92
311
- 93
312
- 94
313
- 95
314
- 96
315
- 97
316
- 98
317
- 99
318
- 100
319
- 101
320
- 102
321
- 103
322
- 104
323
- 105
324
- 106
325
- 107
326
- 108
327
- 109
328
- 110
329
- 111
330
- 112
331
- 113
332
- 114
333
- 115
334
- 116
335
- 117
336
- 118
337
- 119
338
- 120
339
- 121
340
- 122
341
- 123
342
- 124
343
- 125
344
- 126
345
- 127
346
- 128
347
- 129
348
- 130
349
- 131
350
- 132
351
- 133
352
- 134
353
- 135
354
- 136
355
- 137
356
- 138
357
- 139
358
- 140
359
- 141
360
- 142
361
- 143
362
- 144
363
- 145
364
- 146
365
- 147
366
- 148
367
- 149
368
- 150
369
- 151
370
- 152
371
- 153
372
- 154
373
- 155
374
- 156
375
- 157
376
- 158
377
- 159
378
- 160
379
- 161
380
- 162
381
- 163
382
- 164
383
- 165
384
- 166
385
- 167
386
- 168
387
- 169
388
- 170
389
- 171
390
- 172
391
- 173
392
- 174
393
- 175
394
- 176
395
- 177
396
- 178
397
- 179
398
- 180
399
- 181
400
- 182
401
- 183
402
- 184
403
- 185
404
- 186
405
- 187
406
- 188
407
- 189
408
- 190
409
- 191
410
- 192
411
- 193
412
- 194
413
- 195
414
- 196
415
- 197
416
- 198
417
- 199
418
- 200
419
- 201
420
- 202
421
- 203
422
- 204
423
- 205
424
- 206
425
- 207
426
- 208
427
- 209
428
- 210
429
- 211
430
- 212
431
- 213
432
- 214
433
- 215
434
- 216
435
- 217
436
- 218
437
- 219
438
- 220
439
- 221
440
- 222
441
- 223
442
- 224
443
- 225
444
- 226
445
- 227
446
- 228
447
- 229
448
- 230
449
- 231
450
- 232
451
- 233
452
- 234
453
- 235
454
- 236
455
- 237
456
- 238
457
- 239
458
- 240
459
- 241
460
- 242
461
- 243
462
- 244
463
- 245
464
- 246
465
- 247
466
- 248
467
- 249
468
- 250
469
- 251
470
- 252
471
- 253
472
- 254
473
- 255
474
- 256
475
- 257
476
- 258
477
- 259
478
- 260
479
- 261
480
- 262
481
- 263
482
- 264
483
- 265
484
- 266
485
- 267
486
- 268
487
- 269
488
- 270
489
- 271
490
- 272
491
- 273
492
- 274
493
- 275
494
- 276
495
- 277
496
- 278
497
- 279
498
- 280
499
- 281
500
- 282
501
- 283
502
- 284
503
- 285
504
- 286
505
- 287
506
- 288
507
- 289
508
- 290
509
- 291
510
- 292
511
- 293
512
- 294
513
- 295
514
- 296
515
- 297
516
- 298
517
- 299
518
- 300
519
- 301
520
- 302
521
- 303
522
- 304
523
- 305
524
- 306
525
- 307
526
- 308
527
- 309
528
- 310
529
- 311
530
- 312
531
- 313
532
- 314
533
- 315
534
- 316
535
- 317
536
- 318
537
- 319
538
- 320
539
- 321
540
- 322
541
- 323
542
- 324
543
- 325
544
- 326
545
- 327
546
- 328
547
- 329
548
- 330
549
- 331
550
- 332
551
- 333
552
- 334
553
- 335
554
- 336
555
- 337
556
- 338
557
- 339
558
- 340
559
- 341
560
- 342
561
- 343
562
- 344
563
- 345
564
- 346
565
- 347
566
- 348
567
- 349
568
- 350
569
- 351
570
- 352
571
- 353
572
- 354
573
- 355
574
- 356
575
- 357
576
- 358
577
- 359
578
- 360
579
- 361
580
- 362
581
- 363
582
- 364
583
- 365
584
- 366
585
- 367
586
- 368
587
- 369
588
- 370
589
- 371
590
- 372
591
- 373
592
- 374
593
- 375
594
- 376
595
- 377
596
- 378
597
- 379
598
- 380
599
- 381
600
- 382
601
- 383
602
- 384
603
- 385
604
- 386
605
- 387
606
- 388
607
- 389
608
- 390
609
- 391
610
- 392
611
- 393
612
- 394
613
- 395
614
- 396
615
- 397
616
- 398
617
- 399
618
- 400
619
- 401
620
- 402
621
- 403</td><td class="line-coverage"><span class="cline-any cline-yes">1</span>
622
- <span class="cline-any cline-no">&nbsp;</span>
623
- <span class="cline-any cline-no">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-yes">1</span>
627
- <span class="cline-any cline-no">&nbsp;</span>
628
- <span class="cline-any cline-no">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-yes">3</span>
632
- <span class="cline-any cline-yes">3</span>
633
- <span class="cline-any cline-yes">1</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-yes">1</span>
637
- <span class="cline-any cline-no">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-no">&nbsp;</span>
641
- <span class="cline-any cline-no">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-no">&nbsp;</span>
645
- <span class="cline-any cline-no">&nbsp;</span>
646
- <span class="cline-any cline-no">&nbsp;</span>
647
- <span class="cline-any cline-no">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-no">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-no">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-yes">2</span>
656
- <span class="cline-any cline-no">&nbsp;</span>
657
- <span class="cline-any cline-no">&nbsp;</span>
658
- <span class="cline-any cline-no">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-yes">2</span>
662
- <span class="cline-any cline-no">&nbsp;</span>
663
- <span class="cline-any cline-no">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-no">&nbsp;</span>
666
- <span class="cline-any cline-no">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-yes">2</span>
670
- <span class="cline-any cline-no">&nbsp;</span>
671
- <span class="cline-any cline-no">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-no">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-yes">2</span>
677
- <span class="cline-any cline-no">&nbsp;</span>
678
- <span class="cline-any cline-no">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-no">&nbsp;</span>
681
- <span class="cline-any cline-no">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-yes">2</span>
685
- <span class="cline-any cline-no">&nbsp;</span>
686
- <span class="cline-any cline-no">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-no">&nbsp;</span>
689
- <span class="cline-any cline-no">&nbsp;</span>
690
- <span class="cline-any cline-no">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-yes">2</span>
694
- <span class="cline-any cline-no">&nbsp;</span>
695
- <span class="cline-any cline-no">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-no">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-yes">2</span>
701
- <span class="cline-any cline-no">&nbsp;</span>
702
- <span class="cline-any cline-no">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-no">&nbsp;</span>
705
- <span class="cline-any cline-no">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-yes">2</span>
709
- <span class="cline-any cline-no">&nbsp;</span>
710
- <span class="cline-any cline-no">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-no">&nbsp;</span>
713
- <span class="cline-any cline-no">&nbsp;</span>
714
- <span class="cline-any cline-no">&nbsp;</span>
715
- <span class="cline-any cline-no">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-yes">2</span>
719
- <span class="cline-any cline-no">&nbsp;</span>
720
- <span class="cline-any cline-no">&nbsp;</span>
721
- <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-no">&nbsp;</span>
723
- <span class="cline-any cline-no">&nbsp;</span>
724
- <span class="cline-any cline-no">&nbsp;</span>
725
- <span class="cline-any cline-no">&nbsp;</span>
726
- <span class="cline-any cline-no">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-yes">2</span>
730
- <span class="cline-any cline-no">&nbsp;</span>
731
- <span class="cline-any cline-no">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-no">&nbsp;</span>
734
- <span class="cline-any cline-no">&nbsp;</span>
735
- <span class="cline-any cline-no">&nbsp;</span>
736
- <span class="cline-any cline-no">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-yes">2</span>
740
- <span class="cline-any cline-no">&nbsp;</span>
741
- <span class="cline-any cline-no">&nbsp;</span>
742
- <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-no">&nbsp;</span>
744
- <span class="cline-any cline-no">&nbsp;</span>
745
- <span class="cline-any cline-neutral">&nbsp;</span>
746
- <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-yes">2</span>
748
- <span class="cline-any cline-no">&nbsp;</span>
749
- <span class="cline-any cline-no">&nbsp;</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-neutral">&nbsp;</span>
752
- <span class="cline-any cline-yes">2</span>
753
- <span class="cline-any cline-no">&nbsp;</span>
754
- <span class="cline-any cline-no">&nbsp;</span>
755
- <span class="cline-any cline-neutral">&nbsp;</span>
756
- <span class="cline-any cline-no">&nbsp;</span>
757
- <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-neutral">&nbsp;</span>
759
- <span class="cline-any cline-yes">2</span>
760
- <span class="cline-any cline-no">&nbsp;</span>
761
- <span class="cline-any cline-no">&nbsp;</span>
762
- <span class="cline-any cline-neutral">&nbsp;</span>
763
- <span class="cline-any cline-neutral">&nbsp;</span>
764
- <span class="cline-any cline-yes">2</span>
765
- <span class="cline-any cline-no">&nbsp;</span>
766
- <span class="cline-any cline-no">&nbsp;</span>
767
- <span class="cline-any cline-neutral">&nbsp;</span>
768
- <span class="cline-any cline-neutral">&nbsp;</span>
769
- <span class="cline-any cline-yes">2</span>
770
- <span class="cline-any cline-no">&nbsp;</span>
771
- <span class="cline-any cline-no">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-neutral">&nbsp;</span>
774
- <span class="cline-any cline-yes">2</span>
775
- <span class="cline-any cline-no">&nbsp;</span>
776
- <span class="cline-any cline-no">&nbsp;</span>
777
- <span class="cline-any cline-no">&nbsp;</span>
778
- <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-yes">2</span>
781
- <span class="cline-any cline-no">&nbsp;</span>
782
- <span class="cline-any cline-no">&nbsp;</span>
783
- <span class="cline-any cline-no">&nbsp;</span>
784
- <span class="cline-any cline-neutral">&nbsp;</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-yes">2</span>
787
- <span class="cline-any cline-no">&nbsp;</span>
788
- <span class="cline-any cline-no">&nbsp;</span>
789
- <span class="cline-any cline-no">&nbsp;</span>
790
- <span class="cline-any cline-no">&nbsp;</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-yes">2</span>
794
- <span class="cline-any cline-no">&nbsp;</span>
795
- <span class="cline-any cline-no">&nbsp;</span>
796
- <span class="cline-any cline-no">&nbsp;</span>
797
- <span class="cline-any cline-neutral">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-yes">2</span>
800
- <span class="cline-any cline-no">&nbsp;</span>
801
- <span class="cline-any cline-no">&nbsp;</span>
802
- <span class="cline-any cline-no">&nbsp;</span>
803
- <span class="cline-any cline-neutral">&nbsp;</span>
804
- <span class="cline-any cline-neutral">&nbsp;</span>
805
- <span class="cline-any cline-yes">2</span>
806
- <span class="cline-any cline-no">&nbsp;</span>
807
- <span class="cline-any cline-no">&nbsp;</span>
808
- <span class="cline-any cline-no">&nbsp;</span>
809
- <span class="cline-any cline-no">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-yes">2</span>
813
- <span class="cline-any cline-no">&nbsp;</span>
814
- <span class="cline-any cline-no">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-yes">2</span>
818
- <span class="cline-any cline-no">&nbsp;</span>
819
- <span class="cline-any cline-no">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-yes">2</span>
823
- <span class="cline-any cline-no">&nbsp;</span>
824
- <span class="cline-any cline-no">&nbsp;</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-yes">2</span>
828
- <span class="cline-any cline-no">&nbsp;</span>
829
- <span class="cline-any cline-no">&nbsp;</span>
830
- <span class="cline-any cline-neutral">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-yes">2</span>
833
- <span class="cline-any cline-no">&nbsp;</span>
834
- <span class="cline-any cline-no">&nbsp;</span>
835
- <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-neutral">&nbsp;</span>
837
- <span class="cline-any cline-yes">2</span>
838
- <span class="cline-any cline-no">&nbsp;</span>
839
- <span class="cline-any cline-no">&nbsp;</span>
840
- <span class="cline-any cline-no">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-yes">2</span>
844
- <span class="cline-any cline-no">&nbsp;</span>
845
- <span class="cline-any cline-no">&nbsp;</span>
846
- <span class="cline-any cline-no">&nbsp;</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-yes">2</span>
850
- <span class="cline-any cline-no">&nbsp;</span>
851
- <span class="cline-any cline-no">&nbsp;</span>
852
- <span class="cline-any cline-no">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-yes">2</span>
856
- <span class="cline-any cline-no">&nbsp;</span>
857
- <span class="cline-any cline-no">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-yes">2</span>
861
- <span class="cline-any cline-no">&nbsp;</span>
862
- <span class="cline-any cline-no">&nbsp;</span>
863
- <span class="cline-any cline-no">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-yes">2</span>
867
- <span class="cline-any cline-no">&nbsp;</span>
868
- <span class="cline-any cline-no">&nbsp;</span>
869
- <span class="cline-any cline-no">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-yes">2</span>
873
- <span class="cline-any cline-no">&nbsp;</span>
874
- <span class="cline-any cline-no">&nbsp;</span>
875
- <span class="cline-any cline-no">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-yes">2</span>
879
- <span class="cline-any cline-no">&nbsp;</span>
880
- <span class="cline-any cline-no">&nbsp;</span>
881
- <span class="cline-any cline-no">&nbsp;</span>
882
- <span class="cline-any cline-no">&nbsp;</span>
883
- <span class="cline-any cline-no">&nbsp;</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-yes">2</span>
887
- <span class="cline-any cline-no">&nbsp;</span>
888
- <span class="cline-any cline-no">&nbsp;</span>
889
- <span class="cline-any cline-no">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-yes">2</span>
893
- <span class="cline-any cline-no">&nbsp;</span>
894
- <span class="cline-any cline-no">&nbsp;</span>
895
- <span class="cline-any cline-no">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-yes">2</span>
899
- <span class="cline-any cline-no">&nbsp;</span>
900
- <span class="cline-any cline-no">&nbsp;</span>
901
- <span class="cline-any cline-no">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-yes">2</span>
905
- <span class="cline-any cline-no">&nbsp;</span>
906
- <span class="cline-any cline-no">&nbsp;</span>
907
- <span class="cline-any cline-no">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-yes">2</span>
911
- <span class="cline-any cline-no">&nbsp;</span>
912
- <span class="cline-any cline-no">&nbsp;</span>
913
- <span class="cline-any cline-no">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-yes">2</span>
917
- <span class="cline-any cline-no">&nbsp;</span>
918
- <span class="cline-any cline-no">&nbsp;</span>
919
- <span class="cline-any cline-no">&nbsp;</span>
920
- <span class="cline-any cline-neutral">&nbsp;</span>
921
- <span class="cline-any cline-no">&nbsp;</span>
922
- <span class="cline-any cline-no">&nbsp;</span>
923
- <span class="cline-any cline-no">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-no">&nbsp;</span>
926
- <span class="cline-any cline-no">&nbsp;</span>
927
- <span class="cline-any cline-no">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-no">&nbsp;</span>
930
- <span class="cline-any cline-no">&nbsp;</span>
931
- <span class="cline-any cline-no">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-yes">2</span>
935
- <span class="cline-any cline-no">&nbsp;</span>
936
- <span class="cline-any cline-no">&nbsp;</span>
937
- <span class="cline-any cline-no">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-no">&nbsp;</span>
940
- <span class="cline-any cline-no">&nbsp;</span>
941
- <span class="cline-any cline-no">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-yes">2</span>
945
- <span class="cline-any cline-no">&nbsp;</span>
946
- <span class="cline-any cline-no">&nbsp;</span>
947
- <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-no">&nbsp;</span>
949
- <span class="cline-any cline-no">&nbsp;</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-no">&nbsp;</span>
952
- <span class="cline-any cline-no">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-no">&nbsp;</span>
955
- <span class="cline-any cline-no">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-no">&nbsp;</span>
958
- <span class="cline-any cline-no">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-no">&nbsp;</span>
961
- <span class="cline-any cline-no">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-no">&nbsp;</span>
964
- <span class="cline-any cline-no">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-no">&nbsp;</span>
967
- <span class="cline-any cline-no">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-no">&nbsp;</span>
970
- <span class="cline-any cline-no">&nbsp;</span>
971
- <span class="cline-any cline-no">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-yes">2</span>
975
- <span class="cline-any cline-no">&nbsp;</span>
976
- <span class="cline-any cline-no">&nbsp;</span>
977
- <span class="cline-any cline-no">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-no">&nbsp;</span>
980
- <span class="cline-any cline-no">&nbsp;</span>
981
- <span class="cline-any cline-no">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-no">&nbsp;</span>
984
- <span class="cline-any cline-no">&nbsp;</span>
985
- <span class="cline-any cline-no">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-yes">2</span>
989
- <span class="cline-any cline-no">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-neutral">&nbsp;</span>
992
- <span class="cline-any cline-yes">2</span>
993
- <span class="cline-any cline-no">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-yes">2</span>
997
- <span class="cline-any cline-no">&nbsp;</span>
998
- <span class="cline-any cline-no">&nbsp;</span>
999
- <span class="cline-any cline-no">&nbsp;</span>
1000
- <span class="cline-any cline-no">&nbsp;</span>
1001
- <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-no">&nbsp;</span>
1003
- <span class="cline-any cline-no">&nbsp;</span>
1004
- <span class="cline-any cline-no">&nbsp;</span>
1005
- <span class="cline-any cline-no">&nbsp;</span>
1006
- <span class="cline-any cline-no">&nbsp;</span>
1007
- <span class="cline-any cline-neutral">&nbsp;</span>
1008
- <span class="cline-any cline-neutral">&nbsp;</span>
1009
- <span class="cline-any cline-yes">2</span>
1010
- <span class="cline-any cline-no">&nbsp;</span>
1011
- <span class="cline-any cline-no">&nbsp;</span>
1012
- <span class="cline-any cline-no">&nbsp;</span>
1013
- <span class="cline-any cline-no">&nbsp;</span>
1014
- <span class="cline-any cline-no">&nbsp;</span>
1015
- <span class="cline-any cline-no">&nbsp;</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-yes">2</span>
1019
- <span class="cline-any cline-no">&nbsp;</span>
1020
- <span class="cline-any cline-no">&nbsp;</span>
1021
- <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="fstat-no" title="function not covered" >function shouldMatchTokens(result, tokens) {</span>
1024
- <span class="cstat-no" title="statement not covered" > for (var index = 0; index &lt; result.length; index++) {</span>
1025
- <span class="cstat-no" title="statement not covered" > equals(result[index].name, tokens[index]);</span>
1026
- }
1027
- }
1028
- <span class="fstat-no" title="function not covered" >function shouldBeToken(result, name, text) {</span>
1029
- <span class="cstat-no" title="statement not covered" > equals(result.name, name);</span>
1030
- <span class="cstat-no" title="statement not covered" > equals(result.text, text);</span>
1031
- }
1032
- &nbsp;
1033
- describe('Tokenizer', function() {
1034
- if (!Handlebars.Parser) {
1035
- return;
1036
- }
1037
- &nbsp;
1038
- <span class="fstat-no" title="function not covered" > function tokenize(template) {</span>
1039
- <span class="cstat-no" title="statement not covered" > var parser = Handlebars.Parser,</span>
1040
- lexer = parser.lexer;
1041
- &nbsp;
1042
- <span class="cstat-no" title="statement not covered" > lexer.setInput(template);</span>
1043
- <span class="cstat-no" title="statement not covered" > var out = [],</span>
1044
- token;
1045
- &nbsp;
1046
- <span class="cstat-no" title="statement not covered" > while (token = lexer.lex()) {</span>
1047
- <span class="cstat-no" title="statement not covered" > var result = parser.terminals_[token] || token;</span>
1048
- <span class="cstat-no" title="statement not covered" > if (!result || result === 'EOF' || result === 'INVALID') {</span>
1049
- <span class="cstat-no" title="statement not covered" > break;</span>
1050
- }
1051
- <span class="cstat-no" title="statement not covered" > out.push({name: result, text: lexer.yytext});</span>
1052
- }
1053
- &nbsp;
1054
- <span class="cstat-no" title="statement not covered" > return out;</span>
1055
- }
1056
- &nbsp;
1057
- it('tokenizes a simple mustache as "OPEN ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1058
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo}}");</span>
1059
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE']);</span>
1060
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "foo");</span>
1061
- });
1062
- &nbsp;
1063
- it('supports unescaping with &amp;', <span class="fstat-no" title="function not covered" >function() {</span>
1064
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{&amp;bar}}");</span>
1065
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE']);</span>
1066
- &nbsp;
1067
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[0], "OPEN", "{{&amp;");</span>
1068
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "bar");</span>
1069
- });
1070
- &nbsp;
1071
- it('supports unescaping with {{{', <span class="fstat-no" title="function not covered" >function() {</span>
1072
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{{bar}}}");</span>
1073
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN_UNESCAPED', 'ID', 'CLOSE_UNESCAPED']);</span>
1074
- &nbsp;
1075
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "bar");</span>
1076
- });
1077
- &nbsp;
1078
- it('supports escaping delimiters', <span class="fstat-no" title="function not covered" >function() {</span>
1079
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo}} \\{{bar}} {{baz}}");</span>
1080
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);</span>
1081
- &nbsp;
1082
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "CONTENT", " ");</span>
1083
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[4], "CONTENT", "{{bar}} ");</span>
1084
- });
1085
- &nbsp;
1086
- it('supports escaping multiple delimiters', <span class="fstat-no" title="function not covered" >function() {</span>
1087
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo}} \\{{bar}} \\{{baz}}");</span>
1088
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'CONTENT', 'CONTENT']);</span>
1089
- &nbsp;
1090
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "CONTENT", " ");</span>
1091
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[4], "CONTENT", "{{bar}} ");</span>
1092
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[5], "CONTENT", "{{baz}}");</span>
1093
- });
1094
- &nbsp;
1095
- it('supports escaping a triple stash', <span class="fstat-no" title="function not covered" >function() {</span>
1096
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo}} \\{{{bar}}} {{baz}}");</span>
1097
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);</span>
1098
- &nbsp;
1099
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[4], "CONTENT", "{{{bar}}} ");</span>
1100
- });
1101
- &nbsp;
1102
- it('supports escaping escape character', <span class="fstat-no" title="function not covered" >function() {</span>
1103
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo}} \\\\{{bar}} {{baz}}");</span>
1104
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);</span>
1105
- &nbsp;
1106
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "CONTENT", " \\");</span>
1107
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[5], "ID", "bar");</span>
1108
- });
1109
- &nbsp;
1110
- it('supports escaping multiple escape characters', <span class="fstat-no" title="function not covered" >function() {</span>
1111
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo}} \\\\{{bar}} \\\\{{baz}}");</span>
1112
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);</span>
1113
- &nbsp;
1114
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "CONTENT", " \\");</span>
1115
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[5], "ID", "bar");</span>
1116
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[7], "CONTENT", " \\");</span>
1117
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[9], "ID", "baz");</span>
1118
- });
1119
- &nbsp;
1120
- it('supports escaped mustaches after escaped escape characters', <span class="fstat-no" title="function not covered" >function() {</span>
1121
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo}} \\\\{{bar}} \\{{baz}}");</span>
1122
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN', 'ID', 'CLOSE', 'CONTENT', 'CONTENT', 'CONTENT']);</span>
1123
- &nbsp;
1124
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "CONTENT", " \\");</span>
1125
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[4], "OPEN", "{{");</span>
1126
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[5], "ID", "bar");</span>
1127
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[7], "CONTENT", " ");</span>
1128
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[8], "CONTENT", "{{baz}}");</span>
1129
- });
1130
- &nbsp;
1131
- it('supports escaped escape characters after escaped mustaches', <span class="fstat-no" title="function not covered" >function() {</span>
1132
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo}} \\{{bar}} \\\\{{baz}}");</span>
1133
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'CONTENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);</span>
1134
- &nbsp;
1135
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[4], "CONTENT", "{{bar}} ");</span>
1136
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[5], "CONTENT", "\\");</span>
1137
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[6], "OPEN", "{{");</span>
1138
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[7], "ID", "baz");</span>
1139
- });
1140
- &nbsp;
1141
- it('supports escaped escape character on a triple stash', <span class="fstat-no" title="function not covered" >function() {</span>
1142
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo}} \\\\{{{bar}}} {{baz}}");</span>
1143
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN_UNESCAPED', 'ID', 'CLOSE_UNESCAPED', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);</span>
1144
- &nbsp;
1145
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "CONTENT", " \\");</span>
1146
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[5], "ID", "bar");</span>
1147
- });
1148
- &nbsp;
1149
- it('tokenizes a simple path', <span class="fstat-no" title="function not covered" >function() {</span>
1150
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo/bar}}");</span>
1151
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'CLOSE']);</span>
1152
- });
1153
- &nbsp;
1154
- it('allows dot notation', <span class="fstat-no" title="function not covered" >function() {</span>
1155
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo.bar}}");</span>
1156
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'CLOSE']);</span>
1157
- &nbsp;
1158
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(tokenize("{{foo.bar.baz}}"), ['OPEN', 'ID', 'SEP', 'ID', 'SEP', 'ID', 'CLOSE']);</span>
1159
- });
1160
- &nbsp;
1161
- it('allows path literals with []', <span class="fstat-no" title="function not covered" >function() {</span>
1162
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo.[bar]}}");</span>
1163
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'CLOSE']);</span>
1164
- });
1165
- &nbsp;
1166
- it('allows multiple path literals on a line with []', <span class="fstat-no" title="function not covered" >function() {</span>
1167
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo.[bar]}}{{foo.[baz]}}");</span>
1168
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'CLOSE', 'OPEN', 'ID', 'SEP', 'ID', 'CLOSE']);</span>
1169
- });
1170
- &nbsp;
1171
- it('tokenizes {{.}} as OPEN ID CLOSE', <span class="fstat-no" title="function not covered" >function() {</span>
1172
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{.}}");</span>
1173
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE']);</span>
1174
- });
1175
- &nbsp;
1176
- it('tokenizes a path as "OPEN (ID SEP)* ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1177
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{../foo/bar}}");</span>
1178
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'SEP', 'ID', 'CLOSE']);</span>
1179
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "..");</span>
1180
- });
1181
- &nbsp;
1182
- it('tokenizes a path with .. as a parent path', <span class="fstat-no" title="function not covered" >function() {</span>
1183
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{../foo.bar}}");</span>
1184
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'SEP', 'ID', 'CLOSE']);</span>
1185
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "..");</span>
1186
- });
1187
- &nbsp;
1188
- it('tokenizes a path with this/foo as OPEN ID SEP ID CLOSE', <span class="fstat-no" title="function not covered" >function() {</span>
1189
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{this/foo}}");</span>
1190
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'CLOSE']);</span>
1191
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "this");</span>
1192
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "ID", "foo");</span>
1193
- });
1194
- &nbsp;
1195
- it('tokenizes a simple mustache with spaces as "OPEN ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1196
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{ foo }}");</span>
1197
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE']);</span>
1198
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "foo");</span>
1199
- });
1200
- &nbsp;
1201
- it('tokenizes a simple mustache with line breaks as "OPEN ID ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1202
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{ foo \n bar }}");</span>
1203
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'CLOSE']);</span>
1204
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "foo");</span>
1205
- });
1206
- &nbsp;
1207
- it('tokenizes raw content as "CONTENT"', <span class="fstat-no" title="function not covered" >function() {</span>
1208
- <span class="cstat-no" title="statement not covered" > var result = tokenize("foo {{ bar }} baz");</span>
1209
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['CONTENT', 'OPEN', 'ID', 'CLOSE', 'CONTENT']);</span>
1210
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[0], "CONTENT", "foo ");</span>
1211
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[4], "CONTENT", " baz");</span>
1212
- });
1213
- &nbsp;
1214
- it('tokenizes a partial as "OPEN_PARTIAL ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1215
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{&gt; foo}}");</span>
1216
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN_PARTIAL', 'ID', 'CLOSE']);</span>
1217
- });
1218
- &nbsp;
1219
- it('tokenizes a partial with context as "OPEN_PARTIAL ID ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1220
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{&gt; foo bar }}");</span>
1221
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN_PARTIAL', 'ID', 'ID', 'CLOSE']);</span>
1222
- });
1223
- &nbsp;
1224
- it('tokenizes a partial without spaces as "OPEN_PARTIAL ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1225
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{&gt;foo}}");</span>
1226
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN_PARTIAL', 'ID', 'CLOSE']);</span>
1227
- });
1228
- &nbsp;
1229
- it('tokenizes a partial space at the }); as "OPEN_PARTIAL ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1230
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{&gt;foo }}");</span>
1231
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN_PARTIAL', 'ID', 'CLOSE']);</span>
1232
- });
1233
- &nbsp;
1234
- it('tokenizes a partial space at the }); as "OPEN_PARTIAL ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1235
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{&gt;foo/bar.baz }}");</span>
1236
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN_PARTIAL', 'ID', 'SEP', 'ID', 'SEP', 'ID', 'CLOSE']);</span>
1237
- });
1238
- &nbsp;
1239
- it('tokenizes a comment as "COMMENT"', <span class="fstat-no" title="function not covered" >function() {</span>
1240
- <span class="cstat-no" title="statement not covered" > var result = tokenize("foo {{! this is a comment }} bar {{ baz }}");</span>
1241
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['CONTENT', 'COMMENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);</span>
1242
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "COMMENT", " this is a comment ");</span>
1243
- });
1244
- &nbsp;
1245
- it('tokenizes a block comment as "COMMENT"', <span class="fstat-no" title="function not covered" >function() {</span>
1246
- <span class="cstat-no" title="statement not covered" > var result = tokenize("foo {{!-- this is a {{comment}} --}} bar {{ baz }}");</span>
1247
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['CONTENT', 'COMMENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);</span>
1248
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "COMMENT", " this is a {{comment}} ");</span>
1249
- });
1250
- &nbsp;
1251
- it('tokenizes a block comment with whitespace as "COMMENT"', <span class="fstat-no" title="function not covered" >function() {</span>
1252
- <span class="cstat-no" title="statement not covered" > var result = tokenize("foo {{!-- this is a\n{{comment}}\n--}} bar {{ baz }}");</span>
1253
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['CONTENT', 'COMMENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);</span>
1254
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "COMMENT", " this is a\n{{comment}}\n");</span>
1255
- });
1256
- &nbsp;
1257
- it('tokenizes open and closing blocks as OPEN_BLOCK, ID, CLOSE ..., OPEN_ENDBLOCK ID CLOSE', <span class="fstat-no" title="function not covered" >function() {</span>
1258
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{#foo}}content{{/foo}}");</span>
1259
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN_BLOCK', 'ID', 'CLOSE', 'CONTENT', 'OPEN_ENDBLOCK', 'ID', 'CLOSE']);</span>
1260
- });
1261
- &nbsp;
1262
- it('tokenizes inverse sections as "OPEN_INVERSE CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1263
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(tokenize("{{^}}"), ['OPEN_INVERSE', 'CLOSE']);</span>
1264
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(tokenize("{{else}}"), ['OPEN_INVERSE', 'CLOSE']);</span>
1265
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(tokenize("{{ else }}"), ['OPEN_INVERSE', 'CLOSE']);</span>
1266
- });
1267
- &nbsp;
1268
- it('tokenizes inverse sections with ID as "OPEN_INVERSE ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1269
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{^foo}}");</span>
1270
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN_INVERSE', 'ID', 'CLOSE']);</span>
1271
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "foo");</span>
1272
- });
1273
- &nbsp;
1274
- it('tokenizes inverse sections with ID and spaces as "OPEN_INVERSE ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1275
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{^ foo }}");</span>
1276
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN_INVERSE', 'ID', 'CLOSE']);</span>
1277
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "foo");</span>
1278
- });
1279
- &nbsp;
1280
- it('tokenizes mustaches with params as "OPEN ID ID ID CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1281
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{ foo bar baz }}");</span>
1282
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'CLOSE']);</span>
1283
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "foo");</span>
1284
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "ID", "bar");</span>
1285
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "ID", "baz");</span>
1286
- });
1287
- &nbsp;
1288
- it('tokenizes mustaches with String params as "OPEN ID ID STRING CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1289
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{ foo bar \"baz\" }}");</span>
1290
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'STRING', 'CLOSE']);</span>
1291
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "STRING", "baz");</span>
1292
- });
1293
- &nbsp;
1294
- it('tokenizes mustaches with String params using single quotes as "OPEN ID ID STRING CLOSE"', <span class="fstat-no" title="function not covered" >function() {</span>
1295
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{ foo bar \'baz\' }}");</span>
1296
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'STRING', 'CLOSE']);</span>
1297
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "STRING", "baz");</span>
1298
- });
1299
- &nbsp;
1300
- it('tokenizes String params with spaces inside as "STRING"', <span class="fstat-no" title="function not covered" >function() {</span>
1301
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{ foo bar \"baz bat\" }}");</span>
1302
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'STRING', 'CLOSE']);</span>
1303
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "STRING", "baz bat");</span>
1304
- });
1305
- &nbsp;
1306
- it('tokenizes String params with escapes quotes as STRING', <span class="fstat-no" title="function not covered" >function() {</span>
1307
- <span class="cstat-no" title="statement not covered" > var result = tokenize('{{ foo "bar\\"baz" }}');</span>
1308
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'STRING', 'CLOSE']);</span>
1309
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "STRING", 'bar"baz');</span>
1310
- });
1311
- &nbsp;
1312
- it('tokenizes String params using single quotes with escapes quotes as STRING', <span class="fstat-no" title="function not covered" >function() {</span>
1313
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{ foo 'bar\\'baz' }}");</span>
1314
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'STRING', 'CLOSE']);</span>
1315
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "STRING", "bar'baz");</span>
1316
- });
1317
- &nbsp;
1318
- it('tokenizes numbers', <span class="fstat-no" title="function not covered" >function() {</span>
1319
- <span class="cstat-no" title="statement not covered" > var result = tokenize('{{ foo 1 }}');</span>
1320
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'NUMBER', 'CLOSE']);</span>
1321
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "NUMBER", "1");</span>
1322
- &nbsp;
1323
- <span class="cstat-no" title="statement not covered" > result = tokenize('{{ foo 1.1 }}');</span>
1324
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'NUMBER', 'CLOSE']);</span>
1325
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "NUMBER", "1.1");</span>
1326
- &nbsp;
1327
- <span class="cstat-no" title="statement not covered" > result = tokenize('{{ foo -1 }}');</span>
1328
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'NUMBER', 'CLOSE']);</span>
1329
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "NUMBER", "-1");</span>
1330
- &nbsp;
1331
- <span class="cstat-no" title="statement not covered" > result = tokenize('{{ foo -1.1 }}');</span>
1332
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'NUMBER', 'CLOSE']);</span>
1333
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "NUMBER", "-1.1");</span>
1334
- });
1335
- &nbsp;
1336
- it('tokenizes booleans', <span class="fstat-no" title="function not covered" >function() {</span>
1337
- <span class="cstat-no" title="statement not covered" > var result = tokenize('{{ foo true }}');</span>
1338
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'BOOLEAN', 'CLOSE']);</span>
1339
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "BOOLEAN", "true");</span>
1340
- &nbsp;
1341
- <span class="cstat-no" title="statement not covered" > result = tokenize('{{ foo false }}');</span>
1342
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'BOOLEAN', 'CLOSE']);</span>
1343
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "BOOLEAN", "false");</span>
1344
- });
1345
- &nbsp;
1346
- it('tokenizes hash arguments', <span class="fstat-no" title="function not covered" >function() {</span>
1347
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{ foo bar=baz }}");</span>
1348
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'EQUALS', 'ID', 'CLOSE']);</span>
1349
- &nbsp;
1350
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{ foo bar baz=bat }}");</span>
1351
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'ID', 'CLOSE']);</span>
1352
- &nbsp;
1353
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{ foo bar baz=1 }}");</span>
1354
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'NUMBER', 'CLOSE']);</span>
1355
- &nbsp;
1356
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{ foo bar baz=true }}");</span>
1357
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'BOOLEAN', 'CLOSE']);</span>
1358
- &nbsp;
1359
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{ foo bar baz=false }}");</span>
1360
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'BOOLEAN', 'CLOSE']);</span>
1361
- &nbsp;
1362
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{ foo bar\n baz=bat }}");</span>
1363
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'ID', 'CLOSE']);</span>
1364
- &nbsp;
1365
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{ foo bar baz=\"bat\" }}");</span>
1366
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'STRING', 'CLOSE']);</span>
1367
- &nbsp;
1368
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{ foo bar baz=\"bat\" bam=wot }}");</span>
1369
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'STRING', 'ID', 'EQUALS', 'ID', 'CLOSE']);</span>
1370
- &nbsp;
1371
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{foo omg bar=baz bat=\"bam\"}}");</span>
1372
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'ID', 'ID', 'EQUALS', 'STRING', 'CLOSE']);</span>
1373
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "ID", "omg");</span>
1374
- });
1375
- &nbsp;
1376
- it('tokenizes special @ identifiers', <span class="fstat-no" title="function not covered" >function() {</span>
1377
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{ @foo }}");</span>
1378
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'DATA', 'ID', 'CLOSE']);</span>
1379
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[2], "ID", "foo");</span>
1380
- &nbsp;
1381
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{ foo @bar }}");</span>
1382
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'DATA', 'ID', 'CLOSE']);</span>
1383
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "ID", "bar");</span>
1384
- &nbsp;
1385
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{ foo bar=@baz }}");</span>
1386
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'EQUALS', 'DATA', 'ID', 'CLOSE']);</span>
1387
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[5], "ID", "baz");</span>
1388
- });
1389
- &nbsp;
1390
- it('does not time out in a mustache with a single } followed by EOF', <span class="fstat-no" title="function not covered" >function() {</span>
1391
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(tokenize("{{foo}"), ['OPEN', 'ID']);</span>
1392
- });
1393
- &nbsp;
1394
- it('does not time out in a mustache when invalid ID characters are used', <span class="fstat-no" title="function not covered" >function() {</span>
1395
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(tokenize("{{foo &amp; }}"), ['OPEN', 'ID']);</span>
1396
- });
1397
- &nbsp;
1398
- it('tokenizes subexpressions', <span class="fstat-no" title="function not covered" >function() {</span>
1399
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo (bar)}}");</span>
1400
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'OPEN_SEXPR', 'ID', 'CLOSE_SEXPR', 'CLOSE']);</span>
1401
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "foo");</span>
1402
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "ID", "bar");</span>
1403
- &nbsp;
1404
- <span class="cstat-no" title="statement not covered" > result = tokenize("{{foo (a-x b-y)}}");</span>
1405
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'OPEN_SEXPR', 'ID', 'ID', 'CLOSE_SEXPR', 'CLOSE']);</span>
1406
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[1], "ID", "foo");</span>
1407
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "ID", "a-x");</span>
1408
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[4], "ID", "b-y");</span>
1409
- });
1410
- &nbsp;
1411
- it('tokenizes nested subexpressions', <span class="fstat-no" title="function not covered" >function() {</span>
1412
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo (bar (lol rofl)) (baz)}}");</span>
1413
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'OPEN_SEXPR', 'ID', 'OPEN_SEXPR', 'ID', 'ID', 'CLOSE_SEXPR', 'CLOSE_SEXPR', 'OPEN_SEXPR', 'ID', 'CLOSE_SEXPR', 'CLOSE']);</span>
1414
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[3], "ID", "bar");</span>
1415
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[5], "ID", "lol");</span>
1416
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[6], "ID", "rofl");</span>
1417
- <span class="cstat-no" title="statement not covered" > shouldBeToken(result[10], "ID", "baz");</span>
1418
- });
1419
- &nbsp;
1420
- it('tokenizes nested subexpressions: literals', <span class="fstat-no" title="function not covered" >function() {</span>
1421
- <span class="cstat-no" title="statement not covered" > var result = tokenize("{{foo (bar (lol true) false) (baz 1) (blah 'b') (blorg \"c\")}}");</span>
1422
- <span class="cstat-no" title="statement not covered" > shouldMatchTokens(result, ['OPEN', 'ID', 'OPEN_SEXPR', 'ID', 'OPEN_SEXPR', 'ID', 'BOOLEAN', 'CLOSE_SEXPR', 'BOOLEAN', 'CLOSE_SEXPR', 'OPEN_SEXPR', 'ID', 'NUMBER', 'CLOSE_SEXPR', 'OPEN_SEXPR', 'ID', 'STRING', 'CLOSE_SEXPR', 'OPEN_SEXPR', 'ID', 'STRING', 'CLOSE_SEXPR', 'CLOSE']);</span>
1423
- });
1424
- });
1425
- &nbsp;</pre></td></tr>
1426
- </table></pre>
1427
-
1428
- </div>
1429
- <div class="footer">
1430
- <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Aug 13 2014 23:50:21 GMT-0500 (CDT)</div>
1431
- </div>
1432
-
1433
- <script src="../prettify.js"></script>
1434
-
1435
- <script src="https://yui-s.yahooapis.com/3.6.0/build/yui/yui-min.js"></script>
1436
- <script>
1437
-
1438
- YUI().use('datatable', function (Y) {
1439
-
1440
- var formatters = {
1441
- pct: function (o) {
1442
- o.className += o.record.get('classes')[o.column.key];
1443
- try {
1444
- return o.value.toFixed(2) + '%';
1445
- } catch (ex) { return o.value + '%'; }
1446
- },
1447
- html: function (o) {
1448
- o.className += o.record.get('classes')[o.column.key];
1449
- return o.record.get(o.column.key + '_html');
1450
- }
1451
- },
1452
- defaultFormatter = function (o) {
1453
- o.className += o.record.get('classes')[o.column.key];
1454
- return o.value;
1455
- };
1456
-
1457
- function getColumns(theadNode) {
1458
- var colNodes = theadNode.all('tr th'),
1459
- cols = [],
1460
- col;
1461
- colNodes.each(function (colNode) {
1462
- col = {
1463
- key: colNode.getAttribute('data-col'),
1464
- label: colNode.get('innerHTML') || ' ',
1465
- sortable: !colNode.getAttribute('data-nosort'),
1466
- className: colNode.getAttribute('class'),
1467
- type: colNode.getAttribute('data-type'),
1468
- allowHTML: colNode.getAttribute('data-html') === 'true' || colNode.getAttribute('data-fmt') === 'html'
1469
- };
1470
- col.formatter = formatters[colNode.getAttribute('data-fmt')] || defaultFormatter;
1471
- cols.push(col);
1472
- });
1473
- return cols;
1474
- }
1475
-
1476
- function getRowData(trNode, cols) {
1477
- var tdNodes = trNode.all('td'),
1478
- i,
1479
- row = { classes: {} },
1480
- node,
1481
- name;
1482
- for (i = 0; i < cols.length; i += 1) {
1483
- name = cols[i].key;
1484
- node = tdNodes.item(i);
1485
- row[name] = node.getAttribute('data-value') || node.get('innerHTML');
1486
- row[name + '_html'] = node.get('innerHTML');
1487
- row.classes[name] = node.getAttribute('class');
1488
- //Y.log('Name: ' + name + '; Value: ' + row[name]);
1489
- if (cols[i].type === 'number') { row[name] = row[name] * 1; }
1490
- }
1491
- //Y.log(row);
1492
- return row;
1493
- }
1494
-
1495
- function getData(tbodyNode, cols) {
1496
- var data = [];
1497
- tbodyNode.all('tr').each(function (trNode) {
1498
- data.push(getRowData(trNode, cols));
1499
- });
1500
- return data;
1501
- }
1502
-
1503
- function replaceTable(node) {
1504
- if (!node) { return; }
1505
- var cols = getColumns(node.one('thead')),
1506
- data = getData(node.one('tbody'), cols),
1507
- table,
1508
- parent = node.get('parentNode');
1509
-
1510
- table = new Y.DataTable({
1511
- columns: cols,
1512
- data: data,
1513
- sortBy: 'file'
1514
- });
1515
- parent.set('innerHTML', '');
1516
- table.render(parent);
1517
- }
1518
-
1519
- Y.on('domready', function () {
1520
- replaceTable(Y.one('div.coverage-summary table'));
1521
- if (typeof prettyPrint === 'function') {
1522
- prettyPrint();
1523
- }
1524
- });
1525
- });
1526
- </script>
1527
- </body>
1528
- </html>