elf_manifesto 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/.DS_Store +0 -0
  2. data/.gitignore +6 -0
  3. data/.rvmrc +1 -0
  4. data/Elf_Manifesto.gemspec +43 -0
  5. data/Gemfile +4 -0
  6. data/Guardfile +29 -0
  7. data/Rakefile +1 -0
  8. data/bin/manifesto +131 -0
  9. data/coverage/.resultset.json +75 -0
  10. data/coverage/assets/0.5.3/app.js +88 -0
  11. data/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
  12. data/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
  13. data/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
  14. data/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
  15. data/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
  16. data/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
  17. data/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
  18. data/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
  19. data/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
  20. data/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
  21. data/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
  22. data/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
  23. data/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
  24. data/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
  25. data/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
  26. data/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
  27. data/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
  28. data/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
  29. data/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
  30. data/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
  31. data/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +363 -0
  32. data/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  33. data/coverage/assets/0.5.3/favicon_green.png +0 -0
  34. data/coverage/assets/0.5.3/favicon_red.png +0 -0
  35. data/coverage/assets/0.5.3/favicon_yellow.png +0 -0
  36. data/coverage/assets/0.5.3/highlight.css +129 -0
  37. data/coverage/assets/0.5.3/highlight.pack.js +1 -0
  38. data/coverage/assets/0.5.3/jquery-1.6.2.min.js +18 -0
  39. data/coverage/assets/0.5.3/jquery.dataTables.min.js +152 -0
  40. data/coverage/assets/0.5.3/jquery.timeago.js +141 -0
  41. data/coverage/assets/0.5.3/jquery.url.js +174 -0
  42. data/coverage/assets/0.5.3/loading.gif +0 -0
  43. data/coverage/assets/0.5.3/magnify.png +0 -0
  44. data/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  45. data/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  46. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  47. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  48. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  49. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  50. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  51. data/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  52. data/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
  53. data/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  54. data/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
  55. data/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
  56. data/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  57. data/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  58. data/coverage/assets/0.5.3/stylesheet.css +383 -0
  59. data/coverage/index.html +155 -0
  60. data/features/create_a_manifest.feature +75 -0
  61. data/features/step_definitions/create_a_manifest_steps.rb +13 -0
  62. data/features/step_definitions/use_built_in_templates_steps.rb +42 -0
  63. data/features/support/env.rb +13 -0
  64. data/features/use_built_in_templates.feature +78 -0
  65. data/features/use_config_files.feature +31 -0
  66. data/lib/.DS_Store +0 -0
  67. data/lib/Elf_Manifesto/version.rb +4 -0
  68. data/lib/Elf_Manifesto.rb +5 -0
  69. data/lib/elf_manifesto/manifest_maker.rb +61 -0
  70. data/lib/templates/imsmanifest.xml.mustache +55 -0
  71. data/lib/templates/simple.mustache +15 -0
  72. data/readme.md +110 -0
  73. data/spec/lib/elf_manifesto/manifest_maker_spec.rb +154 -0
  74. data/spec/spec_helper.rb +5 -0
  75. metadata +268 -0
@@ -0,0 +1,383 @@
1
+ /* -----------------------------------------------------------------------
2
+
3
+
4
+ Blueprint CSS Framework 0.9
5
+ http://blueprintcss.org
6
+
7
+ * Copyright (c) 2007-Present. See LICENSE for more info.
8
+ * See README for instructions on how to use Blueprint.
9
+ * For credits and origins, see AUTHORS.
10
+ * This is a compressed file. See the sources in the 'src' directory.
11
+
12
+ ----------------------------------------------------------------------- */
13
+
14
+ /* reset.css */
15
+ html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
16
+ article, aside, dialog, figure, footer, header, hgroup, nav, section {display:block;}
17
+ body {line-height:1.5;}
18
+ table {border-collapse:separate;border-spacing:0;}
19
+ caption, th, td {text-align:left;font-weight:normal;}
20
+ table, td, th {vertical-align:middle;}
21
+ blockquote:before, blockquote:after, q:before, q:after {content:"";}
22
+ blockquote, q {quotes:"" "";}
23
+ a img {border:none;}
24
+
25
+ /* typography.css */
26
+ html {font-size:100.01%;}
27
+ body {font-size:82%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;}
28
+ h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
29
+ h1 {font-size:3em;line-height:1;margin-bottom:0.5em;}
30
+ h2 {font-size:2em;margin-bottom:0.75em;}
31
+ h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
32
+ h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
33
+ h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
34
+ h6 {font-size:1em;font-weight:bold;}
35
+ h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
36
+ p {margin:0 0 1.5em;}
37
+ p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
38
+ p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
39
+ a:focus, a:hover {color:#000;}
40
+ a {color:#009;text-decoration:underline;}
41
+ blockquote {margin:1.5em;color:#666;font-style:italic;}
42
+ strong {font-weight:bold;}
43
+ em, dfn {font-style:italic;}
44
+ dfn {font-weight:bold;}
45
+ sup, sub {line-height:0;}
46
+ abbr, acronym {border-bottom:1px dotted #666;}
47
+ address {margin:0 0 1.5em;font-style:italic;}
48
+ del {color:#666;}
49
+ pre {margin:1.5em 0;white-space:pre;}
50
+ pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;}
51
+ li ul, li ol {margin:0;}
52
+ ul, ol {margin:0 1.5em 1.5em 0;padding-left:3.333em;}
53
+ ul {list-style-type:disc;}
54
+ ol {list-style-type:decimal;}
55
+ dl {margin:0 0 1.5em 0;}
56
+ dl dt {font-weight:bold;}
57
+ dd {margin-left:1.5em;}
58
+ table {margin-bottom:1.4em;width:100%;}
59
+ th {font-weight:bold;}
60
+ thead th {background:#c3d9ff;}
61
+ th, td, caption {padding:4px 10px 4px 5px;}
62
+ tr.even td {background:#efefef;}
63
+ tfoot {font-style:italic;}
64
+ caption {background:#eee;}
65
+ .small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;}
66
+ .large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
67
+ .hide {display:none;}
68
+ .quiet {color:#666;}
69
+ .loud {color:#000;}
70
+ .highlight {background:#ff0;}
71
+ .added {background:#060;color:#fff;}
72
+ .removed {background:#900;color:#fff;}
73
+ .first {margin-left:0;padding-left:0;}
74
+ .last {margin-right:0;padding-right:0;}
75
+ .top {margin-top:0;padding-top:0;}
76
+ .bottom {margin-bottom:0;padding-bottom:0;}
77
+
78
+ /* forms.css */
79
+ label {font-weight:bold;}
80
+ fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
81
+ legend {font-weight:bold;font-size:1.2em;}
82
+ input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;}
83
+ input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;}
84
+ input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;}
85
+ input.text, input.title {width:300px;padding:5px;}
86
+ input.title {font-size:1.5em;}
87
+ textarea {width:390px;height:250px;padding:5px;}
88
+ input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;}
89
+ form.inline {line-height:3;}
90
+ form.inline p {margin-bottom:0;}
91
+ .error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
92
+ .error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
93
+ .notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
94
+ .success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
95
+ .error a {color:#8a1f11;}
96
+ .notice a {color:#514721;}
97
+ .success a {color:#264409;}
98
+ .box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
99
+ hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;}
100
+ hr.space {background:#fff;color:#fff;visibility:hidden;}
101
+ .clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
102
+ .clearfix, .container {display:block;}
103
+ .clear {clear:both;}
104
+
105
+ #loading {
106
+ position: fixed;
107
+ left: 40%;
108
+ top: 50%;
109
+ }
110
+
111
+ a {
112
+ color: #333;
113
+ text-decoration: none;
114
+ }
115
+
116
+ a:hover {
117
+ color: #000;
118
+ text-decoration: underline;
119
+ }
120
+
121
+ body {
122
+ font-family: "Lucida Grande", Helvetica, "Helvetica Neue", Arial, sans-serif;
123
+ padding: 12px;
124
+ background-color: #333;
125
+ }
126
+
127
+ h1, h2, h3, h4 {
128
+ color: #1C2324;
129
+ margin: 0;
130
+ padding: 0;
131
+ margin-bottom: 12px;
132
+ }
133
+
134
+ table {
135
+ width: 100%;
136
+ }
137
+
138
+ #content {
139
+ clear: left;
140
+ background-color: white;
141
+ border: 2px solid #ddd;
142
+ border-top: 8px solid #ddd;
143
+ padding: 18px;
144
+ -webkit-border-bottom-left-radius: 5px;
145
+ -webkit-border-bottom-right-radius: 5px;
146
+ -webkit-border-top-right-radius: 5px;
147
+ -moz-border-radius-bottomleft: 5px;
148
+ -moz-border-radius-bottomright: 5px;
149
+ -moz-border-radius-topright: 5px;
150
+ border-bottom-left-radius: 5px;
151
+ border-bottom-right-radius: 5px;
152
+ border-top-right-radius: 5px;
153
+ }
154
+
155
+ .dataTables_filter, .dataTables_info {
156
+ padding: 2px 6px;
157
+ }
158
+
159
+ abbr.timeago {
160
+ text-decoration: none;
161
+ border: none;
162
+ font-weight: bold;
163
+ }
164
+
165
+ .timestamp {
166
+ float: right;
167
+ color: #ddd;
168
+ }
169
+
170
+ .group_tabs {
171
+ list-style: none;
172
+ float: left;
173
+ margin: 0;
174
+ padding: 0;
175
+ }
176
+ .group_tabs li {
177
+ display: inline;
178
+ float: left;
179
+ }
180
+
181
+ .group_tabs li a {
182
+ font-family: Helvetica, Arial, sans-serif;
183
+ display: block;
184
+ float: left;
185
+ text-decoration: none;
186
+ padding: 4px 8px;
187
+ background-color: #aaa;
188
+ background: -webkit-gradient(linear, 0 0, 0 bottom, from(#DDD), to(#aaa));
189
+ background: -moz-linear-gradient(#DDD, #aaa);
190
+ background: linear-gradient(#DDD, #aaa);
191
+ text-shadow: #e5e5e5 1px 1px 0px;
192
+ border-bottom: none;
193
+ color: #333;
194
+ font-weight: bold;
195
+ margin-right: 8px;
196
+ border-top: 1px solid #efefef;
197
+ -webkit-border-top-left-radius: 2px;
198
+ -webkit-border-top-right-radius: 2px;
199
+ -moz-border-radius-topleft: 2px;
200
+ -moz-border-radius-topright: 2px;
201
+ border-top-left-radius: 2px;
202
+ border-top-right-radius: 2px;
203
+ }
204
+
205
+ .group_tabs li a:hover {
206
+ background-color: #ccc;
207
+ background: -webkit-gradient(linear, 0 0, 0 bottom, from(#eee), to(#aaa));
208
+ background: -moz-linear-gradient(#eee, #aaa);
209
+ background: linear-gradient(#eee, #aaa);
210
+ }
211
+
212
+ .group_tabs li a:active {
213
+ padding-top: 5px;
214
+ padding-bottom: 3px;
215
+ }
216
+
217
+ .group_tabs li.active a {
218
+ color: black;
219
+ text-shadow: #fff 1px 1px 0px;
220
+ background-color: #ddd;
221
+ background: -webkit-gradient(linear, 0 0, 0 bottom, from(#fff), to(#ddd));
222
+ background: -moz-linear-gradient(#fff, #ddd);
223
+ background: linear-gradient(#fff, #ddd);
224
+ }
225
+
226
+ .file_list {
227
+ margin-bottom: 18px;
228
+ }
229
+
230
+ a.src_link {
231
+ background: url('./magnify.png') no-repeat left 50%;
232
+ padding-left: 18px;
233
+ }
234
+
235
+ tr, td {
236
+ margin: 0;
237
+ padding: 0;
238
+ }
239
+
240
+ th {
241
+ white-space: nowrap;
242
+ }
243
+
244
+ th.ui-state-default {
245
+ cursor: pointer;
246
+ }
247
+
248
+ th span.ui-icon {
249
+ float: left;
250
+ }
251
+
252
+ td {
253
+ padding: 4px 8px;
254
+ }
255
+
256
+ td.strong {
257
+ font-weight: bold;
258
+ }
259
+
260
+ .source_table h3, .source_table h4 {
261
+ padding: 0;
262
+ margin: 0;
263
+ margin-bottom: 4px;
264
+ }
265
+
266
+ .source_table .header {
267
+ padding: 10px;
268
+ }
269
+
270
+ .source_table pre {
271
+ margin: 0;
272
+ padding: 0;
273
+ white-space: normal;
274
+ }
275
+
276
+ .source_table pre, .source_table code {
277
+ color: #000;
278
+ font-family: "Monaco", "Inconsolata", "Consolas", monospace;
279
+ }
280
+
281
+ .source_table pre {
282
+ background-color: #333;
283
+ }
284
+
285
+ .source_table pre ol {
286
+ margin: 0px;
287
+ padding: 0px;
288
+ margin-left: 45px;
289
+ font-size: 12px;
290
+ color: white;
291
+ }
292
+
293
+ .source_table pre li {
294
+ margin: 0px;
295
+ padding: 2px 6px;
296
+ border-left: 5px solid white;
297
+ }
298
+
299
+ .source_table pre li code {
300
+ white-space: pre;
301
+ white-space: pre-wrap;
302
+ }
303
+
304
+ .source_table pre .hits {
305
+ float: right;
306
+ margin-left: 10px;
307
+ padding: 2px 4px;
308
+
309
+ background-color: #444;
310
+ background: -webkit-gradient(linear, 0 0, 0 bottom, from(#222), to(#666));
311
+ background: -moz-linear-gradient(#222, #666);
312
+ background: linear-gradient(#222, #666);
313
+
314
+ color: white;
315
+ font-family: Helvetica, "Helvetica Neue", Arial, sans-serif;
316
+ font-size: 10px;
317
+ font-weight: bold;
318
+ text-align: center;
319
+ border-radius: 6px;
320
+ }
321
+
322
+ #footer {
323
+ color: #ddd;
324
+ font-size: 12px;
325
+ font-weight: bold;
326
+ margin-top: 12px;
327
+ text-align: right;
328
+ }
329
+ #footer a {
330
+ color: #eee;
331
+ text-decoration: underline;
332
+ }
333
+ #footer a:hover {
334
+ color: #fff;
335
+ text-decoration: none;
336
+ }
337
+
338
+ .green {
339
+ color: #090;
340
+ }
341
+ .red {
342
+ color: #900;
343
+ }
344
+ .yellow {
345
+ color: #da0;
346
+ }
347
+ .source_table .covered {
348
+ border-color: #090;
349
+ }
350
+ .source_table .missed {
351
+ border-color: #900;
352
+ }
353
+ .source_table .never {
354
+ border-color: black;
355
+ }
356
+ .source_table .skipped {
357
+ border-color: #fc0;
358
+ }
359
+
360
+ .source_table .covered:nth-child(odd) {
361
+ background-color: #CDF2CD;
362
+ }
363
+ .source_table .covered:nth-child(even) {
364
+ background-color: #DBF2DB;
365
+ }
366
+ .source_table .missed:nth-child(odd) {
367
+ background-color: #F7C0C0;
368
+ }
369
+ .source_table .missed:nth-child(even) {
370
+ background-color: #F7CFCF;
371
+ }
372
+ .source_table .never:nth-child(odd) {
373
+ background-color: #efefef;
374
+ }
375
+ .source_table .never:nth-child(even) {
376
+ background-color: #f4f4f4;
377
+ }
378
+ .source_table .skipped:nth-child(odd) {
379
+ background-color: #FBF0C0;
380
+ }
381
+ .source_table .skipped:nth-child(even) {
382
+ background-color: #FBFfCf;
383
+ }
@@ -0,0 +1,155 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>Code coverage for Elf manifesto</title>
5
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
+ <script src='./assets/0.5.3/jquery-1.6.2.min.js' type='text/javascript'></script>
7
+ <script src='./assets/0.5.3/jquery.dataTables.min.js' type='text/javascript'></script>
8
+ <script src='./assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js' type='text/javascript'></script>
9
+ <script src='./assets/0.5.3/jquery.timeago.js' type='text/javascript'></script>
10
+ <script src='./assets/0.5.3/jquery.url.js' type='text/javascript'></script>
11
+ <script src='./assets/0.5.3/highlight.pack.js' type='text/javascript'></script>
12
+ <script src='./assets/0.5.3/app.js' type='text/javascript'></script>
13
+ <link href='./assets/0.5.3/stylesheet.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
14
+ <link href='./assets/0.5.3/highlight.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
15
+ <link href='./assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
16
+ <link href='./assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
17
+ <link rel="shortcut icon" type="image/png" href="./assets/0.5.3/favicon_green.png" />
18
+ <link rel="icon" type="image/png" href="./assets/0.5.3/favicon.png" />
19
+ </head>
20
+
21
+ <body>
22
+ <div id="loading">
23
+ <img src="./assets/0.5.3/loading.gif" alt="loading"/>
24
+ </div>
25
+ <div id="wrapper" style="display:none;">
26
+ <div class="timestamp">Generated <abbr class="timeago" title="2011-12-22T15:50:20+00:00">2011-12-22T15:50:20+00:00</abbr></div>
27
+ <ul class="group_tabs"></ul>
28
+
29
+ <div id="content">
30
+ <div class="file_list_container" id="AllFiles">
31
+ <h2>
32
+ <span class="group_name">All Files</span>
33
+ (<span class="covered_percent"><span class="green">100.0%</span></span>
34
+ covered at
35
+ <span class="covered_strength">
36
+ <span class="red">
37
+ 0.0
38
+ </span>
39
+ </span> hits/line)
40
+ </h2>
41
+ <a name="AllFiles"></a>
42
+ <div>
43
+ <b>0</b> files in total.
44
+ <b>0.0</b> relevant lines.
45
+ <span class="green"><b>0.0</b> lines covered</span> and
46
+ <span class="red"><b>0.0</b> lines missed </span>
47
+ </div>
48
+ <table class="file_list">
49
+ <thead>
50
+ <tr>
51
+ <th>File</th>
52
+ <th>% covered</th>
53
+ <th>Lines</th>
54
+ <th>Relevant Lines</th>
55
+ <th>Lines covered</th>
56
+ <th>Lines missed</th>
57
+ <th>Avg. Hits / Line</th>
58
+ </tr>
59
+ </thead>
60
+ <tbody>
61
+
62
+ </tbody>
63
+ </table>
64
+ </div>
65
+
66
+
67
+
68
+ <div class="file_list_container" id="CLI">
69
+ <h2>
70
+ <span class="group_name">CLI</span>
71
+ (<span class="covered_percent"><span class="green">100.0%</span></span>
72
+ covered at
73
+ <span class="covered_strength">
74
+ <span class="red">
75
+ 0.0
76
+ </span>
77
+ </span> hits/line)
78
+ </h2>
79
+ <a name="CLI"></a>
80
+ <div>
81
+ <b>0</b> files in total.
82
+ <b>0.0</b> relevant lines.
83
+ <span class="green"><b>0.0</b> lines covered</span> and
84
+ <span class="red"><b>0.0</b> lines missed </span>
85
+ </div>
86
+ <table class="file_list">
87
+ <thead>
88
+ <tr>
89
+ <th>File</th>
90
+ <th>% covered</th>
91
+ <th>Lines</th>
92
+ <th>Relevant Lines</th>
93
+ <th>Lines covered</th>
94
+ <th>Lines missed</th>
95
+ <th>Avg. Hits / Line</th>
96
+ </tr>
97
+ </thead>
98
+ <tbody>
99
+
100
+ </tbody>
101
+ </table>
102
+ </div>
103
+
104
+
105
+ <div class="file_list_container" id="Workers">
106
+ <h2>
107
+ <span class="group_name">Workers</span>
108
+ (<span class="covered_percent"><span class="green">100.0%</span></span>
109
+ covered at
110
+ <span class="covered_strength">
111
+ <span class="red">
112
+ 0.0
113
+ </span>
114
+ </span> hits/line)
115
+ </h2>
116
+ <a name="Workers"></a>
117
+ <div>
118
+ <b>0</b> files in total.
119
+ <b>0.0</b> relevant lines.
120
+ <span class="green"><b>0.0</b> lines covered</span> and
121
+ <span class="red"><b>0.0</b> lines missed </span>
122
+ </div>
123
+ <table class="file_list">
124
+ <thead>
125
+ <tr>
126
+ <th>File</th>
127
+ <th>% covered</th>
128
+ <th>Lines</th>
129
+ <th>Relevant Lines</th>
130
+ <th>Lines covered</th>
131
+ <th>Lines missed</th>
132
+ <th>Avg. Hits / Line</th>
133
+ </tr>
134
+ </thead>
135
+ <tbody>
136
+
137
+ </tbody>
138
+ </table>
139
+ </div>
140
+
141
+
142
+ </div>
143
+
144
+ <div id="footer">
145
+ Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.5.4
146
+ and simplecov-html v0.5.3<br/>
147
+ using Cucumber Features
148
+ </div>
149
+
150
+ <div class="source_files">
151
+
152
+ </div>
153
+ </div>
154
+ </body>
155
+ </html>
@@ -0,0 +1,75 @@
1
+ Feature: Create a Manifest
2
+
3
+ As a User
4
+ I want start manifesto from the command line
5
+ So that I can create a manifest
6
+
7
+ Scenario: Start manifesto with no parameters
8
+ Given Manifesto is not yet running
9
+ When I run `manifesto`
10
+ Then the output should contain "Manifesto! throw me a frickin' bone here"
11
+ And the output should contain "I need some parameters"
12
+ And the output should contain "Use --help to find out how"
13
+
14
+ Scenario Outline: render a simple template with a single glob to the console
15
+ Given a file named "simple.mustache" with:
16
+ """
17
+ Group1: ({{group1.path}})
18
+ {{#group1.files}}
19
+ {{.}}
20
+ {{/group1.files}}
21
+ """
22
+ And some empty files file1.txt file2.jpg file3.jpg file4.png
23
+ When I run `manifesto --template simple.mustache <globs>`
24
+ Then the output should contain "<results>"
25
+
26
+ Scenarios: Single globs
27
+ | globs | results |
28
+ | '*.*' | file1.txt\nfile2 |
29
+ | '*.*' | Group1: (*.*) |
30
+ | '*.png' | file4 |
31
+ | '*.jpg' | file2.jpg |
32
+ | '*.jpg' | file3.jpg |
33
+
34
+ Scenario Outline: render a simple template with multiple globs to the console
35
+ Given a file named "simple.mustache" with:
36
+ """
37
+ Matched Groups:
38
+ {{#groups}}
39
+ {{name}} ({{path}}): {{#files}}{{.}} {{/files}}
40
+ {{/groups}}
41
+ """
42
+ And some empty files file1.txt file2.jpg file3.jpg file4.png
43
+ When I run `manifesto --template simple.mustache <globs>`
44
+ Then the output should contain "<results>"
45
+
46
+ Scenarios: single globs
47
+ | globs | results |
48
+ | '*.*' | file1.txt file2 |
49
+ | '*.*' | group1 (*.*) |
50
+ | '*.png' | file4 |
51
+ | '*.png' | (*.png) |
52
+ | '*.jpg' | file2.jpg |
53
+ | '*.jpg' | file3.jpg |
54
+
55
+ Scenarios: multiple globs
56
+ | globs | results |
57
+ | '*.*' '*.png' | group1 |
58
+ | '*.*' '*.png' | group2 |
59
+ | '*.*' '*.png' | file1.txt |
60
+ | '*.*' '*.png' | file4.png |
61
+
62
+ Scenario: render arbitrary properties
63
+ Given a file named "simple.mustache" with:
64
+ """
65
+ Group ID: {{props}}
66
+ {{#groups}}
67
+ {{name}} ({{path}}): {{#files}}{{.}} {{/files}}
68
+ {{/groups}}
69
+ """
70
+ And some empty files file1.txt file2.jpg file3.jpg file4.png
71
+ When I run `manifesto -m simple.mustache --properties "{ group_id: '1234' }" '*.*'`
72
+ Then the output should contain "1234"
73
+
74
+
75
+
@@ -0,0 +1,13 @@
1
+ Given /^Manifesto is not yet running$/ do
2
+ # pending # express the regexp above with the code you wish you had
3
+ end
4
+
5
+ Given /^some empty files(\s.+)$/ do |arg|
6
+ files = arg.strip.split" "
7
+ files.each do |file|
8
+ steps %Q{
9
+ Given an empty file named "#{file}"
10
+ }
11
+ end
12
+ end
13
+
@@ -0,0 +1,42 @@
1
+ require 'rspec'
2
+ Given /^a library of templates: (.+)$/ do |files|
3
+ # TODO: Currently unable to mock the file system from Cucumber. So relying on contents of template folder
4
+ # => Need to mock the FS to reduce fragility in the tests.
5
+ template_files = files.split(' ')
6
+ relative_path_to_templates = File.join('..','..','lib','templates')
7
+ path_to_templates = File.expand_path(relative_path_to_templates, File.dirname(__FILE__) )
8
+ # puts "Template path: #{path_to_templates}"
9
+ Dir.chdir path_to_templates
10
+ template_files.each do |filename|
11
+ steps %Q{
12
+ Given a file named "#{filename}" with:
13
+ """
14
+ Matched Groups:
15
+ {{#groups}}
16
+ {{name}} ({{path}}): {{#files}}{{.}} {{/files}}
17
+ {{/groups}}
18
+
19
+ Each file glob passed in creates a new file group. Each group has a name, path and files property. Reference specific file groups by their name which is 'group' followed by the group number. So 'group1' for the first group etc.
20
+
21
+ So the first group's path glob is -> {{group1.path}}
22
+ And the files matching it are:
23
+ {{#group1.files}}
24
+ {{.}}
25
+ {{/group1.files}}
26
+
27
+ {{#props}}Properties{{/props}}
28
+ {{props}}
29
+ """
30
+ }
31
+ end
32
+ end
33
+
34
+ Given /^a collection of files: (.+)$/ do |files|
35
+ file_list = files.split " "
36
+ file_list.each do |file|
37
+ steps %Q{
38
+ Given an empty file named "#{file}"
39
+ }
40
+ end
41
+ end
42
+
@@ -0,0 +1,13 @@
1
+ require 'simplecov'
2
+
3
+ SimpleCov.start do
4
+ add_group "CLI", "bin/manifesto"
5
+ add_group "Workers", "lib/elf_manifesto"
6
+ add_filter "/features/"
7
+ end
8
+
9
+ require 'aruba/cucumber'
10
+ require 'cucumber/rspec/doubles'
11
+
12
+ # Add the bin directory to aruba's executable path
13
+ ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"