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,892 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <title>Code coverage report for spec/parser.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/parser.js</span></h1>
200
- <h2>
201
-
202
- Statements: <span class="metric">37.5% <small>(39 / 104)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
203
-
204
-
205
- Branches: <span class="metric">100% <small>(2 / 2)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
206
-
207
-
208
- Functions: <span class="metric">4.44% <small>(2 / 45)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
209
-
210
-
211
- Lines: <span class="metric">37.5% <small>(39 / 104)</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; parser.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</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-yes">3</span>
411
- <span class="cline-any cline-yes">3</span>
412
- <span class="cline-any cline-yes">2</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-yes">1</span>
416
- <span class="cline-any cline-no">&nbsp;</span>
417
- <span class="cline-any cline-no">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-yes">1</span>
421
- <span class="cline-any cline-no">&nbsp;</span>
422
- <span class="cline-any cline-no">&nbsp;</span>
423
- <span class="cline-any cline-no">&nbsp;</span>
424
- <span class="cline-any cline-no">&nbsp;</span>
425
- <span class="cline-any cline-no">&nbsp;</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-yes">1</span>
429
- <span class="cline-any cline-no">&nbsp;</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-yes">1</span>
433
- <span class="cline-any cline-no">&nbsp;</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-yes">1</span>
437
- <span class="cline-any cline-no">&nbsp;</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-yes">1</span>
441
- <span class="cline-any cline-no">&nbsp;</span>
442
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-yes">1</span>
445
- <span class="cline-any cline-no">&nbsp;</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-yes">1</span>
449
- <span class="cline-any cline-no">&nbsp;</span>
450
- <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-yes">1</span>
453
- <span class="cline-any cline-no">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-yes">1</span>
457
- <span class="cline-any cline-no">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-yes">1</span>
461
- <span class="cline-any cline-no">&nbsp;</span>
462
- <span class="cline-any cline-no">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-yes">1</span>
466
- <span class="cline-any cline-no">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-yes">1</span>
470
- <span class="cline-any cline-no">&nbsp;</span>
471
- <span class="cline-any cline-no">&nbsp;</span>
472
- <span class="cline-any cline-no">&nbsp;</span>
473
- <span class="cline-any cline-no">&nbsp;</span>
474
- <span class="cline-any cline-no">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-no">&nbsp;</span>
477
- <span class="cline-any cline-no">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-no">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-no">&nbsp;</span>
482
- <span class="cline-any cline-no">&nbsp;</span>
483
- <span class="cline-any cline-no">&nbsp;</span>
484
- <span class="cline-any cline-no">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-yes">1</span>
488
- <span class="cline-any cline-no">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-yes">1</span>
492
- <span class="cline-any cline-no">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-yes">1</span>
496
- <span class="cline-any cline-no">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-yes">1</span>
500
- <span class="cline-any cline-no">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-yes">1</span>
504
- <span class="cline-any cline-no">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-yes">1</span>
508
- <span class="cline-any cline-no">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-yes">1</span>
512
- <span class="cline-any cline-no">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-yes">1</span>
516
- <span class="cline-any cline-no">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-yes">1</span>
520
- <span class="cline-any cline-no">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-yes">1</span>
524
- <span class="cline-any cline-no">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-yes">1</span>
528
- <span class="cline-any cline-no">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-yes">1</span>
532
- <span class="cline-any cline-no">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-yes">1</span>
536
- <span class="cline-any cline-no">&nbsp;</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-yes">1</span>
540
- <span class="cline-any cline-no">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-yes">1</span>
544
- <span class="cline-any cline-no">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-yes">1</span>
548
- <span class="cline-any cline-no">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-yes">1</span>
552
- <span class="cline-any cline-no">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-yes">1</span>
556
- <span class="cline-any cline-no">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-yes">1</span>
560
- <span class="cline-any cline-no">&nbsp;</span>
561
- <span class="cline-any cline-no">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-no">&nbsp;</span>
564
- <span class="cline-any cline-no">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-no">&nbsp;</span>
567
- <span class="cline-any cline-no">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-no">&nbsp;</span>
570
- <span class="cline-any cline-no">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-no">&nbsp;</span>
574
- <span class="cline-any cline-no">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-yes">1</span>
579
- <span class="cline-any cline-no">&nbsp;</span>
580
- <span class="cline-any cline-no">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-no">&nbsp;</span>
583
- <span class="cline-any cline-no">&nbsp;</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-yes">1</span>
588
- <span class="cline-any cline-no">&nbsp;</span>
589
- <span class="cline-any cline-no">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-yes">1</span>
594
- <span class="cline-any cline-yes">1</span>
595
- <span class="cline-any cline-no">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*global Handlebars */
600
- describe('parser', function() {
601
- if (!Handlebars.print) {
602
- return;
603
- }
604
- &nbsp;
605
- <span class="fstat-no" title="function not covered" > function ast_for(template) {</span>
606
- <span class="cstat-no" title="statement not covered" > var ast = Handlebars.parse(template);</span>
607
- <span class="cstat-no" title="statement not covered" > return Handlebars.print(ast);</span>
608
- }
609
- &nbsp;
610
- it('parses simple mustaches', <span class="fstat-no" title="function not covered" >function() {</span>
611
- <span class="cstat-no" title="statement not covered" > equals(ast_for('{{foo}}'), "{{ ID:foo [] }}\n");</span>
612
- <span class="cstat-no" title="statement not covered" > equals(ast_for('{{foo?}}'), "{{ ID:foo? [] }}\n");</span>
613
- <span class="cstat-no" title="statement not covered" > equals(ast_for('{{foo_}}'), "{{ ID:foo_ [] }}\n");</span>
614
- <span class="cstat-no" title="statement not covered" > equals(ast_for('{{foo-}}'), "{{ ID:foo- [] }}\n");</span>
615
- <span class="cstat-no" title="statement not covered" > equals(ast_for('{{foo:}}'), "{{ ID:foo: [] }}\n");</span>
616
- });
617
- &nbsp;
618
- it('parses simple mustaches with data', <span class="fstat-no" title="function not covered" >function() {</span>
619
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{@foo}}"), "{{ @ID:foo [] }}\n");</span>
620
- });
621
- &nbsp;
622
- it('parses simple mustaches with data paths', <span class="fstat-no" title="function not covered" >function() {</span>
623
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{@../foo}}"), "{{ @ID:foo [] }}\n");</span>
624
- });
625
- &nbsp;
626
- it('parses mustaches with paths', <span class="fstat-no" title="function not covered" >function() {</span>
627
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo/bar}}"), "{{ PATH:foo/bar [] }}\n");</span>
628
- });
629
- &nbsp;
630
- it('parses mustaches with this/foo', <span class="fstat-no" title="function not covered" >function() {</span>
631
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{this/foo}}"), "{{ ID:foo [] }}\n");</span>
632
- });
633
- &nbsp;
634
- it('parses mustaches with - in a path', <span class="fstat-no" title="function not covered" >function() {</span>
635
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo-bar}}"), "{{ ID:foo-bar [] }}\n");</span>
636
- });
637
- &nbsp;
638
- it('parses mustaches with parameters', <span class="fstat-no" title="function not covered" >function() {</span>
639
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo bar}}"), "{{ ID:foo [ID:bar] }}\n");</span>
640
- });
641
- &nbsp;
642
- it('parses mustaches with string parameters', <span class="fstat-no" title="function not covered" >function() {</span>
643
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo bar \"baz\" }}"), '{{ ID:foo [ID:bar, "baz"] }}\n');</span>
644
- });
645
- &nbsp;
646
- it('parses mustaches with NUMBER parameters', <span class="fstat-no" title="function not covered" >function() {</span>
647
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo 1}}"), "{{ ID:foo [NUMBER{1}] }}\n");</span>
648
- });
649
- &nbsp;
650
- it('parses mustaches with BOOLEAN parameters', <span class="fstat-no" title="function not covered" >function() {</span>
651
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo true}}"), "{{ ID:foo [BOOLEAN{true}] }}\n");</span>
652
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo false}}"), "{{ ID:foo [BOOLEAN{false}] }}\n");</span>
653
- });
654
- &nbsp;
655
- it('parses mutaches with DATA parameters', <span class="fstat-no" title="function not covered" >function() {</span>
656
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo @bar}}"), "{{ ID:foo [@ID:bar] }}\n");</span>
657
- });
658
- &nbsp;
659
- it('parses mustaches with hash arguments', <span class="fstat-no" title="function not covered" >function() {</span>
660
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo bar=baz}}"), "{{ ID:foo [] HASH{bar=ID:baz} }}\n");</span>
661
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo bar=1}}"), "{{ ID:foo [] HASH{bar=NUMBER{1}} }}\n");</span>
662
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo bar=true}}"), "{{ ID:foo [] HASH{bar=BOOLEAN{true}} }}\n");</span>
663
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo bar=false}}"), "{{ ID:foo [] HASH{bar=BOOLEAN{false}} }}\n");</span>
664
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo bar=@baz}}"), "{{ ID:foo [] HASH{bar=@ID:baz} }}\n");</span>
665
- &nbsp;
666
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo bar=baz bat=bam}}"), "{{ ID:foo [] HASH{bar=ID:baz, bat=ID:bam} }}\n");</span>
667
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo bar=baz bat=\"bam\"}}"), '{{ ID:foo [] HASH{bar=ID:baz, bat="bam"} }}\n');</span>
668
- &nbsp;
669
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo bat='bam'}}"), '{{ ID:foo [] HASH{bat="bam"} }}\n');</span>
670
- &nbsp;
671
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo omg bar=baz bat=\"bam\"}}"), '{{ ID:foo [ID:omg] HASH{bar=ID:baz, bat="bam"} }}\n');</span>
672
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo omg bar=baz bat=\"bam\" baz=1}}"), '{{ ID:foo [ID:omg] HASH{bar=ID:baz, bat="bam", baz=NUMBER{1}} }}\n');</span>
673
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo omg bar=baz bat=\"bam\" baz=true}}"), '{{ ID:foo [ID:omg] HASH{bar=ID:baz, bat="bam", baz=BOOLEAN{true}} }}\n');</span>
674
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{foo omg bar=baz bat=\"bam\" baz=false}}"), '{{ ID:foo [ID:omg] HASH{bar=ID:baz, bat="bam", baz=BOOLEAN{false}} }}\n');</span>
675
- });
676
- &nbsp;
677
- it('parses contents followed by a mustache', <span class="fstat-no" title="function not covered" >function() {</span>
678
- <span class="cstat-no" title="statement not covered" > equals(ast_for("foo bar {{baz}}"), "CONTENT[ \'foo bar \' ]\n{{ ID:baz [] }}\n");</span>
679
- });
680
- &nbsp;
681
- it('parses a partial', <span class="fstat-no" title="function not covered" >function() {</span>
682
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{&gt; foo }}"), "{{&gt; PARTIAL:foo }}\n");</span>
683
- });
684
- &nbsp;
685
- it('parses a partial with context', <span class="fstat-no" title="function not covered" >function() {</span>
686
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{&gt; foo bar}}"), "{{&gt; PARTIAL:foo ID:bar }}\n");</span>
687
- });
688
- &nbsp;
689
- it('parses a partial with hash', <span class="fstat-no" title="function not covered" >function() {</span>
690
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{&gt; foo bar=bat}}"), "{{&gt; PARTIAL:foo HASH{bar=ID:bat} }}\n");</span>
691
- });
692
- &nbsp;
693
- it('parses a partial with context and hash', <span class="fstat-no" title="function not covered" >function() {</span>
694
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{&gt; foo bar bat=baz}}"), "{{&gt; PARTIAL:foo ID:bar HASH{bat=ID:baz} }}\n");</span>
695
- });
696
- &nbsp;
697
- it('parses a partial with a complex name', <span class="fstat-no" title="function not covered" >function() {</span>
698
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{&gt; shared/partial?.bar}}"), "{{&gt; PARTIAL:shared/partial?.bar }}\n");</span>
699
- });
700
- &nbsp;
701
- it('parses a comment', <span class="fstat-no" title="function not covered" >function() {</span>
702
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{! this is a comment }}"), "{{! ' this is a comment ' }}\n");</span>
703
- });
704
- &nbsp;
705
- it('parses a multi-line comment', <span class="fstat-no" title="function not covered" >function() {</span>
706
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{!\nthis is a multi-line comment\n}}"), "{{! \'\nthis is a multi-line comment\n\' }}\n");</span>
707
- });
708
- &nbsp;
709
- it('parses an inverse section', <span class="fstat-no" title="function not covered" >function() {</span>
710
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{#foo}} bar {{^}} baz {{/foo}}"), "BLOCK:\n {{ ID:foo [] }}\n PROGRAM:\n CONTENT[ ' bar ' ]\n {{^}}\n CONTENT[ ' baz ' ]\n");</span>
711
- });
712
- &nbsp;
713
- it('parses an inverse (else-style) section', <span class="fstat-no" title="function not covered" >function() {</span>
714
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{#foo}} bar {{else}} baz {{/foo}}"), "BLOCK:\n {{ ID:foo [] }}\n PROGRAM:\n CONTENT[ ' bar ' ]\n {{^}}\n CONTENT[ ' baz ' ]\n");</span>
715
- });
716
- &nbsp;
717
- it('parses empty blocks', <span class="fstat-no" title="function not covered" >function() {</span>
718
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{#foo}}{{/foo}}"), "BLOCK:\n {{ ID:foo [] }}\n PROGRAM:\n");</span>
719
- });
720
- &nbsp;
721
- it('parses empty blocks with empty inverse section', <span class="fstat-no" title="function not covered" >function() {</span>
722
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{#foo}}{{^}}{{/foo}}"), "BLOCK:\n {{ ID:foo [] }}\n PROGRAM:\n");</span>
723
- });
724
- &nbsp;
725
- it('parses empty blocks with empty inverse (else-style) section', <span class="fstat-no" title="function not covered" >function() {</span>
726
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{#foo}}{{else}}{{/foo}}"), "BLOCK:\n {{ ID:foo [] }}\n PROGRAM:\n");</span>
727
- });
728
- &nbsp;
729
- it('parses non-empty blocks with empty inverse section', <span class="fstat-no" title="function not covered" >function() {</span>
730
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{#foo}} bar {{^}}{{/foo}}"), "BLOCK:\n {{ ID:foo [] }}\n PROGRAM:\n CONTENT[ ' bar ' ]\n {{^}}\n");</span>
731
- });
732
- &nbsp;
733
- it('parses non-empty blocks with empty inverse (else-style) section', <span class="fstat-no" title="function not covered" >function() {</span>
734
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{#foo}} bar {{else}}{{/foo}}"), "BLOCK:\n {{ ID:foo [] }}\n PROGRAM:\n CONTENT[ ' bar ' ]\n {{^}}\n");</span>
735
- });
736
- &nbsp;
737
- it('parses empty blocks with non-empty inverse section', <span class="fstat-no" title="function not covered" >function() {</span>
738
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{#foo}}{{^}} bar {{/foo}}"), "BLOCK:\n {{ ID:foo [] }}\n PROGRAM:\n {{^}}\n CONTENT[ ' bar ' ]\n");</span>
739
- });
740
- &nbsp;
741
- it('parses empty blocks with non-empty inverse (else-style) section', <span class="fstat-no" title="function not covered" >function() {</span>
742
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{#foo}}{{else}} bar {{/foo}}"), "BLOCK:\n {{ ID:foo [] }}\n PROGRAM:\n {{^}}\n CONTENT[ ' bar ' ]\n");</span>
743
- });
744
- &nbsp;
745
- it('parses a standalone inverse section', <span class="fstat-no" title="function not covered" >function() {</span>
746
- <span class="cstat-no" title="statement not covered" > equals(ast_for("{{^foo}}bar{{/foo}}"), "BLOCK:\n {{ ID:foo [] }}\n {{^}}\n CONTENT[ 'bar' ]\n");</span>
747
- });
748
- &nbsp;
749
- it("raises if there's a Parse error", <span class="fstat-no" title="function not covered" >function() {</span>
750
- <span class="cstat-no" title="statement not covered" > shouldThrow(<span class="fstat-no" title="function not covered" >function() {</span></span>
751
- <span class="cstat-no" title="statement not covered" > ast_for("foo{{^}}bar");</span>
752
- }, Error, /Parse error on line 1/);
753
- <span class="cstat-no" title="statement not covered" > shouldThrow(<span class="fstat-no" title="function not covered" >function() {</span></span>
754
- <span class="cstat-no" title="statement not covered" > ast_for("{{foo}");</span>
755
- }, Error, /Parse error on line 1/);
756
- <span class="cstat-no" title="statement not covered" > shouldThrow(<span class="fstat-no" title="function not covered" >function() {</span></span>
757
- <span class="cstat-no" title="statement not covered" > ast_for("{{foo &amp;}}");</span>
758
- }, Error, /Parse error on line 1/);
759
- <span class="cstat-no" title="statement not covered" > shouldThrow(<span class="fstat-no" title="function not covered" >function() {</span></span>
760
- <span class="cstat-no" title="statement not covered" > ast_for("{{#goodbyes}}{{/hellos}}");</span>
761
- }, Error, /goodbyes doesn't match hellos/);
762
- &nbsp;
763
- <span class="cstat-no" title="statement not covered" > shouldThrow(<span class="fstat-no" title="function not covered" >function() {</span></span>
764
- <span class="cstat-no" title="statement not covered" > ast_for("{{{{goodbyes}}}} {{{{/hellos}}}}");</span>
765
- }, Error, /goodbyes doesn't match hellos/);
766
- });
767
- &nbsp;
768
- it('knows how to report the correct line number in errors', <span class="fstat-no" title="function not covered" >function() {</span>
769
- <span class="cstat-no" title="statement not covered" > shouldThrow(<span class="fstat-no" title="function not covered" >function() {</span></span>
770
- <span class="cstat-no" title="statement not covered" > ast_for("hello\nmy\n{{foo}");</span>
771
- }, Error, /Parse error on line 3/);
772
- <span class="cstat-no" title="statement not covered" > shouldThrow(<span class="fstat-no" title="function not covered" >function() {</span></span>
773
- <span class="cstat-no" title="statement not covered" > ast_for("hello\n\nmy\n\n{{foo}");</span>
774
- }, Error, /Parse error on line 5/);
775
- });
776
- &nbsp;
777
- it('knows how to report the correct line number in errors when the first character is a newline', <span class="fstat-no" title="function not covered" >function() {</span>
778
- <span class="cstat-no" title="statement not covered" > shouldThrow(<span class="fstat-no" title="function not covered" >function() {</span></span>
779
- <span class="cstat-no" title="statement not covered" > ast_for("\n\nhello\n\nmy\n\n{{foo}");</span>
780
- }, Error, /Parse error on line 7/);
781
- });
782
- &nbsp;
783
- describe('externally compiled AST', function() {
784
- it('can pass through an already-compiled AST', <span class="fstat-no" title="function not covered" >function() {</span>
785
- <span class="cstat-no" title="statement not covered" > equals(ast_for(new Handlebars.AST.ProgramNode(false, [ new Handlebars.AST.ContentNode("Hello")])), "CONTENT[ \'Hello\' ]\n");</span>
786
- });
787
- });
788
- });
789
- &nbsp;</pre></td></tr>
790
- </table></pre>
791
-
792
- </div>
793
- <div class="footer">
794
- <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>
795
- </div>
796
-
797
- <script src="../prettify.js"></script>
798
-
799
- <script src="https://yui-s.yahooapis.com/3.6.0/build/yui/yui-min.js"></script>
800
- <script>
801
-
802
- YUI().use('datatable', function (Y) {
803
-
804
- var formatters = {
805
- pct: function (o) {
806
- o.className += o.record.get('classes')[o.column.key];
807
- try {
808
- return o.value.toFixed(2) + '%';
809
- } catch (ex) { return o.value + '%'; }
810
- },
811
- html: function (o) {
812
- o.className += o.record.get('classes')[o.column.key];
813
- return o.record.get(o.column.key + '_html');
814
- }
815
- },
816
- defaultFormatter = function (o) {
817
- o.className += o.record.get('classes')[o.column.key];
818
- return o.value;
819
- };
820
-
821
- function getColumns(theadNode) {
822
- var colNodes = theadNode.all('tr th'),
823
- cols = [],
824
- col;
825
- colNodes.each(function (colNode) {
826
- col = {
827
- key: colNode.getAttribute('data-col'),
828
- label: colNode.get('innerHTML') || ' ',
829
- sortable: !colNode.getAttribute('data-nosort'),
830
- className: colNode.getAttribute('class'),
831
- type: colNode.getAttribute('data-type'),
832
- allowHTML: colNode.getAttribute('data-html') === 'true' || colNode.getAttribute('data-fmt') === 'html'
833
- };
834
- col.formatter = formatters[colNode.getAttribute('data-fmt')] || defaultFormatter;
835
- cols.push(col);
836
- });
837
- return cols;
838
- }
839
-
840
- function getRowData(trNode, cols) {
841
- var tdNodes = trNode.all('td'),
842
- i,
843
- row = { classes: {} },
844
- node,
845
- name;
846
- for (i = 0; i < cols.length; i += 1) {
847
- name = cols[i].key;
848
- node = tdNodes.item(i);
849
- row[name] = node.getAttribute('data-value') || node.get('innerHTML');
850
- row[name + '_html'] = node.get('innerHTML');
851
- row.classes[name] = node.getAttribute('class');
852
- //Y.log('Name: ' + name + '; Value: ' + row[name]);
853
- if (cols[i].type === 'number') { row[name] = row[name] * 1; }
854
- }
855
- //Y.log(row);
856
- return row;
857
- }
858
-
859
- function getData(tbodyNode, cols) {
860
- var data = [];
861
- tbodyNode.all('tr').each(function (trNode) {
862
- data.push(getRowData(trNode, cols));
863
- });
864
- return data;
865
- }
866
-
867
- function replaceTable(node) {
868
- if (!node) { return; }
869
- var cols = getColumns(node.one('thead')),
870
- data = getData(node.one('tbody'), cols),
871
- table,
872
- parent = node.get('parentNode');
873
-
874
- table = new Y.DataTable({
875
- columns: cols,
876
- data: data,
877
- sortBy: 'file'
878
- });
879
- parent.set('innerHTML', '');
880
- table.render(parent);
881
- }
882
-
883
- Y.on('domready', function () {
884
- replaceTable(Y.one('div.coverage-summary table'));
885
- if (typeof prettyPrint === 'function') {
886
- prettyPrint();
887
- }
888
- });
889
- });
890
- </script>
891
- </body>
892
- </html>