mattock 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,27 +23,27 @@
23
23
  <img src="./assets/0.5.3/loading.gif" alt="loading"/>
24
24
  </div>
25
25
  <div id="wrapper" style="display:none;">
26
- <div class="timestamp">Generated <abbr class="timeago" title="2012-01-21T01:32:01-08:00">2012-01-21T01:32:01-08:00</abbr></div>
26
+ <div class="timestamp">Generated <abbr class="timeago" title="2012-01-28T02:02:54-08:00">2012-01-28T02:02:54-08:00</abbr></div>
27
27
  <ul class="group_tabs"></ul>
28
28
 
29
29
  <div id="content">
30
30
  <div class="file_list_container" id="AllFiles">
31
31
  <h2>
32
32
  <span class="group_name">All Files</span>
33
- (<span class="covered_percent"><span class="green">93.0%</span></span>
33
+ (<span class="covered_percent"><span class="green">92.79%</span></span>
34
34
  covered at
35
35
  <span class="covered_strength">
36
36
  <span class="green">
37
- 2.98
37
+ 2.62
38
38
  </span>
39
39
  </span> hits/line)
40
40
  </h2>
41
41
  <a name="AllFiles"></a>
42
42
  <div>
43
- <b>9</b> files in total.
44
- <b>343</b> relevant lines.
45
- <span class="green"><b>319</b> lines covered</span> and
46
- <span class="red"><b>24</b> lines missed </span>
43
+ <b>12</b> files in total.
44
+ <b>416</b> relevant lines.
45
+ <span class="green"><b>386</b> lines covered</span> and
46
+ <span class="red"><b>30</b> lines missed </span>
47
47
  </div>
48
48
  <table class="file_list">
49
49
  <thead>
@@ -69,6 +69,16 @@
69
69
  <td>1.0</td>
70
70
  </tr>
71
71
 
72
+ <tr>
73
+ <td class="strong"><a href="#a4dd8526c71e3e42410b37403d8cb37f6ca70df4" class="src_link" title="lib/mattock/cascading-definition.rb">lib/mattock/cascading-definition.rb</a></td>
74
+ <td class="green strong">100.0 %</td>
75
+ <td>32</td>
76
+ <td>16</td>
77
+ <td>16</td>
78
+ <td>0</td>
79
+ <td>3.2</td>
80
+ </tr>
81
+
72
82
  <tr>
73
83
  <td class="strong"><a href="#19e9811ada5819ea8e2c6a644088d4ba8e773a5b" class="src_link" title="lib/mattock/command-line.rb">lib/mattock/command-line.rb</a></td>
74
84
  <td class="green strong">93.1 %</td>
@@ -76,27 +86,27 @@
76
86
  <td>87</td>
77
87
  <td>81</td>
78
88
  <td>6</td>
79
- <td>2.9</td>
89
+ <td>3.0</td>
80
90
  </tr>
81
91
 
82
92
  <tr>
83
93
  <td class="strong"><a href="#937bd4854d7605194eaf61c021175d6a0f31e6e8" class="src_link" title="lib/mattock/command-task.rb">lib/mattock/command-task.rb</a></td>
84
- <td class="green strong">93.1 %</td>
85
- <td>51</td>
86
- <td>29</td>
87
- <td>27</td>
88
- <td>2</td>
94
+ <td class="yellow strong">84.21 %</td>
95
+ <td>33</td>
96
+ <td>19</td>
97
+ <td>16</td>
98
+ <td>3</td>
89
99
  <td>1.2</td>
90
100
  </tr>
91
101
 
92
102
  <tr>
93
103
  <td class="strong"><a href="#151b5abc8f09f0fc2932ac98c07e3b516a518e3e" class="src_link" title="lib/mattock/configurable.rb">lib/mattock/configurable.rb</a></td>
94
- <td class="green strong">98.7 %</td>
95
- <td>129</td>
96
- <td>77</td>
97
- <td>76</td>
98
- <td>1</td>
99
- <td>8.8</td>
104
+ <td class="green strong">96.67 %</td>
105
+ <td>153</td>
106
+ <td>90</td>
107
+ <td>87</td>
108
+ <td>3</td>
109
+ <td>8.1</td>
100
110
  </tr>
101
111
 
102
112
  <tr>
@@ -109,14 +119,24 @@
109
119
  <td>1.4</td>
110
120
  </tr>
111
121
 
122
+ <tr>
123
+ <td class="strong"><a href="#7cc8f09739f0b95d0fd16321baf73b5d3c6eb35b" class="src_link" title="lib/mattock/task.rb">lib/mattock/task.rb</a></td>
124
+ <td class="green strong">94.74 %</td>
125
+ <td>35</td>
126
+ <td>19</td>
127
+ <td>18</td>
128
+ <td>1</td>
129
+ <td>0.9</td>
130
+ </tr>
131
+
112
132
  <tr>
113
133
  <td class="strong"><a href="#a2c73f0ba96e60116ee8696673802b6ebaddc38c" class="src_link" title="lib/mattock/tasklib.rb">lib/mattock/tasklib.rb</a></td>
114
- <td class="green strong">97.5 %</td>
115
- <td>76</td>
116
- <td>40</td>
117
- <td>39</td>
134
+ <td class="green strong">96.77 %</td>
135
+ <td>57</td>
136
+ <td>31</td>
137
+ <td>30</td>
118
138
  <td>1</td>
119
- <td>3.8</td>
139
+ <td>3.4</td>
120
140
  </tr>
121
141
 
122
142
  <tr>
@@ -131,12 +151,12 @@
131
151
 
132
152
  <tr>
133
153
  <td class="strong"><a href="#d05b479afa4321ddf827a6b5af14020183ee07b9" class="src_link" title="lib/mattock/testing/mock-command-line.rb">lib/mattock/testing/mock-command-line.rb</a></td>
134
- <td class="green strong">92.86 %</td>
135
- <td>26</td>
136
- <td>14</td>
137
- <td>13</td>
138
- <td>1</td>
139
- <td>1.4</td>
154
+ <td class="green strong">94.44 %</td>
155
+ <td>67</td>
156
+ <td>36</td>
157
+ <td>34</td>
158
+ <td>2</td>
159
+ <td>1.2</td>
140
160
  </tr>
141
161
 
142
162
  <tr>
@@ -149,6 +169,16 @@
149
169
  <td>5.7</td>
150
170
  </tr>
151
171
 
172
+ <tr>
173
+ <td class="strong"><a href="#b325ca10da29fcd26651ac26205d38639667a9a7" class="src_link" title="lib/mattock/testing/record-commands.rb">lib/mattock/testing/record-commands.rb</a></td>
174
+ <td class="green strong">95.45 %</td>
175
+ <td>38</td>
176
+ <td>22</td>
177
+ <td>21</td>
178
+ <td>1</td>
179
+ <td>1.7</td>
180
+ </tr>
181
+
152
182
  </tbody>
153
183
  </table>
154
184
  </div>
@@ -203,6 +233,216 @@
203
233
  <code class="ruby">require 'mattock/template-host'</code>
204
234
  </li>
205
235
 
236
+ </ol>
237
+ </pre>
238
+ </div>
239
+
240
+ <div class="source_table" id="a4dd8526c71e3e42410b37403d8cb37f6ca70df4">
241
+ <div class="header">
242
+ <h3>lib/mattock/cascading-definition.rb</h3>
243
+ <h4><span class="green">100.0 %</span> covered</h4>
244
+ <div>
245
+ <b>16</b> relevant lines.
246
+ <span class="green"><b>16</b> lines covered</span> and
247
+ <span class="red"><b>0</b> lines missed.</span>
248
+ </div>
249
+ </div>
250
+
251
+ <pre>
252
+ <ol>
253
+
254
+ <li class="covered" data-hits="1" data-linenumber="1">
255
+ <span class="hits">1</span>
256
+
257
+ <code class="ruby">require 'mattock/configurable'</code>
258
+ </li>
259
+
260
+ <li class="never" data-hits="" data-linenumber="2">
261
+
262
+
263
+ <code class="ruby"></code>
264
+ </li>
265
+
266
+ <li class="covered" data-hits="1" data-linenumber="3">
267
+ <span class="hits">1</span>
268
+
269
+ <code class="ruby">module Mattock</code>
270
+ </li>
271
+
272
+ <li class="covered" data-hits="1" data-linenumber="4">
273
+ <span class="hits">1</span>
274
+
275
+ <code class="ruby"> module CascadingDefinition</code>
276
+ </li>
277
+
278
+ <li class="covered" data-hits="1" data-linenumber="5">
279
+ <span class="hits">1</span>
280
+
281
+ <code class="ruby"> include Configurable</code>
282
+ </li>
283
+
284
+ <li class="never" data-hits="" data-linenumber="6">
285
+
286
+
287
+ <code class="ruby"></code>
288
+ </li>
289
+
290
+ <li class="covered" data-hits="1" data-linenumber="7">
291
+ <span class="hits">1</span>
292
+
293
+ <code class="ruby"> def initialize(*tasklibs)</code>
294
+ </li>
295
+
296
+ <li class="covered" data-hits="6" data-linenumber="8">
297
+ <span class="hits">6</span>
298
+
299
+ <code class="ruby"> setup_defaults</code>
300
+ </li>
301
+
302
+ <li class="covered" data-hits="6" data-linenumber="9">
303
+ <span class="hits">6</span>
304
+
305
+ <code class="ruby"> default_configuration(*tasklibs)</code>
306
+ </li>
307
+
308
+ <li class="never" data-hits="" data-linenumber="10">
309
+
310
+
311
+ <code class="ruby"></code>
312
+ </li>
313
+
314
+ <li class="covered" data-hits="6" data-linenumber="11">
315
+ <span class="hits">6</span>
316
+
317
+ <code class="ruby"> yield self if block_given?</code>
318
+ </li>
319
+
320
+ <li class="never" data-hits="" data-linenumber="12">
321
+
322
+
323
+ <code class="ruby"></code>
324
+ </li>
325
+
326
+ <li class="covered" data-hits="6" data-linenumber="13">
327
+ <span class="hits">6</span>
328
+
329
+ <code class="ruby"> resolve_configuration</code>
330
+ </li>
331
+
332
+ <li class="covered" data-hits="6" data-linenumber="14">
333
+ <span class="hits">6</span>
334
+
335
+ <code class="ruby"> confirm_configuration</code>
336
+ </li>
337
+
338
+ <li class="never" data-hits="" data-linenumber="15">
339
+
340
+
341
+ <code class="ruby"></code>
342
+ </li>
343
+
344
+ <li class="covered" data-hits="6" data-linenumber="16">
345
+ <span class="hits">6</span>
346
+
347
+ <code class="ruby"> define</code>
348
+ </li>
349
+
350
+ <li class="never" data-hits="" data-linenumber="17">
351
+
352
+
353
+ <code class="ruby"> end</code>
354
+ </li>
355
+
356
+ <li class="never" data-hits="" data-linenumber="18">
357
+
358
+
359
+ <code class="ruby"></code>
360
+ </li>
361
+
362
+ <li class="covered" data-hits="1" data-linenumber="19">
363
+ <span class="hits">1</span>
364
+
365
+ <code class="ruby"> def default_configuration(*tasklibs)</code>
366
+ </li>
367
+
368
+ <li class="never" data-hits="" data-linenumber="20">
369
+
370
+
371
+ <code class="ruby"> end</code>
372
+ </li>
373
+
374
+ <li class="never" data-hits="" data-linenumber="21">
375
+
376
+
377
+ <code class="ruby"></code>
378
+ </li>
379
+
380
+ <li class="covered" data-hits="1" data-linenumber="22">
381
+ <span class="hits">1</span>
382
+
383
+ <code class="ruby"> def resolve_configuration</code>
384
+ </li>
385
+
386
+ <li class="never" data-hits="" data-linenumber="23">
387
+
388
+
389
+ <code class="ruby"> end</code>
390
+ </li>
391
+
392
+ <li class="never" data-hits="" data-linenumber="24">
393
+
394
+
395
+ <code class="ruby"></code>
396
+ </li>
397
+
398
+ <li class="covered" data-hits="1" data-linenumber="25">
399
+ <span class="hits">1</span>
400
+
401
+ <code class="ruby"> def confirm_configuration</code>
402
+ </li>
403
+
404
+ <li class="covered" data-hits="6" data-linenumber="26">
405
+ <span class="hits">6</span>
406
+
407
+ <code class="ruby"> check_required</code>
408
+ </li>
409
+
410
+ <li class="never" data-hits="" data-linenumber="27">
411
+
412
+
413
+ <code class="ruby"> end</code>
414
+ </li>
415
+
416
+ <li class="never" data-hits="" data-linenumber="28">
417
+
418
+
419
+ <code class="ruby"></code>
420
+ </li>
421
+
422
+ <li class="covered" data-hits="1" data-linenumber="29">
423
+ <span class="hits">1</span>
424
+
425
+ <code class="ruby"> def define</code>
426
+ </li>
427
+
428
+ <li class="never" data-hits="" data-linenumber="30">
429
+
430
+
431
+ <code class="ruby"> end</code>
432
+ </li>
433
+
434
+ <li class="never" data-hits="" data-linenumber="31">
435
+
436
+
437
+ <code class="ruby"> end</code>
438
+ </li>
439
+
440
+ <li class="never" data-hits="" data-linenumber="32">
441
+
442
+
443
+ <code class="ruby">end</code>
444
+ </li>
445
+
206
446
  </ol>
207
447
  </pre>
208
448
  </div>
@@ -323,8 +563,8 @@
323
563
  <code class="ruby"> def exit_code</code>
324
564
  </li>
325
565
 
326
- <li class="covered" data-hits="6" data-linenumber="18">
327
- <span class="hits">6</span>
566
+ <li class="covered" data-hits="11" data-linenumber="18">
567
+ <span class="hits">11</span>
328
568
 
329
569
  <code class="ruby"> @process_status.exitstatus</code>
330
570
  </li>
@@ -1170,11 +1410,11 @@
1170
1410
  <div class="source_table" id="937bd4854d7605194eaf61c021175d6a0f31e6e8">
1171
1411
  <div class="header">
1172
1412
  <h3>lib/mattock/command-task.rb</h3>
1173
- <h4><span class="green">93.1 %</span> covered</h4>
1413
+ <h4><span class="yellow">84.21 %</span> covered</h4>
1174
1414
  <div>
1175
- <b>29</b> relevant lines.
1176
- <span class="green"><b>27</b> lines covered</span> and
1177
- <span class="red"><b>2</b> lines missed.</span>
1415
+ <b>19</b> relevant lines.
1416
+ <span class="green"><b>16</b> lines covered</span> and
1417
+ <span class="red"><b>3</b> lines missed.</span>
1178
1418
  </div>
1179
1419
  </div>
1180
1420
 
@@ -1184,7 +1424,7 @@
1184
1424
  <li class="covered" data-hits="1" data-linenumber="1">
1185
1425
  <span class="hits">1</span>
1186
1426
 
1187
- <code class="ruby">require 'mattock/tasklib'</code>
1427
+ <code class="ruby">require 'mattock/task'</code>
1188
1428
  </li>
1189
1429
 
1190
1430
  <li class="covered" data-hits="1" data-linenumber="2">
@@ -1208,280 +1448,172 @@
1208
1448
  <li class="covered" data-hits="1" data-linenumber="5">
1209
1449
  <span class="hits">1</span>
1210
1450
 
1211
- <code class="ruby"> module NeededPredicate</code>
1451
+ <code class="ruby"> class CommandTask &lt; Task</code>
1212
1452
  </li>
1213
1453
 
1214
1454
  <li class="covered" data-hits="1" data-linenumber="6">
1215
1455
  <span class="hits">1</span>
1216
1456
 
1217
- <code class="ruby"> def needed_predicate(&amp;block)</code>
1457
+ <code class="ruby"> setting(:task_name, :run)</code>
1218
1458
  </li>
1219
1459
 
1220
- <li class="covered" data-hits="2" data-linenumber="7">
1221
- <span class="hits">2</span>
1460
+ <li class="covered" data-hits="1" data-linenumber="7">
1461
+ <span class="hits">1</span>
1222
1462
 
1223
- <code class="ruby"> (class &lt;&lt; self; self; end).instance_eval do</code>
1463
+ <code class="ruby"> setting(:command)</code>
1224
1464
  </li>
1225
1465
 
1226
1466
  <li class="covered" data-hits="1" data-linenumber="8">
1227
1467
  <span class="hits">1</span>
1228
1468
 
1229
- <code class="ruby"> define_method(:needed?, &amp;block)</code>
1469
+ <code class="ruby"> setting(:verify_command, nil)</code>
1230
1470
  </li>
1231
1471
 
1232
1472
  <li class="never" data-hits="" data-linenumber="9">
1233
1473
 
1234
1474
 
1235
- <code class="ruby"> end</code>
1475
+ <code class="ruby"></code>
1236
1476
  </li>
1237
1477
 
1238
- <li class="never" data-hits="" data-linenumber="10">
1239
-
1478
+ <li class="covered" data-hits="1" data-linenumber="10">
1479
+ <span class="hits">1</span>
1240
1480
 
1241
- <code class="ruby"> end</code>
1481
+ <code class="ruby"> def verify_command</code>
1242
1482
  </li>
1243
1483
 
1244
- <li class="never" data-hits="" data-linenumber="11">
1245
-
1484
+ <li class="covered" data-hits="4" data-linenumber="11">
1485
+ <span class="hits">4</span>
1246
1486
 
1247
- <code class="ruby"> end</code>
1487
+ <code class="ruby"> if @verify_command.respond_to?(:call)</code>
1248
1488
  </li>
1249
1489
 
1250
- <li class="never" data-hits="" data-linenumber="12">
1490
+ <li class="missed" data-hits="0" data-linenumber="12">
1251
1491
 
1252
1492
 
1253
- <code class="ruby"></code>
1493
+ <code class="ruby"> @verify_command = @verify_command.call</code>
1254
1494
  </li>
1255
1495
 
1256
- <li class="covered" data-hits="1" data-linenumber="13">
1257
- <span class="hits">1</span>
1258
-
1259
- <code class="ruby"> class CommandTask &lt; TaskLib</code>
1260
- </li>
1261
-
1262
- <li class="covered" data-hits="1" data-linenumber="14">
1263
- <span class="hits">1</span>
1264
-
1265
- <code class="ruby"> setting(:task_name, :run)</code>
1266
- </li>
1267
-
1268
- <li class="covered" data-hits="1" data-linenumber="15">
1269
- <span class="hits">1</span>
1270
-
1271
- <code class="ruby"> setting(:command)</code>
1272
- </li>
1273
-
1274
- <li class="covered" data-hits="1" data-linenumber="16">
1275
- <span class="hits">1</span>
1276
-
1277
- <code class="ruby"> setting(:verify_command, nil)</code>
1278
- </li>
1279
-
1280
- <li class="never" data-hits="" data-linenumber="17">
1281
-
1282
-
1283
- <code class="ruby"></code>
1284
- </li>
1285
-
1286
- <li class="covered" data-hits="1" data-linenumber="18">
1287
- <span class="hits">1</span>
1288
-
1289
- <code class="ruby"> def verify_command</code>
1290
- </li>
1291
-
1292
- <li class="covered" data-hits="3" data-linenumber="19">
1293
- <span class="hits">3</span>
1294
-
1295
- <code class="ruby"> if @verify_command.respond_to?(:call)</code>
1296
- </li>
1297
-
1298
- <li class="missed" data-hits="0" data-linenumber="20">
1299
-
1300
-
1301
- <code class="ruby"> @verify_command = @verify_command.call</code>
1302
- </li>
1303
-
1304
- <li class="never" data-hits="" data-linenumber="21">
1496
+ <li class="never" data-hits="" data-linenumber="13">
1305
1497
 
1306
1498
 
1307
1499
  <code class="ruby"> end</code>
1308
1500
  </li>
1309
1501
 
1310
- <li class="covered" data-hits="3" data-linenumber="22">
1311
- <span class="hits">3</span>
1502
+ <li class="covered" data-hits="4" data-linenumber="14">
1503
+ <span class="hits">4</span>
1312
1504
 
1313
1505
  <code class="ruby"> @verify_command</code>
1314
1506
  </li>
1315
1507
 
1316
- <li class="never" data-hits="" data-linenumber="23">
1508
+ <li class="never" data-hits="" data-linenumber="15">
1317
1509
 
1318
1510
 
1319
1511
  <code class="ruby"> end</code>
1320
1512
  </li>
1321
1513
 
1322
- <li class="never" data-hits="" data-linenumber="24">
1514
+ <li class="never" data-hits="" data-linenumber="16">
1323
1515
 
1324
1516
 
1325
1517
  <code class="ruby"></code>
1326
1518
  </li>
1327
1519
 
1328
- <li class="covered" data-hits="1" data-linenumber="25">
1520
+ <li class="covered" data-hits="1" data-linenumber="17">
1329
1521
  <span class="hits">1</span>
1330
1522
 
1331
1523
  <code class="ruby"> def decorated(cmd)</code>
1332
1524
  </li>
1333
1525
 
1334
- <li class="missed" data-hits="0" data-linenumber="26">
1526
+ <li class="missed" data-hits="0" data-linenumber="18">
1335
1527
 
1336
1528
 
1337
1529
  <code class="ruby"> cmd</code>
1338
1530
  </li>
1339
1531
 
1340
- <li class="never" data-hits="" data-linenumber="27">
1532
+ <li class="never" data-hits="" data-linenumber="19">
1341
1533
 
1342
1534
 
1343
1535
  <code class="ruby"> end</code>
1344
1536
  </li>
1345
1537
 
1346
- <li class="never" data-hits="" data-linenumber="28">
1538
+ <li class="never" data-hits="" data-linenumber="20">
1347
1539
 
1348
1540
 
1349
1541
  <code class="ruby"></code>
1350
1542
  </li>
1351
1543
 
1352
- <li class="covered" data-hits="1" data-linenumber="29">
1353
- <span class="hits">1</span>
1354
-
1355
- <code class="ruby"> def command_task</code>
1356
- </li>
1357
-
1358
- <li class="never" data-hits="" data-linenumber="30">
1359
-
1360
-
1361
- <code class="ruby"> @command_task ||=</code>
1362
- </li>
1363
-
1364
- <li class="never" data-hits="" data-linenumber="31">
1365
-
1366
-
1367
- <code class="ruby"> begin</code>
1368
- </li>
1369
-
1370
- <li class="covered" data-hits="1" data-linenumber="32">
1544
+ <li class="covered" data-hits="1" data-linenumber="21">
1371
1545
  <span class="hits">1</span>
1372
1546
 
1373
- <code class="ruby"> task task_name do</code>
1547
+ <code class="ruby"> def action</code>
1374
1548
  </li>
1375
1549
 
1376
- <li class="covered" data-hits="1" data-linenumber="33">
1550
+ <li class="covered" data-hits="1" data-linenumber="22">
1377
1551
  <span class="hits">1</span>
1378
1552
 
1379
- <code class="ruby"> decorated(command).must_succeed!</code>
1380
- </li>
1381
-
1382
- <li class="never" data-hits="" data-linenumber="34">
1383
-
1384
-
1385
- <code class="ruby"> end</code>
1386
- </li>
1387
-
1388
- <li class="covered" data-hits="3" data-linenumber="35">
1389
- <span class="hits">3</span>
1390
-
1391
- <code class="ruby"> end</code>
1553
+ <code class="ruby"> decorated(command).must_succeed!</code>
1392
1554
  </li>
1393
1555
 
1394
- <li class="never" data-hits="" data-linenumber="36">
1556
+ <li class="never" data-hits="" data-linenumber="23">
1395
1557
 
1396
1558
 
1397
1559
  <code class="ruby"> end</code>
1398
1560
  </li>
1399
1561
 
1400
- <li class="never" data-hits="" data-linenumber="37">
1562
+ <li class="never" data-hits="" data-linenumber="24">
1401
1563
 
1402
1564
 
1403
1565
  <code class="ruby"></code>
1404
1566
  </li>
1405
1567
 
1406
- <li class="covered" data-hits="1" data-linenumber="38">
1407
- <span class="hits">1</span>
1408
-
1409
- <code class="ruby"> def define</code>
1410
- </li>
1411
-
1412
- <li class="covered" data-hits="1" data-linenumber="39">
1413
- <span class="hits">1</span>
1414
-
1415
- <code class="ruby"> in_namespace do</code>
1416
- </li>
1417
-
1418
- <li class="covered" data-hits="1" data-linenumber="40">
1419
- <span class="hits">1</span>
1420
-
1421
- <code class="ruby"> command_task</code>
1422
- </li>
1423
-
1424
- <li class="covered" data-hits="1" data-linenumber="41">
1425
- <span class="hits">1</span>
1426
-
1427
- <code class="ruby"> unless verify_command.nil?</code>
1428
- </li>
1429
-
1430
- <li class="covered" data-hits="1" data-linenumber="42">
1431
- <span class="hits">1</span>
1432
-
1433
- <code class="ruby"> needed = decorated(verify_command)</code>
1434
- </li>
1435
-
1436
- <li class="covered" data-hits="1" data-linenumber="43">
1568
+ <li class="covered" data-hits="1" data-linenumber="25">
1437
1569
  <span class="hits">1</span>
1438
1570
 
1439
- <code class="ruby"> command_task.extend NeededPredicate</code>
1571
+ <code class="ruby"> def needed?</code>
1440
1572
  </li>
1441
1573
 
1442
- <li class="covered" data-hits="1" data-linenumber="44">
1574
+ <li class="covered" data-hits="1" data-linenumber="26">
1443
1575
  <span class="hits">1</span>
1444
1576
 
1445
- <code class="ruby"> command_task.needed_predicate do</code>
1577
+ <code class="ruby"> unless verify_command.nil?</code>
1446
1578
  </li>
1447
1579
 
1448
- <li class="covered" data-hits="1" data-linenumber="45">
1580
+ <li class="covered" data-hits="1" data-linenumber="27">
1449
1581
  <span class="hits">1</span>
1450
1582
 
1451
- <code class="ruby"> !needed.succeeds?</code>
1583
+ <code class="ruby"> !decorated(verify_command).succeeds?</code>
1452
1584
  </li>
1453
1585
 
1454
- <li class="never" data-hits="" data-linenumber="46">
1586
+ <li class="never" data-hits="" data-linenumber="28">
1455
1587
 
1456
1588
 
1457
- <code class="ruby"> end</code>
1589
+ <code class="ruby"> else</code>
1458
1590
  </li>
1459
1591
 
1460
- <li class="never" data-hits="" data-linenumber="47">
1592
+ <li class="missed" data-hits="0" data-linenumber="29">
1461
1593
 
1462
1594
 
1463
- <code class="ruby"> end</code>
1595
+ <code class="ruby"> super</code>
1464
1596
  </li>
1465
1597
 
1466
- <li class="never" data-hits="" data-linenumber="48">
1598
+ <li class="never" data-hits="" data-linenumber="30">
1467
1599
 
1468
1600
 
1469
1601
  <code class="ruby"> end</code>
1470
1602
  </li>
1471
1603
 
1472
- <li class="never" data-hits="" data-linenumber="49">
1604
+ <li class="never" data-hits="" data-linenumber="31">
1473
1605
 
1474
1606
 
1475
1607
  <code class="ruby"> end</code>
1476
1608
  </li>
1477
1609
 
1478
- <li class="never" data-hits="" data-linenumber="50">
1610
+ <li class="never" data-hits="" data-linenumber="32">
1479
1611
 
1480
1612
 
1481
1613
  <code class="ruby"> end</code>
1482
1614
  </li>
1483
1615
 
1484
- <li class="never" data-hits="" data-linenumber="51">
1616
+ <li class="never" data-hits="" data-linenumber="33">
1485
1617
 
1486
1618
 
1487
1619
  <code class="ruby">end</code>
@@ -1494,11 +1626,11 @@
1494
1626
  <div class="source_table" id="151b5abc8f09f0fc2932ac98c07e3b516a518e3e">
1495
1627
  <div class="header">
1496
1628
  <h3>lib/mattock/configurable.rb</h3>
1497
- <h4><span class="green">98.7 %</span> covered</h4>
1629
+ <h4><span class="green">96.67 %</span> covered</h4>
1498
1630
  <div>
1499
- <b>77</b> relevant lines.
1500
- <span class="green"><b>76</b> lines covered</span> and
1501
- <span class="red"><b>1</b> lines missed.</span>
1631
+ <b>90</b> relevant lines.
1632
+ <span class="green"><b>87</b> lines covered</span> and
1633
+ <span class="red"><b>3</b> lines missed.</span>
1502
1634
  </div>
1503
1635
  </div>
1504
1636
 
@@ -1607,8 +1739,8 @@
1607
1739
  <code class="ruby"> def default_values</code>
1608
1740
  </li>
1609
1741
 
1610
- <li class="covered" data-hits="92" data-linenumber="18">
1611
- <span class="hits">92</span>
1742
+ <li class="covered" data-hits="97" data-linenumber="18">
1743
+ <span class="hits">97</span>
1612
1744
 
1613
1745
  <code class="ruby"> @default_values ||= {}</code>
1614
1746
  </li>
@@ -1655,14 +1787,14 @@
1655
1787
  <code class="ruby"> default_values.each_pair do |name,value|</code>
1656
1788
  </li>
1657
1789
 
1658
- <li class="covered" data-hits="42" data-linenumber="26">
1659
- <span class="hits">42</span>
1790
+ <li class="covered" data-hits="43" data-linenumber="26">
1791
+ <span class="hits">43</span>
1660
1792
 
1661
1793
  <code class="ruby"> instance.__send__(&quot;#{name}=&quot;, value)</code>
1662
1794
  </li>
1663
1795
 
1664
- <li class="covered" data-hits="42" data-linenumber="27">
1665
- <span class="hits">42</span>
1796
+ <li class="covered" data-hits="43" data-linenumber="27">
1797
+ <span class="hits">43</span>
1666
1798
 
1667
1799
  <code class="ruby"> if Configurable === value</code>
1668
1800
  </li>
@@ -1733,14 +1865,14 @@
1733
1865
  <code class="ruby"> default_values.each_pair do |name,value|</code>
1734
1866
  </li>
1735
1867
 
1736
- <li class="covered" data-hits="35" data-linenumber="39">
1737
- <span class="hits">35</span>
1868
+ <li class="covered" data-hits="36" data-linenumber="39">
1869
+ <span class="hits">36</span>
1738
1870
 
1739
1871
  <code class="ruby"> set_value = instance.__send__(name)</code>
1740
1872
  </li>
1741
1873
 
1742
- <li class="covered" data-hits="35" data-linenumber="40">
1743
- <span class="hits">35</span>
1874
+ <li class="covered" data-hits="36" data-linenumber="40">
1875
+ <span class="hits">36</span>
1744
1876
 
1745
1877
  <code class="ruby"> if value == RequiredField and set_value == RequiredField</code>
1746
1878
  </li>
@@ -1763,8 +1895,8 @@
1763
1895
  <code class="ruby"> end</code>
1764
1896
  </li>
1765
1897
 
1766
- <li class="covered" data-hits="32" data-linenumber="44">
1767
- <span class="hits">32</span>
1898
+ <li class="covered" data-hits="33" data-linenumber="44">
1899
+ <span class="hits">33</span>
1768
1900
 
1769
1901
  <code class="ruby"> if Configurable === set_value</code>
1770
1902
  </li>
@@ -1820,460 +1952,604 @@
1820
1952
  <li class="covered" data-hits="1" data-linenumber="53">
1821
1953
  <span class="hits">1</span>
1822
1954
 
1955
+ <code class="ruby"> def copy_settings(from, to)</code>
1956
+ </li>
1957
+
1958
+ <li class="covered" data-hits="3" data-linenumber="54">
1959
+ <span class="hits">3</span>
1960
+
1961
+ <code class="ruby"> if Configurable &gt; superclass</code>
1962
+ </li>
1963
+
1964
+ <li class="covered" data-hits="2" data-linenumber="55">
1965
+ <span class="hits">2</span>
1966
+
1967
+ <code class="ruby"> superclass.copy_settings(from, to)</code>
1968
+ </li>
1969
+
1970
+ <li class="never" data-hits="" data-linenumber="56">
1971
+
1972
+
1973
+ <code class="ruby"> end</code>
1974
+ </li>
1975
+
1976
+ <li class="covered" data-hits="3" data-linenumber="57">
1977
+ <span class="hits">3</span>
1978
+
1979
+ <code class="ruby"> default_values.keys.each do |field|</code>
1980
+ </li>
1981
+
1982
+ <li class="covered" data-hits="8" data-linenumber="58">
1983
+ <span class="hits">8</span>
1984
+
1985
+ <code class="ruby"> begin</code>
1986
+ </li>
1987
+
1988
+ <li class="covered" data-hits="8" data-linenumber="59">
1989
+ <span class="hits">8</span>
1990
+
1991
+ <code class="ruby"> to.__send__(&quot;#{field}=&quot;, from.__send__(field))</code>
1992
+ </li>
1993
+
1994
+ <li class="never" data-hits="" data-linenumber="60">
1995
+
1996
+
1997
+ <code class="ruby"> rescue NoMethodError</code>
1998
+ </li>
1999
+
2000
+ <li class="never" data-hits="" data-linenumber="61">
2001
+
2002
+
2003
+ <code class="ruby"> #shrug it off</code>
2004
+ </li>
2005
+
2006
+ <li class="never" data-hits="" data-linenumber="62">
2007
+
2008
+
2009
+ <code class="ruby"> end</code>
2010
+ </li>
2011
+
2012
+ <li class="never" data-hits="" data-linenumber="63">
2013
+
2014
+
2015
+ <code class="ruby"> end</code>
2016
+ </li>
2017
+
2018
+ <li class="never" data-hits="" data-linenumber="64">
2019
+
2020
+
2021
+ <code class="ruby"> end</code>
2022
+ </li>
2023
+
2024
+ <li class="never" data-hits="" data-linenumber="65">
2025
+
2026
+
2027
+ <code class="ruby"></code>
2028
+ </li>
2029
+
2030
+ <li class="covered" data-hits="1" data-linenumber="66">
2031
+ <span class="hits">1</span>
2032
+
1823
2033
  <code class="ruby"> def nested(hash=nil)</code>
1824
2034
  </li>
1825
2035
 
1826
- <li class="covered" data-hits="2" data-linenumber="54">
2036
+ <li class="covered" data-hits="2" data-linenumber="67">
1827
2037
  <span class="hits">2</span>
1828
2038
 
1829
2039
  <code class="ruby"> obj = Class.new(Struct).new</code>
1830
2040
  </li>
1831
2041
 
1832
- <li class="covered" data-hits="2" data-linenumber="55">
2042
+ <li class="covered" data-hits="2" data-linenumber="68">
1833
2043
  <span class="hits">2</span>
1834
2044
 
1835
2045
  <code class="ruby"> obj.settings(hash || {})</code>
1836
2046
  </li>
1837
2047
 
1838
- <li class="covered" data-hits="2" data-linenumber="56">
2048
+ <li class="covered" data-hits="2" data-linenumber="69">
1839
2049
  <span class="hits">2</span>
1840
2050
 
1841
2051
  <code class="ruby"> return obj</code>
1842
2052
  </li>
1843
2053
 
1844
- <li class="never" data-hits="" data-linenumber="57">
2054
+ <li class="never" data-hits="" data-linenumber="70">
1845
2055
 
1846
2056
 
1847
2057
  <code class="ruby"> end</code>
1848
2058
  </li>
1849
2059
 
1850
- <li class="never" data-hits="" data-linenumber="58">
2060
+ <li class="never" data-hits="" data-linenumber="71">
1851
2061
 
1852
2062
 
1853
2063
  <code class="ruby"></code>
1854
2064
  </li>
1855
2065
 
1856
- <li class="covered" data-hits="1" data-linenumber="59">
2066
+ <li class="covered" data-hits="1" data-linenumber="72">
1857
2067
  <span class="hits">1</span>
1858
2068
 
1859
2069
  <code class="ruby"> def nil_fields(*names)</code>
1860
2070
  </li>
1861
2071
 
1862
- <li class="covered" data-hits="2" data-linenumber="60">
2072
+ <li class="covered" data-hits="2" data-linenumber="73">
1863
2073
  <span class="hits">2</span>
1864
2074
 
1865
2075
  <code class="ruby"> names.each do |name|</code>
1866
2076
  </li>
1867
2077
 
1868
- <li class="covered" data-hits="3" data-linenumber="61">
2078
+ <li class="covered" data-hits="3" data-linenumber="74">
1869
2079
  <span class="hits">3</span>
1870
2080
 
1871
2081
  <code class="ruby"> setting(name, nil)</code>
1872
2082
  </li>
1873
2083
 
1874
- <li class="never" data-hits="" data-linenumber="62">
2084
+ <li class="never" data-hits="" data-linenumber="75">
1875
2085
 
1876
2086
 
1877
2087
  <code class="ruby"> end</code>
1878
2088
  </li>
1879
2089
 
1880
- <li class="never" data-hits="" data-linenumber="63">
2090
+ <li class="never" data-hits="" data-linenumber="76">
1881
2091
 
1882
2092
 
1883
2093
  <code class="ruby"> end</code>
1884
2094
  </li>
1885
2095
 
1886
- <li class="covered" data-hits="1" data-linenumber="64">
2096
+ <li class="covered" data-hits="1" data-linenumber="77">
1887
2097
  <span class="hits">1</span>
1888
2098
 
1889
2099
  <code class="ruby"> alias nil_field nil_fields</code>
1890
2100
  </li>
1891
2101
 
1892
- <li class="never" data-hits="" data-linenumber="65">
2102
+ <li class="never" data-hits="" data-linenumber="78">
1893
2103
 
1894
2104
 
1895
2105
  <code class="ruby"></code>
1896
2106
  </li>
1897
2107
 
1898
- <li class="covered" data-hits="1" data-linenumber="66">
2108
+ <li class="covered" data-hits="1" data-linenumber="79">
1899
2109
  <span class="hits">1</span>
1900
2110
 
1901
2111
  <code class="ruby"> def required_fields(*names)</code>
1902
2112
  </li>
1903
2113
 
1904
- <li class="covered" data-hits="2" data-linenumber="67">
2114
+ <li class="covered" data-hits="2" data-linenumber="80">
1905
2115
  <span class="hits">2</span>
1906
2116
 
1907
2117
  <code class="ruby"> names.each do |name|</code>
1908
2118
  </li>
1909
2119
 
1910
- <li class="covered" data-hits="2" data-linenumber="68">
2120
+ <li class="covered" data-hits="2" data-linenumber="81">
1911
2121
  <span class="hits">2</span>
1912
2122
 
1913
2123
  <code class="ruby"> setting(name)</code>
1914
2124
  </li>
1915
2125
 
1916
- <li class="never" data-hits="" data-linenumber="69">
2126
+ <li class="never" data-hits="" data-linenumber="82">
1917
2127
 
1918
2128
 
1919
2129
  <code class="ruby"> end</code>
1920
2130
  </li>
1921
2131
 
1922
- <li class="never" data-hits="" data-linenumber="70">
2132
+ <li class="never" data-hits="" data-linenumber="83">
1923
2133
 
1924
2134
 
1925
2135
  <code class="ruby"> end</code>
1926
2136
  </li>
1927
2137
 
1928
- <li class="covered" data-hits="1" data-linenumber="71">
2138
+ <li class="covered" data-hits="1" data-linenumber="84">
1929
2139
  <span class="hits">1</span>
1930
2140
 
1931
2141
  <code class="ruby"> alias required_field required_fields</code>
1932
2142
  </li>
1933
2143
 
1934
- <li class="never" data-hits="" data-linenumber="72">
2144
+ <li class="never" data-hits="" data-linenumber="85">
1935
2145
 
1936
2146
 
1937
2147
  <code class="ruby"></code>
1938
2148
  </li>
1939
2149
 
1940
- <li class="covered" data-hits="1" data-linenumber="73">
2150
+ <li class="covered" data-hits="1" data-linenumber="86">
1941
2151
  <span class="hits">1</span>
1942
2152
 
1943
2153
  <code class="ruby"> def setting(name, default_value = RequiredField)</code>
1944
2154
  </li>
1945
2155
 
1946
- <li class="covered" data-hits="17" data-linenumber="74">
1947
- <span class="hits">17</span>
2156
+ <li class="covered" data-hits="18" data-linenumber="87">
2157
+ <span class="hits">18</span>
1948
2158
 
1949
2159
  <code class="ruby"> name = name.to_sym</code>
1950
2160
  </li>
1951
2161
 
1952
- <li class="covered" data-hits="17" data-linenumber="75">
1953
- <span class="hits">17</span>
2162
+ <li class="covered" data-hits="18" data-linenumber="88">
2163
+ <span class="hits">18</span>
1954
2164
 
1955
2165
  <code class="ruby"> attr_accessor(name)</code>
1956
2166
  </li>
1957
2167
 
1958
- <li class="covered" data-hits="17" data-linenumber="76">
1959
- <span class="hits">17</span>
2168
+ <li class="covered" data-hits="18" data-linenumber="89">
2169
+ <span class="hits">18</span>
1960
2170
 
1961
2171
  <code class="ruby"> if default_values.has_key?(name) and default_values[name] != default_value</code>
1962
2172
  </li>
1963
2173
 
1964
- <li class="missed" data-hits="0" data-linenumber="77">
2174
+ <li class="missed" data-hits="0" data-linenumber="90">
1965
2175
 
1966
2176
 
1967
2177
  <code class="ruby"> warn &quot;Changing default value of #{self.name}##{name} from #{default_values[name].inspect} to #{default_value.inspect}&quot;</code>
1968
2178
  </li>
1969
2179
 
1970
- <li class="never" data-hits="" data-linenumber="78">
2180
+ <li class="never" data-hits="" data-linenumber="91">
1971
2181
 
1972
2182
 
1973
2183
  <code class="ruby"> end</code>
1974
2184
  </li>
1975
2185
 
1976
- <li class="covered" data-hits="17" data-linenumber="79">
1977
- <span class="hits">17</span>
2186
+ <li class="covered" data-hits="18" data-linenumber="92">
2187
+ <span class="hits">18</span>
1978
2188
 
1979
2189
  <code class="ruby"> default_values[name] = default_value</code>
1980
2190
  </li>
1981
2191
 
1982
- <li class="never" data-hits="" data-linenumber="80">
2192
+ <li class="never" data-hits="" data-linenumber="93">
1983
2193
 
1984
2194
 
1985
2195
  <code class="ruby"> end</code>
1986
2196
  </li>
1987
2197
 
1988
- <li class="never" data-hits="" data-linenumber="81">
2198
+ <li class="never" data-hits="" data-linenumber="94">
1989
2199
 
1990
2200
 
1991
2201
  <code class="ruby"></code>
1992
2202
  </li>
1993
2203
 
1994
- <li class="covered" data-hits="1" data-linenumber="82">
2204
+ <li class="covered" data-hits="1" data-linenumber="95">
1995
2205
  <span class="hits">1</span>
1996
2206
 
1997
2207
  <code class="ruby"> def settings(hash)</code>
1998
2208
  </li>
1999
2209
 
2000
- <li class="covered" data-hits="1" data-linenumber="83">
2210
+ <li class="covered" data-hits="1" data-linenumber="96">
2001
2211
  <span class="hits">1</span>
2002
2212
 
2003
2213
  <code class="ruby"> hash.each_pair do |name, value|</code>
2004
2214
  </li>
2005
2215
 
2006
- <li class="covered" data-hits="2" data-linenumber="84">
2216
+ <li class="covered" data-hits="2" data-linenumber="97">
2007
2217
  <span class="hits">2</span>
2008
2218
 
2009
2219
  <code class="ruby"> setting(name, value)</code>
2010
2220
  </li>
2011
2221
 
2012
- <li class="never" data-hits="" data-linenumber="85">
2222
+ <li class="never" data-hits="" data-linenumber="98">
2013
2223
 
2014
2224
 
2015
2225
  <code class="ruby"> end</code>
2016
2226
  </li>
2017
2227
 
2018
- <li class="covered" data-hits="1" data-linenumber="86">
2228
+ <li class="covered" data-hits="1" data-linenumber="99">
2019
2229
  <span class="hits">1</span>
2020
2230
 
2021
2231
  <code class="ruby"> return self</code>
2022
2232
  </li>
2023
2233
 
2024
- <li class="never" data-hits="" data-linenumber="87">
2234
+ <li class="never" data-hits="" data-linenumber="100">
2025
2235
 
2026
2236
 
2027
2237
  <code class="ruby"> end</code>
2028
2238
  </li>
2029
2239
 
2030
- <li class="never" data-hits="" data-linenumber="88">
2031
-
2032
-
2033
- <code class="ruby"> end</code>
2034
- </li>
2035
-
2036
- <li class="never" data-hits="" data-linenumber="89">
2240
+ <li class="never" data-hits="" data-linenumber="101">
2037
2241
 
2038
2242
 
2039
2243
  <code class="ruby"></code>
2040
2244
  </li>
2041
2245
 
2042
- <li class="covered" data-hits="1" data-linenumber="90">
2246
+ <li class="covered" data-hits="1" data-linenumber="102">
2043
2247
  <span class="hits">1</span>
2044
2248
 
2045
- <code class="ruby"> def self.included(mod)</code>
2249
+ <code class="ruby"> def included(mod)</code>
2046
2250
  </li>
2047
2251
 
2048
- <li class="covered" data-hits="3" data-linenumber="91">
2049
- <span class="hits">3</span>
2252
+ <li class="covered" data-hits="5" data-linenumber="103">
2253
+ <span class="hits">5</span>
2050
2254
 
2051
- <code class="ruby"> mod.extend ClassMethods</code>
2255
+ <code class="ruby"> mod.extend ClassMethods</code>
2052
2256
  </li>
2053
2257
 
2054
- <li class="never" data-hits="" data-linenumber="92">
2258
+ <li class="never" data-hits="" data-linenumber="104">
2055
2259
 
2056
2260
 
2057
- <code class="ruby"> end</code>
2261
+ <code class="ruby"> end</code>
2058
2262
  </li>
2059
2263
 
2060
- <li class="never" data-hits="" data-linenumber="93">
2264
+ <li class="never" data-hits="" data-linenumber="105">
2265
+
2266
+
2267
+ <code class="ruby"> end</code>
2268
+ </li>
2269
+
2270
+ <li class="covered" data-hits="1" data-linenumber="106">
2271
+ <span class="hits">1</span>
2272
+
2273
+ <code class="ruby"> extend ClassMethods</code>
2274
+ </li>
2275
+
2276
+ <li class="never" data-hits="" data-linenumber="107">
2277
+
2278
+
2279
+ <code class="ruby"></code>
2280
+ </li>
2281
+
2282
+ <li class="covered" data-hits="1" data-linenumber="108">
2283
+ <span class="hits">1</span>
2284
+
2285
+ <code class="ruby"> def copy_settings_to(other)</code>
2286
+ </li>
2287
+
2288
+ <li class="covered" data-hits="1" data-linenumber="109">
2289
+ <span class="hits">1</span>
2290
+
2291
+ <code class="ruby"> self.class.copy_settings(self, other)</code>
2292
+ </li>
2293
+
2294
+ <li class="never" data-hits="" data-linenumber="110">
2295
+
2296
+
2297
+ <code class="ruby"> end</code>
2298
+ </li>
2299
+
2300
+ <li class="never" data-hits="" data-linenumber="111">
2061
2301
 
2062
2302
 
2063
2303
  <code class="ruby"></code>
2064
2304
  </li>
2065
2305
 
2066
- <li class="covered" data-hits="1" data-linenumber="94">
2306
+ <li class="covered" data-hits="1" data-linenumber="112">
2067
2307
  <span class="hits">1</span>
2068
2308
 
2069
2309
  <code class="ruby"> def setup_defaults</code>
2070
2310
  </li>
2071
2311
 
2072
- <li class="covered" data-hits="10" data-linenumber="95">
2312
+ <li class="covered" data-hits="10" data-linenumber="113">
2073
2313
  <span class="hits">10</span>
2074
2314
 
2075
2315
  <code class="ruby"> self.class.set_defaults_on(self)</code>
2076
2316
  </li>
2077
2317
 
2078
- <li class="covered" data-hits="10" data-linenumber="96">
2318
+ <li class="covered" data-hits="10" data-linenumber="114">
2079
2319
  <span class="hits">10</span>
2080
2320
 
2081
2321
  <code class="ruby"> self</code>
2082
2322
  </li>
2083
2323
 
2084
- <li class="never" data-hits="" data-linenumber="97">
2324
+ <li class="never" data-hits="" data-linenumber="115">
2085
2325
 
2086
2326
 
2087
2327
  <code class="ruby"> end</code>
2088
2328
  </li>
2089
2329
 
2090
- <li class="never" data-hits="" data-linenumber="98">
2330
+ <li class="never" data-hits="" data-linenumber="116">
2091
2331
 
2092
2332
 
2093
2333
  <code class="ruby"></code>
2094
2334
  </li>
2095
2335
 
2096
- <li class="covered" data-hits="1" data-linenumber="99">
2336
+ <li class="covered" data-hits="1" data-linenumber="117">
2097
2337
  <span class="hits">1</span>
2098
2338
 
2099
2339
  <code class="ruby"> def check_required</code>
2100
2340
  </li>
2101
2341
 
2102
- <li class="covered" data-hits="9" data-linenumber="100">
2342
+ <li class="covered" data-hits="9" data-linenumber="118">
2103
2343
  <span class="hits">9</span>
2104
2344
 
2105
2345
  <code class="ruby"> missing = self.class.missing_required_fields_on(self)</code>
2106
2346
  </li>
2107
2347
 
2108
- <li class="covered" data-hits="9" data-linenumber="101">
2348
+ <li class="covered" data-hits="9" data-linenumber="119">
2109
2349
  <span class="hits">9</span>
2110
2350
 
2111
2351
  <code class="ruby"> unless missing.empty?</code>
2112
2352
  </li>
2113
2353
 
2114
- <li class="covered" data-hits="2" data-linenumber="102">
2115
- <span class="hits">2</span>
2354
+ <li class="covered" data-hits="5" data-linenumber="120">
2355
+ <span class="hits">5</span>
2116
2356
 
2117
- <code class="ruby"> raise &quot;Required field#{missing.length &gt; 1 ? &quot;s&quot; : &quot;&quot;} #{missing.join(&quot;, &quot;)} unset on #{self.inspect}&quot;</code>
2357
+ <code class="ruby"> raise &quot;Required field#{missing.length &gt; 1 ? &quot;s&quot; : &quot;&quot;} #{missing.map{|field| field.to_s.inspect}.join(&quot;, &quot;)} unset on #{self.inspect}&quot;</code>
2118
2358
  </li>
2119
2359
 
2120
- <li class="never" data-hits="" data-linenumber="103">
2360
+ <li class="never" data-hits="" data-linenumber="121">
2121
2361
 
2122
2362
 
2123
2363
  <code class="ruby"> end</code>
2124
2364
  </li>
2125
2365
 
2126
- <li class="covered" data-hits="7" data-linenumber="104">
2366
+ <li class="covered" data-hits="7" data-linenumber="122">
2127
2367
  <span class="hits">7</span>
2128
2368
 
2129
2369
  <code class="ruby"> self</code>
2130
2370
  </li>
2131
2371
 
2132
- <li class="never" data-hits="" data-linenumber="105">
2372
+ <li class="never" data-hits="" data-linenumber="123">
2133
2373
 
2134
2374
 
2135
2375
  <code class="ruby"> end</code>
2136
2376
  </li>
2137
2377
 
2138
- <li class="never" data-hits="" data-linenumber="106">
2378
+ <li class="never" data-hits="" data-linenumber="124">
2139
2379
 
2140
2380
 
2141
2381
  <code class="ruby"></code>
2142
2382
  </li>
2143
2383
 
2144
- <li class="covered" data-hits="1" data-linenumber="107">
2384
+ <li class="covered" data-hits="1" data-linenumber="125">
2145
2385
  <span class="hits">1</span>
2146
2386
 
2147
2387
  <code class="ruby"> def setting(name, default_value = nil)</code>
2148
2388
  </li>
2149
2389
 
2150
- <li class="covered" data-hits="3" data-linenumber="108">
2390
+ <li class="covered" data-hits="3" data-linenumber="126">
2151
2391
  <span class="hits">3</span>
2152
2392
 
2153
2393
  <code class="ruby"> self.class.setting(name, default_value)</code>
2154
2394
  </li>
2155
2395
 
2156
- <li class="covered" data-hits="3" data-linenumber="109">
2396
+ <li class="covered" data-hits="3" data-linenumber="127">
2157
2397
  <span class="hits">3</span>
2158
2398
 
2159
2399
  <code class="ruby"> instance_variable_set(&quot;@#{name}&quot;, default_value)</code>
2160
2400
  </li>
2161
2401
 
2162
- <li class="never" data-hits="" data-linenumber="110">
2402
+ <li class="never" data-hits="" data-linenumber="128">
2163
2403
 
2164
2404
 
2165
2405
  <code class="ruby"> end</code>
2166
2406
  </li>
2167
2407
 
2168
- <li class="never" data-hits="" data-linenumber="111">
2408
+ <li class="never" data-hits="" data-linenumber="129">
2169
2409
 
2170
2410
 
2171
2411
  <code class="ruby"></code>
2172
2412
  </li>
2173
2413
 
2174
- <li class="covered" data-hits="1" data-linenumber="112">
2414
+ <li class="covered" data-hits="1" data-linenumber="130">
2175
2415
  <span class="hits">1</span>
2176
2416
 
2177
2417
  <code class="ruby"> def settings(hash)</code>
2178
2418
  </li>
2179
2419
 
2180
- <li class="covered" data-hits="2" data-linenumber="113">
2420
+ <li class="covered" data-hits="2" data-linenumber="131">
2181
2421
  <span class="hits">2</span>
2182
2422
 
2183
2423
  <code class="ruby"> hash.each_pair do |name, value|</code>
2184
2424
  </li>
2185
2425
 
2186
- <li class="covered" data-hits="3" data-linenumber="114">
2426
+ <li class="covered" data-hits="3" data-linenumber="132">
2187
2427
  <span class="hits">3</span>
2188
2428
 
2189
2429
  <code class="ruby"> setting(name, value)</code>
2190
2430
  </li>
2191
2431
 
2192
- <li class="never" data-hits="" data-linenumber="115">
2432
+ <li class="never" data-hits="" data-linenumber="133">
2193
2433
 
2194
2434
 
2195
2435
  <code class="ruby"> end</code>
2196
2436
  </li>
2197
2437
 
2198
- <li class="covered" data-hits="2" data-linenumber="116">
2438
+ <li class="covered" data-hits="2" data-linenumber="134">
2199
2439
  <span class="hits">2</span>
2200
2440
 
2201
2441
  <code class="ruby"> return self</code>
2202
2442
  </li>
2203
2443
 
2204
- <li class="never" data-hits="" data-linenumber="117">
2444
+ <li class="never" data-hits="" data-linenumber="135">
2205
2445
 
2206
2446
 
2207
2447
  <code class="ruby"> end</code>
2208
2448
  </li>
2209
2449
 
2210
- <li class="never" data-hits="" data-linenumber="118">
2450
+ <li class="never" data-hits="" data-linenumber="136">
2211
2451
 
2212
2452
 
2213
2453
  <code class="ruby"></code>
2214
2454
  </li>
2215
2455
 
2216
- <li class="covered" data-hits="1" data-linenumber="119">
2456
+ <li class="covered" data-hits="1" data-linenumber="137">
2217
2457
  <span class="hits">1</span>
2218
2458
 
2219
2459
  <code class="ruby"> def required_fields(*names)</code>
2220
2460
  </li>
2221
2461
 
2222
- <li class="covered" data-hits="1" data-linenumber="120">
2462
+ <li class="covered" data-hits="1" data-linenumber="138">
2223
2463
  <span class="hits">1</span>
2224
2464
 
2225
2465
  <code class="ruby"> self.class.required_fields(*names)</code>
2226
2466
  </li>
2227
2467
 
2228
- <li class="covered" data-hits="1" data-linenumber="121">
2468
+ <li class="covered" data-hits="1" data-linenumber="139">
2229
2469
  <span class="hits">1</span>
2230
2470
 
2231
2471
  <code class="ruby"> self</code>
2232
2472
  </li>
2233
2473
 
2234
- <li class="never" data-hits="" data-linenumber="122">
2474
+ <li class="never" data-hits="" data-linenumber="140">
2235
2475
 
2236
2476
 
2237
2477
  <code class="ruby"> end</code>
2238
2478
  </li>
2239
2479
 
2240
- <li class="covered" data-hits="1" data-linenumber="123">
2480
+ <li class="covered" data-hits="1" data-linenumber="141">
2241
2481
  <span class="hits">1</span>
2242
2482
 
2243
2483
  <code class="ruby"> alias required_field required_fields</code>
2244
2484
  </li>
2245
2485
 
2246
- <li class="never" data-hits="" data-linenumber="124">
2486
+ <li class="never" data-hits="" data-linenumber="142">
2247
2487
 
2248
2488
 
2249
2489
  <code class="ruby"></code>
2250
2490
  </li>
2251
2491
 
2252
- <li class="covered" data-hits="1" data-linenumber="125">
2492
+ <li class="covered" data-hits="1" data-linenumber="143">
2493
+ <span class="hits">1</span>
2494
+
2495
+ <code class="ruby"> def nil_fields(*names)</code>
2496
+ </li>
2497
+
2498
+ <li class="missed" data-hits="0" data-linenumber="144">
2499
+
2500
+
2501
+ <code class="ruby"> self.class.nil_fields(*names)</code>
2502
+ </li>
2503
+
2504
+ <li class="missed" data-hits="0" data-linenumber="145">
2505
+
2506
+
2507
+ <code class="ruby"> self</code>
2508
+ </li>
2509
+
2510
+ <li class="never" data-hits="" data-linenumber="146">
2511
+
2512
+
2513
+ <code class="ruby"> end</code>
2514
+ </li>
2515
+
2516
+ <li class="covered" data-hits="1" data-linenumber="147">
2517
+ <span class="hits">1</span>
2518
+
2519
+ <code class="ruby"> alias nil_field nil_fields</code>
2520
+ </li>
2521
+
2522
+ <li class="never" data-hits="" data-linenumber="148">
2523
+
2524
+
2525
+ <code class="ruby"></code>
2526
+ </li>
2527
+
2528
+ <li class="covered" data-hits="1" data-linenumber="149">
2253
2529
  <span class="hits">1</span>
2254
2530
 
2255
2531
  <code class="ruby"> class Struct</code>
2256
2532
  </li>
2257
2533
 
2258
- <li class="covered" data-hits="1" data-linenumber="126">
2534
+ <li class="covered" data-hits="1" data-linenumber="150">
2259
2535
  <span class="hits">1</span>
2260
2536
 
2261
2537
  <code class="ruby"> include Configurable</code>
2262
2538
  </li>
2263
2539
 
2264
- <li class="never" data-hits="" data-linenumber="127">
2540
+ <li class="never" data-hits="" data-linenumber="151">
2265
2541
 
2266
2542
 
2267
2543
  <code class="ruby"> end</code>
2268
2544
  </li>
2269
2545
 
2270
- <li class="never" data-hits="" data-linenumber="128">
2546
+ <li class="never" data-hits="" data-linenumber="152">
2271
2547
 
2272
2548
 
2273
2549
  <code class="ruby"> end</code>
2274
2550
  </li>
2275
2551
 
2276
- <li class="never" data-hits="" data-linenumber="129">
2552
+ <li class="never" data-hits="" data-linenumber="153">
2277
2553
 
2278
2554
 
2279
2555
  <code class="ruby">end</code>
@@ -2481,13 +2757,13 @@
2481
2757
  </pre>
2482
2758
  </div>
2483
2759
 
2484
- <div class="source_table" id="a2c73f0ba96e60116ee8696673802b6ebaddc38c">
2760
+ <div class="source_table" id="7cc8f09739f0b95d0fd16321baf73b5d3c6eb35b">
2485
2761
  <div class="header">
2486
- <h3>lib/mattock/tasklib.rb</h3>
2487
- <h4><span class="green">97.5 %</span> covered</h4>
2762
+ <h3>lib/mattock/task.rb</h3>
2763
+ <h4><span class="green">94.74 %</span> covered</h4>
2488
2764
  <div>
2489
- <b>40</b> relevant lines.
2490
- <span class="green"><b>39</b> lines covered</span> and
2765
+ <b>19</b> relevant lines.
2766
+ <span class="green"><b>18</b> lines covered</span> and
2491
2767
  <span class="red"><b>1</b> lines missed.</span>
2492
2768
  </div>
2493
2769
  </div>
@@ -2498,91 +2774,91 @@
2498
2774
  <li class="covered" data-hits="1" data-linenumber="1">
2499
2775
  <span class="hits">1</span>
2500
2776
 
2501
- <code class="ruby">require 'ostruct'</code>
2777
+ <code class="ruby">require 'mattock/cascading-definition'</code>
2502
2778
  </li>
2503
2779
 
2504
2780
  <li class="covered" data-hits="1" data-linenumber="2">
2505
2781
  <span class="hits">1</span>
2506
2782
 
2507
- <code class="ruby">require 'rake/tasklib'</code>
2508
- </li>
2509
-
2510
- <li class="covered" data-hits="1" data-linenumber="3">
2511
- <span class="hits">1</span>
2512
-
2513
- <code class="ruby">require 'mattock/configurable'</code>
2783
+ <code class="ruby">require 'rake/task'</code>
2514
2784
  </li>
2515
2785
 
2516
- <li class="never" data-hits="" data-linenumber="4">
2786
+ <li class="never" data-hits="" data-linenumber="3">
2517
2787
 
2518
2788
 
2519
2789
  <code class="ruby"></code>
2520
2790
  </li>
2521
2791
 
2522
- <li class="covered" data-hits="1" data-linenumber="5">
2792
+ <li class="covered" data-hits="1" data-linenumber="4">
2523
2793
  <span class="hits">1</span>
2524
2794
 
2525
2795
  <code class="ruby">module Mattock</code>
2526
2796
  </li>
2527
2797
 
2528
- <li class="covered" data-hits="1" data-linenumber="6">
2798
+ <li class="covered" data-hits="1" data-linenumber="5">
2529
2799
  <span class="hits">1</span>
2530
2800
 
2531
- <code class="ruby"> class TaskLib &lt; Rake::TaskLib</code>
2801
+ <code class="ruby"> class Task &lt; Rake::Task</code>
2532
2802
  </li>
2533
2803
 
2534
- <li class="covered" data-hits="1" data-linenumber="7">
2804
+ <li class="covered" data-hits="1" data-linenumber="6">
2535
2805
  <span class="hits">1</span>
2536
2806
 
2537
- <code class="ruby"> include Configurable</code>
2807
+ <code class="ruby"> include CascadingDefinition</code>
2538
2808
  </li>
2539
2809
 
2540
- <li class="never" data-hits="" data-linenumber="8">
2810
+ <li class="never" data-hits="" data-linenumber="7">
2541
2811
 
2542
2812
 
2543
2813
  <code class="ruby"></code>
2544
2814
  </li>
2545
2815
 
2546
- <li class="covered" data-hits="1" data-linenumber="9">
2816
+ <li class="covered" data-hits="1" data-linenumber="8">
2547
2817
  <span class="hits">1</span>
2548
2818
 
2549
- <code class="ruby"> attr_writer :namespace_name</code>
2819
+ <code class="ruby"> setting :task_name</code>
2550
2820
  </li>
2551
2821
 
2552
- <li class="covered" data-hits="1" data-linenumber="10">
2553
- <span class="hits">1</span>
2822
+ <li class="never" data-hits="" data-linenumber="9">
2554
2823
 
2555
- <code class="ruby"> def self.default_namespace(name)</code>
2824
+
2825
+ <code class="ruby"></code>
2556
2826
  </li>
2557
2827
 
2558
- <li class="covered" data-hits="1" data-linenumber="11">
2828
+ <li class="covered" data-hits="1" data-linenumber="10">
2559
2829
  <span class="hits">1</span>
2560
2830
 
2561
- <code class="ruby"> setting(:namespace_name, name)</code>
2831
+ <code class="ruby"> def action</code>
2562
2832
  </li>
2563
2833
 
2564
- <li class="never" data-hits="" data-linenumber="12">
2834
+ <li class="never" data-hits="" data-linenumber="11">
2565
2835
 
2566
2836
 
2567
2837
  <code class="ruby"> end</code>
2568
2838
  </li>
2569
2839
 
2570
- <li class="never" data-hits="" data-linenumber="13">
2840
+ <li class="never" data-hits="" data-linenumber="12">
2571
2841
 
2572
2842
 
2573
2843
  <code class="ruby"></code>
2574
2844
  </li>
2575
2845
 
2846
+ <li class="covered" data-hits="1" data-linenumber="13">
2847
+ <span class="hits">1</span>
2848
+
2849
+ <code class="ruby"> def task_args</code>
2850
+ </li>
2851
+
2576
2852
  <li class="covered" data-hits="1" data-linenumber="14">
2577
2853
  <span class="hits">1</span>
2578
2854
 
2579
- <code class="ruby"> def initialize(*tasklibs)</code>
2855
+ <code class="ruby"> [task_name]</code>
2580
2856
  </li>
2581
2857
 
2582
- <li class="covered" data-hits="6" data-linenumber="15">
2583
- <span class="hits">6</span>
2858
+ <li class="never" data-hits="" data-linenumber="15">
2584
2859
 
2585
- <code class="ruby"> @tasks = []</code>
2860
+
2861
+ <code class="ruby"> end</code>
2586
2862
  </li>
2587
2863
 
2588
2864
  <li class="never" data-hits="" data-linenumber="16">
@@ -2591,64 +2867,64 @@
2591
2867
  <code class="ruby"></code>
2592
2868
  </li>
2593
2869
 
2594
- <li class="covered" data-hits="6" data-linenumber="17">
2595
- <span class="hits">6</span>
2870
+ <li class="covered" data-hits="1" data-linenumber="17">
2871
+ <span class="hits">1</span>
2596
2872
 
2597
- <code class="ruby"> default_configuration(*tasklibs)</code>
2873
+ <code class="ruby"> def task_class</code>
2598
2874
  </li>
2599
2875
 
2600
- <li class="never" data-hits="" data-linenumber="18">
2601
-
2876
+ <li class="covered" data-hits="1" data-linenumber="18">
2877
+ <span class="hits">1</span>
2602
2878
 
2603
- <code class="ruby"></code>
2879
+ <code class="ruby"> return @task_class if @task_class</code>
2604
2880
  </li>
2605
2881
 
2606
- <li class="covered" data-hits="6" data-linenumber="19">
2607
- <span class="hits">6</span>
2882
+ <li class="covered" data-hits="1" data-linenumber="19">
2883
+ <span class="hits">1</span>
2608
2884
 
2609
- <code class="ruby"> yield self if block_given?</code>
2885
+ <code class="ruby"> @task_class = Class.new(self.class) do</code>
2610
2886
  </li>
2611
2887
 
2612
- <li class="never" data-hits="" data-linenumber="20">
2613
-
2888
+ <li class="covered" data-hits="1" data-linenumber="20">
2889
+ <span class="hits">1</span>
2614
2890
 
2615
- <code class="ruby"></code>
2891
+ <code class="ruby"> define_method :initialize, Rake::Task.instance_method(:initialize)</code>
2616
2892
  </li>
2617
2893
 
2618
- <li class="covered" data-hits="6" data-linenumber="21">
2619
- <span class="hits">6</span>
2894
+ <li class="never" data-hits="" data-linenumber="21">
2620
2895
 
2621
- <code class="ruby"> resolve_configuration</code>
2896
+
2897
+ <code class="ruby"> end</code>
2622
2898
  </li>
2623
2899
 
2624
2900
  <li class="never" data-hits="" data-linenumber="22">
2625
2901
 
2626
2902
 
2627
- <code class="ruby"></code>
2903
+ <code class="ruby"> end</code>
2628
2904
  </li>
2629
2905
 
2630
- <li class="covered" data-hits="6" data-linenumber="23">
2631
- <span class="hits">6</span>
2906
+ <li class="never" data-hits="" data-linenumber="23">
2632
2907
 
2633
- <code class="ruby"> define</code>
2908
+
2909
+ <code class="ruby"></code>
2634
2910
  </li>
2635
2911
 
2636
- <li class="never" data-hits="" data-linenumber="24">
2637
-
2912
+ <li class="covered" data-hits="1" data-linenumber="24">
2913
+ <span class="hits">1</span>
2638
2914
 
2639
- <code class="ruby"> end</code>
2915
+ <code class="ruby"> def inspect</code>
2640
2916
  </li>
2641
2917
 
2642
- <li class="never" data-hits="" data-linenumber="25">
2918
+ <li class="missed" data-hits="0" data-linenumber="25">
2643
2919
 
2644
2920
 
2645
- <code class="ruby"></code>
2921
+ <code class="ruby"> &quot;Mattock::Task&quot;</code>
2646
2922
  </li>
2647
2923
 
2648
- <li class="covered" data-hits="1" data-linenumber="26">
2649
- <span class="hits">1</span>
2924
+ <li class="never" data-hits="" data-linenumber="26">
2650
2925
 
2651
- <code class="ruby"> attr_reader :tasks</code>
2926
+
2927
+ <code class="ruby"> end</code>
2652
2928
  </li>
2653
2929
 
2654
2930
  <li class="never" data-hits="" data-linenumber="27">
@@ -2660,292 +2936,406 @@
2660
2936
  <li class="covered" data-hits="1" data-linenumber="28">
2661
2937
  <span class="hits">1</span>
2662
2938
 
2663
- <code class="ruby"> def task(*args)</code>
2939
+ <code class="ruby"> def define</code>
2664
2940
  </li>
2665
2941
 
2666
- <li class="covered" data-hits="11" data-linenumber="29">
2667
- <span class="hits">11</span>
2942
+ <li class="covered" data-hits="1" data-linenumber="29">
2943
+ <span class="hits">1</span>
2668
2944
 
2669
- <code class="ruby"> a_task = super</code>
2945
+ <code class="ruby"> task =task_class.define_task(*task_args) do</code>
2670
2946
  </li>
2671
2947
 
2672
- <li class="covered" data-hits="11" data-linenumber="30">
2673
- <span class="hits">11</span>
2948
+ <li class="covered" data-hits="1" data-linenumber="30">
2949
+ <span class="hits">1</span>
2674
2950
 
2675
- <code class="ruby"> @tasks &lt;&lt; a_task</code>
2951
+ <code class="ruby"> action</code>
2676
2952
  </li>
2677
2953
 
2678
- <li class="covered" data-hits="11" data-linenumber="31">
2679
- <span class="hits">11</span>
2954
+ <li class="never" data-hits="" data-linenumber="31">
2680
2955
 
2681
- <code class="ruby"> return a_task</code>
2956
+
2957
+ <code class="ruby"> end</code>
2682
2958
  </li>
2683
2959
 
2684
- <li class="never" data-hits="" data-linenumber="32">
2685
-
2960
+ <li class="covered" data-hits="1" data-linenumber="32">
2961
+ <span class="hits">1</span>
2686
2962
 
2687
- <code class="ruby"> end</code>
2963
+ <code class="ruby"> copy_settings_to(task)</code>
2688
2964
  </li>
2689
2965
 
2690
2966
  <li class="never" data-hits="" data-linenumber="33">
2691
2967
 
2692
2968
 
2693
- <code class="ruby"></code>
2969
+ <code class="ruby"> end</code>
2694
2970
  </li>
2695
2971
 
2696
- <li class="covered" data-hits="1" data-linenumber="34">
2697
- <span class="hits">1</span>
2972
+ <li class="never" data-hits="" data-linenumber="34">
2698
2973
 
2699
- <code class="ruby"> def default_configuration(*tasklibs)</code>
2974
+
2975
+ <code class="ruby"> end</code>
2700
2976
  </li>
2701
2977
 
2702
- <li class="covered" data-hits="6" data-linenumber="35">
2703
- <span class="hits">6</span>
2978
+ <li class="never" data-hits="" data-linenumber="35">
2704
2979
 
2705
- <code class="ruby"> setup_defaults</code>
2980
+
2981
+ <code class="ruby">end</code>
2706
2982
  </li>
2707
2983
 
2708
- <li class="never" data-hits="" data-linenumber="36">
2984
+ </ol>
2985
+ </pre>
2986
+ </div>
2987
+
2988
+ <div class="source_table" id="a2c73f0ba96e60116ee8696673802b6ebaddc38c">
2989
+ <div class="header">
2990
+ <h3>lib/mattock/tasklib.rb</h3>
2991
+ <h4><span class="green">96.77 %</span> covered</h4>
2992
+ <div>
2993
+ <b>31</b> relevant lines.
2994
+ <span class="green"><b>30</b> lines covered</span> and
2995
+ <span class="red"><b>1</b> lines missed.</span>
2996
+ </div>
2997
+ </div>
2998
+
2999
+ <pre>
3000
+ <ol>
3001
+
3002
+ <li class="covered" data-hits="1" data-linenumber="1">
3003
+ <span class="hits">1</span>
2709
3004
 
3005
+ <code class="ruby">require 'rake/tasklib'</code>
3006
+ </li>
3007
+
3008
+ <li class="covered" data-hits="1" data-linenumber="2">
3009
+ <span class="hits">1</span>
2710
3010
 
2711
- <code class="ruby"> end</code>
3011
+ <code class="ruby">require 'mattock/cascading-definition'</code>
2712
3012
  </li>
2713
3013
 
2714
- <li class="never" data-hits="" data-linenumber="37">
3014
+ <li class="never" data-hits="" data-linenumber="3">
2715
3015
 
2716
3016
 
2717
3017
  <code class="ruby"></code>
2718
3018
  </li>
2719
3019
 
2720
- <li class="covered" data-hits="1" data-linenumber="38">
3020
+ <li class="covered" data-hits="1" data-linenumber="4">
2721
3021
  <span class="hits">1</span>
2722
3022
 
2723
- <code class="ruby"> def resolve_configuration</code>
3023
+ <code class="ruby">module Mattock</code>
2724
3024
  </li>
2725
3025
 
2726
- <li class="covered" data-hits="6" data-linenumber="39">
2727
- <span class="hits">6</span>
3026
+ <li class="covered" data-hits="1" data-linenumber="5">
3027
+ <span class="hits">1</span>
2728
3028
 
2729
- <code class="ruby"> check_required</code>
3029
+ <code class="ruby"> class TaskLib &lt; Rake::TaskLib</code>
2730
3030
  </li>
2731
3031
 
2732
- <li class="never" data-hits="" data-linenumber="40">
2733
-
3032
+ <li class="covered" data-hits="1" data-linenumber="6">
3033
+ <span class="hits">1</span>
2734
3034
 
2735
- <code class="ruby"> end</code>
3035
+ <code class="ruby"> include CascadingDefinition</code>
2736
3036
  </li>
2737
3037
 
2738
- <li class="never" data-hits="" data-linenumber="41">
3038
+ <li class="never" data-hits="" data-linenumber="7">
2739
3039
 
2740
3040
 
2741
3041
  <code class="ruby"></code>
2742
3042
  </li>
2743
3043
 
2744
- <li class="covered" data-hits="1" data-linenumber="42">
3044
+ <li class="covered" data-hits="1" data-linenumber="8">
2745
3045
  <span class="hits">1</span>
2746
3046
 
2747
- <code class="ruby"> def define</code>
3047
+ <code class="ruby"> attr_writer :namespace_name</code>
2748
3048
  </li>
2749
3049
 
2750
- <li class="never" data-hits="" data-linenumber="43">
3050
+ <li class="covered" data-hits="1" data-linenumber="9">
3051
+ <span class="hits">1</span>
3052
+
3053
+ <code class="ruby"> def self.default_namespace(name)</code>
3054
+ </li>
3055
+
3056
+ <li class="covered" data-hits="1" data-linenumber="10">
3057
+ <span class="hits">1</span>
3058
+
3059
+ <code class="ruby"> setting(:namespace_name, name)</code>
3060
+ </li>
3061
+
3062
+ <li class="never" data-hits="" data-linenumber="11">
2751
3063
 
2752
3064
 
2753
3065
  <code class="ruby"> end</code>
2754
3066
  </li>
2755
3067
 
2756
- <li class="never" data-hits="" data-linenumber="44">
3068
+ <li class="never" data-hits="" data-linenumber="12">
2757
3069
 
2758
3070
 
2759
3071
  <code class="ruby"></code>
2760
3072
  </li>
2761
3073
 
2762
- <li class="covered" data-hits="1" data-linenumber="45">
3074
+ <li class="covered" data-hits="1" data-linenumber="13">
3075
+ <span class="hits">1</span>
3076
+
3077
+ <code class="ruby"> attr_reader :tasks</code>
3078
+ </li>
3079
+
3080
+ <li class="never" data-hits="" data-linenumber="14">
3081
+
3082
+
3083
+ <code class="ruby"></code>
3084
+ </li>
3085
+
3086
+ <li class="covered" data-hits="1" data-linenumber="15">
3087
+ <span class="hits">1</span>
3088
+
3089
+ <code class="ruby"> def initialize(*toolkits)</code>
3090
+ </li>
3091
+
3092
+ <li class="covered" data-hits="5" data-linenumber="16">
3093
+ <span class="hits">5</span>
3094
+
3095
+ <code class="ruby"> @tasks = []</code>
3096
+ </li>
3097
+
3098
+ <li class="covered" data-hits="5" data-linenumber="17">
3099
+ <span class="hits">5</span>
3100
+
3101
+ <code class="ruby"> super</code>
3102
+ </li>
3103
+
3104
+ <li class="never" data-hits="" data-linenumber="18">
3105
+
3106
+
3107
+ <code class="ruby"> end</code>
3108
+ </li>
3109
+
3110
+ <li class="never" data-hits="" data-linenumber="19">
3111
+
3112
+
3113
+ <code class="ruby"></code>
3114
+ </li>
3115
+
3116
+ <li class="covered" data-hits="1" data-linenumber="20">
3117
+ <span class="hits">1</span>
3118
+
3119
+ <code class="ruby"> def task(*args)</code>
3120
+ </li>
3121
+
3122
+ <li class="covered" data-hits="10" data-linenumber="21">
3123
+ <span class="hits">10</span>
3124
+
3125
+ <code class="ruby"> a_task = super</code>
3126
+ </li>
3127
+
3128
+ <li class="covered" data-hits="10" data-linenumber="22">
3129
+ <span class="hits">10</span>
3130
+
3131
+ <code class="ruby"> @tasks &lt;&lt; a_task</code>
3132
+ </li>
3133
+
3134
+ <li class="covered" data-hits="10" data-linenumber="23">
3135
+ <span class="hits">10</span>
3136
+
3137
+ <code class="ruby"> return a_task</code>
3138
+ </li>
3139
+
3140
+ <li class="never" data-hits="" data-linenumber="24">
3141
+
3142
+
3143
+ <code class="ruby"> end</code>
3144
+ </li>
3145
+
3146
+ <li class="never" data-hits="" data-linenumber="25">
3147
+
3148
+
3149
+ <code class="ruby"></code>
3150
+ </li>
3151
+
3152
+ <li class="covered" data-hits="1" data-linenumber="26">
2763
3153
  <span class="hits">1</span>
2764
3154
 
2765
3155
  <code class="ruby"> def in_namespace(*tasknames)</code>
2766
3156
  </li>
2767
3157
 
2768
- <li class="covered" data-hits="11" data-linenumber="46">
2769
- <span class="hits">11</span>
3158
+ <li class="covered" data-hits="10" data-linenumber="27">
3159
+ <span class="hits">10</span>
2770
3160
 
2771
3161
  <code class="ruby"> if tasknames.empty?</code>
2772
3162
  </li>
2773
3163
 
2774
- <li class="covered" data-hits="6" data-linenumber="47">
2775
- <span class="hits">6</span>
3164
+ <li class="covered" data-hits="5" data-linenumber="28">
3165
+ <span class="hits">5</span>
2776
3166
 
2777
3167
  <code class="ruby"> if block_given?</code>
2778
3168
  </li>
2779
3169
 
2780
- <li class="covered" data-hits="6" data-linenumber="48">
2781
- <span class="hits">6</span>
3170
+ <li class="covered" data-hits="5" data-linenumber="29">
3171
+ <span class="hits">5</span>
2782
3172
 
2783
3173
  <code class="ruby"> if @namespace_name.nil?</code>
2784
3174
  </li>
2785
3175
 
2786
- <li class="missed" data-hits="0" data-linenumber="49">
3176
+ <li class="missed" data-hits="0" data-linenumber="30">
2787
3177
 
2788
3178
 
2789
3179
  <code class="ruby"> yield</code>
2790
3180
  </li>
2791
3181
 
2792
- <li class="never" data-hits="" data-linenumber="50">
3182
+ <li class="never" data-hits="" data-linenumber="31">
2793
3183
 
2794
3184
 
2795
3185
  <code class="ruby"> else</code>
2796
3186
  </li>
2797
3187
 
2798
- <li class="covered" data-hits="6" data-linenumber="51">
2799
- <span class="hits">6</span>
3188
+ <li class="covered" data-hits="5" data-linenumber="32">
3189
+ <span class="hits">5</span>
2800
3190
 
2801
3191
  <code class="ruby"> namespace @namespace_name do</code>
2802
3192
  </li>
2803
3193
 
2804
- <li class="covered" data-hits="6" data-linenumber="52">
2805
- <span class="hits">6</span>
3194
+ <li class="covered" data-hits="5" data-linenumber="33">
3195
+ <span class="hits">5</span>
2806
3196
 
2807
3197
  <code class="ruby"> yield</code>
2808
3198
  </li>
2809
3199
 
2810
- <li class="never" data-hits="" data-linenumber="53">
3200
+ <li class="never" data-hits="" data-linenumber="34">
2811
3201
 
2812
3202
 
2813
3203
  <code class="ruby"> end</code>
2814
3204
  </li>
2815
3205
 
2816
- <li class="never" data-hits="" data-linenumber="54">
3206
+ <li class="never" data-hits="" data-linenumber="35">
2817
3207
 
2818
3208
 
2819
3209
  <code class="ruby"> end</code>
2820
3210
  </li>
2821
3211
 
2822
- <li class="never" data-hits="" data-linenumber="55">
3212
+ <li class="never" data-hits="" data-linenumber="36">
2823
3213
 
2824
3214
 
2825
3215
  <code class="ruby"> end</code>
2826
3216
  </li>
2827
3217
 
2828
- <li class="never" data-hits="" data-linenumber="56">
3218
+ <li class="never" data-hits="" data-linenumber="37">
2829
3219
 
2830
3220
 
2831
3221
  <code class="ruby"> else</code>
2832
3222
  </li>
2833
3223
 
2834
- <li class="covered" data-hits="5" data-linenumber="57">
3224
+ <li class="covered" data-hits="5" data-linenumber="38">
2835
3225
  <span class="hits">5</span>
2836
3226
 
2837
3227
  <code class="ruby"> tasknames.map do |taskname|</code>
2838
3228
  </li>
2839
3229
 
2840
- <li class="covered" data-hits="5" data-linenumber="58">
3230
+ <li class="covered" data-hits="5" data-linenumber="39">
2841
3231
  <span class="hits">5</span>
2842
3232
 
2843
3233
  <code class="ruby"> [@namespace_name, taskname].compact.join(&quot;:&quot;)</code>
2844
3234
  </li>
2845
3235
 
2846
- <li class="never" data-hits="" data-linenumber="59">
3236
+ <li class="never" data-hits="" data-linenumber="40">
2847
3237
 
2848
3238
 
2849
3239
  <code class="ruby"> end</code>
2850
3240
  </li>
2851
3241
 
2852
- <li class="never" data-hits="" data-linenumber="60">
3242
+ <li class="never" data-hits="" data-linenumber="41">
2853
3243
 
2854
3244
 
2855
3245
  <code class="ruby"> end</code>
2856
3246
  </li>
2857
3247
 
2858
- <li class="never" data-hits="" data-linenumber="61">
3248
+ <li class="never" data-hits="" data-linenumber="42">
2859
3249
 
2860
3250
 
2861
3251
  <code class="ruby"> end</code>
2862
3252
  </li>
2863
3253
 
2864
- <li class="never" data-hits="" data-linenumber="62">
3254
+ <li class="never" data-hits="" data-linenumber="43">
2865
3255
 
2866
3256
 
2867
3257
  <code class="ruby"></code>
2868
3258
  </li>
2869
3259
 
2870
- <li class="covered" data-hits="1" data-linenumber="63">
3260
+ <li class="covered" data-hits="1" data-linenumber="44">
2871
3261
  <span class="hits">1</span>
2872
3262
 
2873
3263
  <code class="ruby"> def root_task</code>
2874
3264
  </li>
2875
3265
 
2876
- <li class="covered" data-hits="5" data-linenumber="64">
3266
+ <li class="covered" data-hits="5" data-linenumber="45">
2877
3267
  <span class="hits">5</span>
2878
3268
 
2879
3269
  <code class="ruby"> @namespace_name || :default</code>
2880
3270
  </li>
2881
3271
 
2882
- <li class="never" data-hits="" data-linenumber="65">
3272
+ <li class="never" data-hits="" data-linenumber="46">
2883
3273
 
2884
3274
 
2885
3275
  <code class="ruby"> end</code>
2886
3276
  </li>
2887
3277
 
2888
- <li class="never" data-hits="" data-linenumber="66">
3278
+ <li class="never" data-hits="" data-linenumber="47">
2889
3279
 
2890
3280
 
2891
3281
  <code class="ruby"></code>
2892
3282
  </li>
2893
3283
 
2894
- <li class="covered" data-hits="1" data-linenumber="67">
3284
+ <li class="covered" data-hits="1" data-linenumber="48">
2895
3285
  <span class="hits">1</span>
2896
3286
 
2897
3287
  <code class="ruby"> def default_namespace</code>
2898
3288
  </li>
2899
3289
 
2900
- <li class="never" data-hits="" data-linenumber="68">
3290
+ <li class="never" data-hits="" data-linenumber="49">
2901
3291
 
2902
3292
 
2903
3293
  <code class="ruby"> nil</code>
2904
3294
  </li>
2905
3295
 
2906
- <li class="never" data-hits="" data-linenumber="69">
3296
+ <li class="never" data-hits="" data-linenumber="50">
2907
3297
 
2908
3298
 
2909
3299
  <code class="ruby"> end</code>
2910
3300
  </li>
2911
3301
 
2912
- <li class="never" data-hits="" data-linenumber="70">
3302
+ <li class="never" data-hits="" data-linenumber="51">
2913
3303
 
2914
3304
 
2915
3305
  <code class="ruby"></code>
2916
3306
  </li>
2917
3307
 
2918
- <li class="covered" data-hits="1" data-linenumber="71">
3308
+ <li class="covered" data-hits="1" data-linenumber="52">
2919
3309
  <span class="hits">1</span>
2920
3310
 
2921
3311
  <code class="ruby"> def [](taskname)</code>
2922
3312
  </li>
2923
3313
 
2924
- <li class="covered" data-hits="5" data-linenumber="72">
3314
+ <li class="covered" data-hits="5" data-linenumber="53">
2925
3315
  <span class="hits">5</span>
2926
3316
 
2927
3317
  <code class="ruby"> in_namespace(taskname).first</code>
2928
3318
  </li>
2929
3319
 
2930
- <li class="never" data-hits="" data-linenumber="73">
3320
+ <li class="never" data-hits="" data-linenumber="54">
2931
3321
 
2932
3322
 
2933
3323
  <code class="ruby"> end</code>
2934
3324
  </li>
2935
3325
 
2936
- <li class="never" data-hits="" data-linenumber="74">
3326
+ <li class="never" data-hits="" data-linenumber="55">
2937
3327
 
2938
3328
 
2939
3329
  <code class="ruby"> end</code>
2940
3330
  </li>
2941
3331
 
2942
- <li class="covered" data-hits="1" data-linenumber="75">
3332
+ <li class="covered" data-hits="1" data-linenumber="56">
2943
3333
  <span class="hits">1</span>
2944
3334
 
2945
3335
  <code class="ruby"> Tasklib = TaskLib #Because I can never remember</code>
2946
3336
  </li>
2947
3337
 
2948
- <li class="never" data-hits="" data-linenumber="76">
3338
+ <li class="never" data-hits="" data-linenumber="57">
2949
3339
 
2950
3340
 
2951
3341
  <code class="ruby">end</code>
@@ -3300,11 +3690,11 @@
3300
3690
  <div class="source_table" id="d05b479afa4321ddf827a6b5af14020183ee07b9">
3301
3691
  <div class="header">
3302
3692
  <h3>lib/mattock/testing/mock-command-line.rb</h3>
3303
- <h4><span class="green">92.86 %</span> covered</h4>
3693
+ <h4><span class="green">94.44 %</span> covered</h4>
3304
3694
  <div>
3305
- <b>14</b> relevant lines.
3306
- <span class="green"><b>13</b> lines covered</span> and
3307
- <span class="red"><b>1</b> lines missed.</span>
3695
+ <b>36</b> relevant lines.
3696
+ <span class="green"><b>34</b> lines covered</span> and
3697
+ <span class="red"><b>2</b> lines missed.</span>
3308
3698
  </div>
3309
3699
  </div>
3310
3700
 
@@ -3464,166 +3854,412 @@
3464
3854
  <li class="never" data-hits="" data-linenumber="26">
3465
3855
 
3466
3856
 
3467
- <code class="ruby">end</code>
3468
- </li>
3469
-
3470
- </ol>
3471
- </pre>
3472
- </div>
3473
-
3474
- <div class="source_table" id="ba419266ded63c6767eeb8c594191949ebb1b061">
3475
- <div class="header">
3476
- <h3>lib/mattock/testing/rake-example-group.rb</h3>
3477
- <h4><span class="green">100.0 %</span> covered</h4>
3478
- <div>
3479
- <b>44</b> relevant lines.
3480
- <span class="green"><b>44</b> lines covered</span> and
3481
- <span class="red"><b>0</b> lines missed.</span>
3482
- </div>
3483
- </div>
3484
-
3485
- <pre>
3486
- <ol>
3487
-
3488
- <li class="covered" data-hits="1" data-linenumber="1">
3489
- <span class="hits">1</span>
3490
-
3491
- <code class="ruby">require 'rake'</code>
3492
- </li>
3493
-
3494
- <li class="never" data-hits="" data-linenumber="2">
3495
-
3496
-
3497
3857
  <code class="ruby"></code>
3498
3858
  </li>
3499
3859
 
3500
- <li class="covered" data-hits="1" data-linenumber="3">
3860
+ <li class="covered" data-hits="1" data-linenumber="27">
3501
3861
  <span class="hits">1</span>
3502
3862
 
3503
- <code class="ruby">module Mattock</code>
3863
+ <code class="ruby"> module CommandLineExampleGroup</code>
3504
3864
  </li>
3505
3865
 
3506
- <li class="covered" data-hits="1" data-linenumber="4">
3866
+ <li class="covered" data-hits="1" data-linenumber="28">
3507
3867
  <span class="hits">1</span>
3508
3868
 
3509
- <code class="ruby"> module RakeExampleGroup</code>
3869
+ <code class="ruby"> def self.included(group)</code>
3510
3870
  </li>
3511
3871
 
3512
- <li class="covered" data-hits="1" data-linenumber="5">
3872
+ <li class="covered" data-hits="1" data-linenumber="29">
3513
3873
  <span class="hits">1</span>
3514
3874
 
3515
- <code class="ruby"> SavedEnvironmentVariables = %w{APPDATA HOME HOMEDRIVE HOMEPATH RAKE_COLUMNS RAKE_SYSTEM RAKEOPT USERPROFILE}</code>
3875
+ <code class="ruby"> group.class_eval do</code>
3516
3876
  </li>
3517
3877
 
3518
- <li class="covered" data-hits="1" data-linenumber="6">
3878
+ <li class="covered" data-hits="1" data-linenumber="30">
3519
3879
  <span class="hits">1</span>
3520
3880
 
3521
- <code class="ruby"> DeletedEnvironmentVariables = %w{RAKE_COLUMNS RAKE_SYSTEM RAKEOPT}</code>
3881
+ <code class="ruby"> let :pairs do</code>
3522
3882
  </li>
3523
3883
 
3524
- <li class="covered" data-hits="1" data-linenumber="7">
3884
+ <li class="covered" data-hits="1" data-linenumber="31">
3525
3885
  <span class="hits">1</span>
3526
3886
 
3527
- <code class="ruby"> include Rake::DSL</code>
3887
+ <code class="ruby"> []</code>
3528
3888
  </li>
3529
3889
 
3530
- <li class="never" data-hits="" data-linenumber="8">
3890
+ <li class="never" data-hits="" data-linenumber="32">
3531
3891
 
3532
3892
 
3533
- <code class="ruby"> #include FileUtils</code>
3893
+ <code class="ruby"> end</code>
3534
3894
  </li>
3535
3895
 
3536
- <li class="never" data-hits="" data-linenumber="9">
3896
+ <li class="never" data-hits="" data-linenumber="33">
3537
3897
 
3538
3898
 
3539
3899
  <code class="ruby"></code>
3540
3900
  </li>
3541
3901
 
3542
- <li class="covered" data-hits="1" data-linenumber="10">
3902
+ <li class="covered" data-hits="1" data-linenumber="34">
3543
3903
  <span class="hits">1</span>
3544
3904
 
3545
- <code class="ruby"> class TaskManager</code>
3905
+ <code class="ruby"> before :each do</code>
3546
3906
  </li>
3547
3907
 
3548
- <li class="covered" data-hits="1" data-linenumber="11">
3908
+ <li class="covered" data-hits="1" data-linenumber="35">
3549
3909
  <span class="hits">1</span>
3550
3910
 
3551
- <code class="ruby"> include Rake::TaskManager</code>
3552
- </li>
3553
-
3554
- <li class="never" data-hits="" data-linenumber="12">
3555
-
3556
-
3557
- <code class="ruby"> end</code>
3911
+ <code class="ruby"> Mattock::CommandLine.should_receive(:execute) do |cmd|</code>
3558
3912
  </li>
3559
3913
 
3560
- <li class="never" data-hits="" data-linenumber="13">
3561
-
3914
+ <li class="covered" data-hits="2" data-linenumber="36">
3915
+ <span class="hits">2</span>
3562
3916
 
3563
- <code class="ruby"></code>
3917
+ <code class="ruby"> pattern, res = pairs.shift</code>
3564
3918
  </li>
3565
3919
 
3566
- <li class="covered" data-hits="1" data-linenumber="14">
3567
- <span class="hits">1</span>
3920
+ <li class="covered" data-hits="2" data-linenumber="37">
3921
+ <span class="hits">2</span>
3568
3922
 
3569
- <code class="ruby"> def self.included(mod)</code>
3923
+ <code class="ruby"> pattern =~ cmd</code>
3570
3924
  </li>
3571
3925
 
3572
- <li class="covered" data-hits="2" data-linenumber="15">
3926
+ <li class="covered" data-hits="2" data-linenumber="38">
3573
3927
  <span class="hits">2</span>
3574
3928
 
3575
- <code class="ruby"> mod.class_eval do</code>
3929
+ <code class="ruby"> Mattock::MockCommandResult.create(*res)</code>
3576
3930
  </li>
3577
3931
 
3578
- <li class="covered" data-hits="2" data-linenumber="16">
3579
- <span class="hits">2</span>
3932
+ <li class="never" data-hits="" data-linenumber="39">
3580
3933
 
3581
- <code class="ruby"> let! :rake do</code>
3934
+
3935
+ <code class="ruby"> end.any_number_of_times</code>
3582
3936
  </li>
3583
3937
 
3584
- <li class="covered" data-hits="6" data-linenumber="17">
3585
- <span class="hits">6</span>
3938
+ <li class="never" data-hits="" data-linenumber="40">
3586
3939
 
3587
- <code class="ruby"> Rake.application = Rake::Application.new</code>
3940
+
3941
+ <code class="ruby"> end</code>
3588
3942
  </li>
3589
3943
 
3590
- <li class="covered" data-hits="6" data-linenumber="18">
3591
- <span class="hits">6</span>
3944
+ <li class="never" data-hits="" data-linenumber="41">
3592
3945
 
3593
- <code class="ruby"> Rake::TaskManager.record_task_metadata = true</code>
3946
+
3947
+ <code class="ruby"></code>
3594
3948
  </li>
3595
3949
 
3596
- <li class="covered" data-hits="6" data-linenumber="19">
3597
- <span class="hits">6</span>
3950
+ <li class="covered" data-hits="1" data-linenumber="42">
3951
+ <span class="hits">1</span>
3598
3952
 
3599
- <code class="ruby"> RakeFileUtils.verbose_flag = false</code>
3953
+ <code class="ruby"> after :each do</code>
3600
3954
  </li>
3601
3955
 
3602
- <li class="covered" data-hits="6" data-linenumber="20">
3603
- <span class="hits">6</span>
3956
+ <li class="covered" data-hits="1" data-linenumber="43">
3957
+ <span class="hits">1</span>
3604
3958
 
3605
- <code class="ruby"> Rake.application</code>
3959
+ <code class="ruby"> pairs.should have_all_been_called</code>
3606
3960
  </li>
3607
3961
 
3608
- <li class="never" data-hits="" data-linenumber="21">
3962
+ <li class="never" data-hits="" data-linenumber="44">
3609
3963
 
3610
3964
 
3611
3965
  <code class="ruby"> end</code>
3612
3966
  </li>
3613
3967
 
3614
- <li class="never" data-hits="" data-linenumber="22">
3968
+ <li class="never" data-hits="" data-linenumber="45">
3615
3969
 
3616
3970
 
3617
- <code class="ruby"></code>
3971
+ <code class="ruby"> end</code>
3618
3972
  </li>
3619
3973
 
3620
- <li class="covered" data-hits="2" data-linenumber="23">
3621
- <span class="hits">2</span>
3974
+ <li class="never" data-hits="" data-linenumber="46">
3622
3975
 
3623
- <code class="ruby"> before :each do</code>
3976
+
3977
+ <code class="ruby"> end</code>
3624
3978
  </li>
3625
3979
 
3626
- <li class="covered" data-hits="6" data-linenumber="24">
3980
+ <li class="never" data-hits="" data-linenumber="47">
3981
+
3982
+
3983
+ <code class="ruby"></code>
3984
+ </li>
3985
+
3986
+ <li class="covered" data-hits="1" data-linenumber="48">
3987
+ <span class="hits">1</span>
3988
+
3989
+ <code class="ruby"> def expect_command(cmd, *result)</code>
3990
+ </li>
3991
+
3992
+ <li class="covered" data-hits="2" data-linenumber="49">
3993
+ <span class="hits">2</span>
3994
+
3995
+ <code class="ruby"> pairs &lt;&lt; [cmd, result]</code>
3996
+ </li>
3997
+
3998
+ <li class="never" data-hits="" data-linenumber="50">
3999
+
4000
+
4001
+ <code class="ruby"> end</code>
4002
+ </li>
4003
+
4004
+ <li class="never" data-hits="" data-linenumber="51">
4005
+
4006
+
4007
+ <code class="ruby"></code>
4008
+ </li>
4009
+
4010
+ <li class="covered" data-hits="1" data-linenumber="52">
4011
+ <span class="hits">1</span>
4012
+
4013
+ <code class="ruby"> module Matchers</code>
4014
+ </li>
4015
+
4016
+ <li class="covered" data-hits="1" data-linenumber="53">
4017
+ <span class="hits">1</span>
4018
+
4019
+ <code class="ruby"> extend RSpec::Matchers::DSL</code>
4020
+ </li>
4021
+
4022
+ <li class="never" data-hits="" data-linenumber="54">
4023
+
4024
+
4025
+ <code class="ruby"></code>
4026
+ </li>
4027
+
4028
+ <li class="covered" data-hits="1" data-linenumber="55">
4029
+ <span class="hits">1</span>
4030
+
4031
+ <code class="ruby"> define :have_all_been_called do</code>
4032
+ </li>
4033
+
4034
+ <li class="covered" data-hits="1" data-linenumber="56">
4035
+ <span class="hits">1</span>
4036
+
4037
+ <code class="ruby"> match do |list|</code>
4038
+ </li>
4039
+
4040
+ <li class="covered" data-hits="1" data-linenumber="57">
4041
+ <span class="hits">1</span>
4042
+
4043
+ <code class="ruby"> list.empty?</code>
4044
+ </li>
4045
+
4046
+ <li class="never" data-hits="" data-linenumber="58">
4047
+
4048
+
4049
+ <code class="ruby"> end</code>
4050
+ </li>
4051
+
4052
+ <li class="never" data-hits="" data-linenumber="59">
4053
+
4054
+
4055
+ <code class="ruby"></code>
4056
+ </li>
4057
+
4058
+ <li class="covered" data-hits="1" data-linenumber="60">
4059
+ <span class="hits">1</span>
4060
+
4061
+ <code class="ruby"> failure_message_for_should do |list|</code>
4062
+ </li>
4063
+
4064
+ <li class="missed" data-hits="0" data-linenumber="61">
4065
+
4066
+
4067
+ <code class="ruby"> &quot;Expected all commands to be run, but: #{list.map{|item| item[0].source.inspect}.join(&quot;, &quot;)} #{list.length &gt; 1 ? &quot;were&quot; : &quot;was&quot;} not.&quot;</code>
4068
+ </li>
4069
+
4070
+ <li class="never" data-hits="" data-linenumber="62">
4071
+
4072
+
4073
+ <code class="ruby"> end</code>
4074
+ </li>
4075
+
4076
+ <li class="never" data-hits="" data-linenumber="63">
4077
+
4078
+
4079
+ <code class="ruby"> end</code>
4080
+ </li>
4081
+
4082
+ <li class="never" data-hits="" data-linenumber="64">
4083
+
4084
+
4085
+ <code class="ruby"> end</code>
4086
+ </li>
4087
+
4088
+ <li class="covered" data-hits="1" data-linenumber="65">
4089
+ <span class="hits">1</span>
4090
+
4091
+ <code class="ruby"> include Matchers</code>
4092
+ </li>
4093
+
4094
+ <li class="never" data-hits="" data-linenumber="66">
4095
+
4096
+
4097
+ <code class="ruby"> end</code>
4098
+ </li>
4099
+
4100
+ <li class="never" data-hits="" data-linenumber="67">
4101
+
4102
+
4103
+ <code class="ruby">end</code>
4104
+ </li>
4105
+
4106
+ </ol>
4107
+ </pre>
4108
+ </div>
4109
+
4110
+ <div class="source_table" id="ba419266ded63c6767eeb8c594191949ebb1b061">
4111
+ <div class="header">
4112
+ <h3>lib/mattock/testing/rake-example-group.rb</h3>
4113
+ <h4><span class="green">100.0 %</span> covered</h4>
4114
+ <div>
4115
+ <b>44</b> relevant lines.
4116
+ <span class="green"><b>44</b> lines covered</span> and
4117
+ <span class="red"><b>0</b> lines missed.</span>
4118
+ </div>
4119
+ </div>
4120
+
4121
+ <pre>
4122
+ <ol>
4123
+
4124
+ <li class="covered" data-hits="1" data-linenumber="1">
4125
+ <span class="hits">1</span>
4126
+
4127
+ <code class="ruby">require 'rake'</code>
4128
+ </li>
4129
+
4130
+ <li class="never" data-hits="" data-linenumber="2">
4131
+
4132
+
4133
+ <code class="ruby"></code>
4134
+ </li>
4135
+
4136
+ <li class="covered" data-hits="1" data-linenumber="3">
4137
+ <span class="hits">1</span>
4138
+
4139
+ <code class="ruby">module Mattock</code>
4140
+ </li>
4141
+
4142
+ <li class="covered" data-hits="1" data-linenumber="4">
4143
+ <span class="hits">1</span>
4144
+
4145
+ <code class="ruby"> module RakeExampleGroup</code>
4146
+ </li>
4147
+
4148
+ <li class="covered" data-hits="1" data-linenumber="5">
4149
+ <span class="hits">1</span>
4150
+
4151
+ <code class="ruby"> SavedEnvironmentVariables = %w{APPDATA HOME HOMEDRIVE HOMEPATH RAKE_COLUMNS RAKE_SYSTEM RAKEOPT USERPROFILE}</code>
4152
+ </li>
4153
+
4154
+ <li class="covered" data-hits="1" data-linenumber="6">
4155
+ <span class="hits">1</span>
4156
+
4157
+ <code class="ruby"> DeletedEnvironmentVariables = %w{RAKE_COLUMNS RAKE_SYSTEM RAKEOPT}</code>
4158
+ </li>
4159
+
4160
+ <li class="covered" data-hits="1" data-linenumber="7">
4161
+ <span class="hits">1</span>
4162
+
4163
+ <code class="ruby"> include Rake::DSL</code>
4164
+ </li>
4165
+
4166
+ <li class="never" data-hits="" data-linenumber="8">
4167
+
4168
+
4169
+ <code class="ruby"> #include FileUtils</code>
4170
+ </li>
4171
+
4172
+ <li class="never" data-hits="" data-linenumber="9">
4173
+
4174
+
4175
+ <code class="ruby"></code>
4176
+ </li>
4177
+
4178
+ <li class="covered" data-hits="1" data-linenumber="10">
4179
+ <span class="hits">1</span>
4180
+
4181
+ <code class="ruby"> class TaskManager</code>
4182
+ </li>
4183
+
4184
+ <li class="covered" data-hits="1" data-linenumber="11">
4185
+ <span class="hits">1</span>
4186
+
4187
+ <code class="ruby"> include Rake::TaskManager</code>
4188
+ </li>
4189
+
4190
+ <li class="never" data-hits="" data-linenumber="12">
4191
+
4192
+
4193
+ <code class="ruby"> end</code>
4194
+ </li>
4195
+
4196
+ <li class="never" data-hits="" data-linenumber="13">
4197
+
4198
+
4199
+ <code class="ruby"></code>
4200
+ </li>
4201
+
4202
+ <li class="covered" data-hits="1" data-linenumber="14">
4203
+ <span class="hits">1</span>
4204
+
4205
+ <code class="ruby"> def self.included(mod)</code>
4206
+ </li>
4207
+
4208
+ <li class="covered" data-hits="2" data-linenumber="15">
4209
+ <span class="hits">2</span>
4210
+
4211
+ <code class="ruby"> mod.class_eval do</code>
4212
+ </li>
4213
+
4214
+ <li class="covered" data-hits="2" data-linenumber="16">
4215
+ <span class="hits">2</span>
4216
+
4217
+ <code class="ruby"> let! :rake do</code>
4218
+ </li>
4219
+
4220
+ <li class="covered" data-hits="6" data-linenumber="17">
4221
+ <span class="hits">6</span>
4222
+
4223
+ <code class="ruby"> Rake.application = Rake::Application.new</code>
4224
+ </li>
4225
+
4226
+ <li class="covered" data-hits="6" data-linenumber="18">
4227
+ <span class="hits">6</span>
4228
+
4229
+ <code class="ruby"> Rake::TaskManager.record_task_metadata = true</code>
4230
+ </li>
4231
+
4232
+ <li class="covered" data-hits="6" data-linenumber="19">
4233
+ <span class="hits">6</span>
4234
+
4235
+ <code class="ruby"> RakeFileUtils.verbose_flag = false</code>
4236
+ </li>
4237
+
4238
+ <li class="covered" data-hits="6" data-linenumber="20">
4239
+ <span class="hits">6</span>
4240
+
4241
+ <code class="ruby"> Rake.application</code>
4242
+ </li>
4243
+
4244
+ <li class="never" data-hits="" data-linenumber="21">
4245
+
4246
+
4247
+ <code class="ruby"> end</code>
4248
+ </li>
4249
+
4250
+ <li class="never" data-hits="" data-linenumber="22">
4251
+
4252
+
4253
+ <code class="ruby"></code>
4254
+ </li>
4255
+
4256
+ <li class="covered" data-hits="2" data-linenumber="23">
4257
+ <span class="hits">2</span>
4258
+
4259
+ <code class="ruby"> before :each do</code>
4260
+ </li>
4261
+
4262
+ <li class="covered" data-hits="6" data-linenumber="24">
3627
4263
  <span class="hits">6</span>
3628
4264
 
3629
4265
  <code class="ruby"> ARGV.clear</code>
@@ -3963,6 +4599,252 @@
3963
4599
  </pre>
3964
4600
  </div>
3965
4601
 
4602
+ <div class="source_table" id="b325ca10da29fcd26651ac26205d38639667a9a7">
4603
+ <div class="header">
4604
+ <h3>lib/mattock/testing/record-commands.rb</h3>
4605
+ <h4><span class="green">95.45 %</span> covered</h4>
4606
+ <div>
4607
+ <b>22</b> relevant lines.
4608
+ <span class="green"><b>21</b> lines covered</span> and
4609
+ <span class="red"><b>1</b> lines missed.</span>
4610
+ </div>
4611
+ </div>
4612
+
4613
+ <pre>
4614
+ <ol>
4615
+
4616
+ <li class="covered" data-hits="1" data-linenumber="1">
4617
+ <span class="hits">1</span>
4618
+
4619
+ <code class="ruby">require 'mattock/command-line'</code>
4620
+ </li>
4621
+
4622
+ <li class="never" data-hits="" data-linenumber="2">
4623
+
4624
+
4625
+ <code class="ruby"></code>
4626
+ </li>
4627
+
4628
+ <li class="covered" data-hits="1" data-linenumber="3">
4629
+ <span class="hits">1</span>
4630
+
4631
+ <code class="ruby">module Mattock</code>
4632
+ </li>
4633
+
4634
+ <li class="covered" data-hits="1" data-linenumber="4">
4635
+ <span class="hits">1</span>
4636
+
4637
+ <code class="ruby"> class CommandLine</code>
4638
+ </li>
4639
+
4640
+ <li class="covered" data-hits="1" data-linenumber="5">
4641
+ <span class="hits">1</span>
4642
+
4643
+ <code class="ruby"> @@commands = []</code>
4644
+ </li>
4645
+
4646
+ <li class="covered" data-hits="1" data-linenumber="6">
4647
+ <span class="hits">1</span>
4648
+
4649
+ <code class="ruby"> class &lt;&lt; self</code>
4650
+ </li>
4651
+
4652
+ <li class="covered" data-hits="1" data-linenumber="7">
4653
+ <span class="hits">1</span>
4654
+
4655
+ <code class="ruby"> alias original_execute execute</code>
4656
+ </li>
4657
+
4658
+ <li class="never" data-hits="" data-linenumber="8">
4659
+
4660
+
4661
+ <code class="ruby"></code>
4662
+ </li>
4663
+
4664
+ <li class="covered" data-hits="1" data-linenumber="9">
4665
+ <span class="hits">1</span>
4666
+
4667
+ <code class="ruby"> def execute(command)</code>
4668
+ </li>
4669
+
4670
+ <li class="covered" data-hits="5" data-linenumber="10">
4671
+ <span class="hits">5</span>
4672
+
4673
+ <code class="ruby"> result = original_execute(command)</code>
4674
+ </li>
4675
+
4676
+ <li class="covered" data-hits="5" data-linenumber="11">
4677
+ <span class="hits">5</span>
4678
+
4679
+ <code class="ruby"> @@commands &lt;&lt; [command, result]</code>
4680
+ </li>
4681
+
4682
+ <li class="covered" data-hits="5" data-linenumber="12">
4683
+ <span class="hits">5</span>
4684
+
4685
+ <code class="ruby"> return result</code>
4686
+ </li>
4687
+
4688
+ <li class="never" data-hits="" data-linenumber="13">
4689
+
4690
+
4691
+ <code class="ruby"> end</code>
4692
+ </li>
4693
+
4694
+ <li class="never" data-hits="" data-linenumber="14">
4695
+
4696
+
4697
+ <code class="ruby"></code>
4698
+ </li>
4699
+
4700
+ <li class="covered" data-hits="1" data-linenumber="15">
4701
+ <span class="hits">1</span>
4702
+
4703
+ <code class="ruby"> attr_accessor :command_recording_path</code>
4704
+ </li>
4705
+
4706
+ <li class="never" data-hits="" data-linenumber="16">
4707
+
4708
+
4709
+ <code class="ruby"></code>
4710
+ </li>
4711
+
4712
+ <li class="covered" data-hits="1" data-linenumber="17">
4713
+ <span class="hits">1</span>
4714
+
4715
+ <code class="ruby"> def command_recording_path</code>
4716
+ </li>
4717
+
4718
+ <li class="covered" data-hits="2" data-linenumber="18">
4719
+ <span class="hits">2</span>
4720
+
4721
+ <code class="ruby"> @command_recording_path ||= ENV['MATTOCK_CMDREC']</code>
4722
+ </li>
4723
+
4724
+ <li class="never" data-hits="" data-linenumber="19">
4725
+
4726
+
4727
+ <code class="ruby"> end</code>
4728
+ </li>
4729
+
4730
+ <li class="never" data-hits="" data-linenumber="20">
4731
+
4732
+
4733
+ <code class="ruby"></code>
4734
+ </li>
4735
+
4736
+ <li class="covered" data-hits="1" data-linenumber="21">
4737
+ <span class="hits">1</span>
4738
+
4739
+ <code class="ruby"> def emit_recording</code>
4740
+ </li>
4741
+
4742
+ <li class="covered" data-hits="1" data-linenumber="22">
4743
+ <span class="hits">1</span>
4744
+
4745
+ <code class="ruby"> io = $stderr</code>
4746
+ </li>
4747
+
4748
+ <li class="covered" data-hits="1" data-linenumber="23">
4749
+ <span class="hits">1</span>
4750
+
4751
+ <code class="ruby"> if command_recording_path</code>
4752
+ </li>
4753
+
4754
+ <li class="covered" data-hits="1" data-linenumber="24">
4755
+ <span class="hits">1</span>
4756
+
4757
+ <code class="ruby"> io = File.open(command_recording_path, &quot;w&quot;)</code>
4758
+ </li>
4759
+
4760
+ <li class="never" data-hits="" data-linenumber="25">
4761
+
4762
+
4763
+ <code class="ruby"> else</code>
4764
+ </li>
4765
+
4766
+ <li class="missed" data-hits="0" data-linenumber="26">
4767
+
4768
+
4769
+ <code class="ruby"> io.puts &quot;Set MATTOCK_CMDREC to write to a path&quot;</code>
4770
+ </li>
4771
+
4772
+ <li class="never" data-hits="" data-linenumber="27">
4773
+
4774
+
4775
+ <code class="ruby"> end</code>
4776
+ </li>
4777
+
4778
+ <li class="covered" data-hits="1" data-linenumber="28">
4779
+ <span class="hits">1</span>
4780
+
4781
+ <code class="ruby"> @@commands.each do |pair|</code>
4782
+ </li>
4783
+
4784
+ <li class="covered" data-hits="5" data-linenumber="29">
4785
+ <span class="hits">5</span>
4786
+
4787
+ <code class="ruby"> io.puts &quot;[/#{pair[0]}/, #{[pair[1].exit_code, pair[1].streams].inspect}]&quot;</code>
4788
+ </li>
4789
+
4790
+ <li class="never" data-hits="" data-linenumber="30">
4791
+
4792
+
4793
+ <code class="ruby"> end</code>
4794
+ </li>
4795
+
4796
+ <li class="never" data-hits="" data-linenumber="31">
4797
+
4798
+
4799
+ <code class="ruby"> end</code>
4800
+ </li>
4801
+
4802
+ <li class="never" data-hits="" data-linenumber="32">
4803
+
4804
+
4805
+ <code class="ruby"> end</code>
4806
+ </li>
4807
+
4808
+ <li class="never" data-hits="" data-linenumber="33">
4809
+
4810
+
4811
+ <code class="ruby"> end</code>
4812
+ </li>
4813
+
4814
+ <li class="never" data-hits="" data-linenumber="34">
4815
+
4816
+
4817
+ <code class="ruby">end</code>
4818
+ </li>
4819
+
4820
+ <li class="never" data-hits="" data-linenumber="35">
4821
+
4822
+
4823
+ <code class="ruby"></code>
4824
+ </li>
4825
+
4826
+ <li class="covered" data-hits="1" data-linenumber="36">
4827
+ <span class="hits">1</span>
4828
+
4829
+ <code class="ruby">at_exit do</code>
4830
+ </li>
4831
+
4832
+ <li class="covered" data-hits="1" data-linenumber="37">
4833
+ <span class="hits">1</span>
4834
+
4835
+ <code class="ruby"> Mattock::CommandLine.emit_recording</code>
4836
+ </li>
4837
+
4838
+ <li class="never" data-hits="" data-linenumber="38">
4839
+
4840
+
4841
+ <code class="ruby">end</code>
4842
+ </li>
4843
+
4844
+ </ol>
4845
+ </pre>
4846
+ </div>
4847
+
3966
4848
  </div>
3967
4849
  </div>
3968
4850
  </body>