rake-dotnet 0.1.15 → 0.1.16

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.
Files changed (45) hide show
  1. data/History.txt +22 -0
  2. data/Manifest.txt +39 -1
  3. data/Rakefile.rb +44 -14
  4. data/coverage/index.html +576 -0
  5. data/coverage/lib-assemblyinfo_rb.html +716 -0
  6. data/coverage/lib-bcpcmd_rb.html +704 -0
  7. data/coverage/lib-cli_rb.html +646 -0
  8. data/coverage/lib-fxcop_rb.html +723 -0
  9. data/coverage/lib-harvester_rb.html +741 -0
  10. data/coverage/lib-iisappcmd_rb.html +657 -0
  11. data/coverage/lib-msbuild_rb.html +713 -0
  12. data/coverage/lib-ncover_rb.html +773 -0
  13. data/coverage/lib-package_rb.html +691 -0
  14. data/coverage/lib-sevenzip_rb.html +665 -0
  15. data/coverage/lib-sqlcmd_rb.html +680 -0
  16. data/coverage/lib-svn_rb.html +671 -0
  17. data/coverage/lib-version_rb.html +651 -0
  18. data/coverage/lib-xunit_rb.html +727 -0
  19. data/doc/examples.html +482 -0
  20. data/lib/rake_dotnet.rb +826 -616
  21. data/lib/rake_dotnet/default_rakefile.rb +16 -0
  22. data/spec/assemblyinfotask_spec.rb +8 -0
  23. data/spec/bcpcmd_spec.rb +81 -0
  24. data/spec/cli_spec.rb +48 -0
  25. data/spec/constants_spec.rb +6 -0
  26. data/spec/fxcopcmd_spec.rb +8 -0
  27. data/spec/fxcoptask_spec.rb +7 -0
  28. data/spec/harvester_spec.rb +6 -0
  29. data/spec/harvestoutputtask_spec.rb +6 -0
  30. data/spec/harvestwebapplicationtask_spec.rb +6 -0
  31. data/spec/iisappcmd_spec.rb +15 -0
  32. data/spec/msbuildcmd_spec.rb +7 -0
  33. data/spec/msbuildtask_spec.rb +7 -0
  34. data/spec/ncoverconsolecmd_spec.rb +12 -0
  35. data/spec/ncoverreportingcmd_spec.rb +14 -0
  36. data/spec/ncovertask_spec.rb +24 -0
  37. data/spec/rdnpackagetask_spec.rb +6 -0
  38. data/spec/sevenzipcmd_spec.rb +7 -0
  39. data/spec/sqlcmd_spec.rb +52 -0
  40. data/spec/svncmd_spec.rb +45 -0
  41. data/spec/versioner_spec.rb +6 -0
  42. data/spec/xunitcmd_spec.rb +10 -0
  43. data/spec/xunittask_spec.rb +7 -0
  44. metadata +77 -9
  45. data/test/test_rake_dotnet.rb +0 -16
@@ -0,0 +1,713 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'><head><title>lib/msbuild.rb - C0 code coverage information</title>
3
+ <style type='text/css'>body { background-color: rgb(240, 240, 245); }</style>
4
+ <style type='text/css'>span.cross-ref-title {
5
+ font-size: 140%;
6
+ }
7
+ span.cross-ref a {
8
+ text-decoration: none;
9
+ }
10
+ span.cross-ref {
11
+ background-color:#f3f7fa;
12
+ border: 1px dashed #333;
13
+ margin: 1em;
14
+ padding: 0.5em;
15
+ overflow: hidden;
16
+ }
17
+ a.crossref-toggle {
18
+ text-decoration: none;
19
+ }
20
+ span.marked0 {
21
+ background-color: rgb(185, 210, 200);
22
+ display: block;
23
+ }
24
+ span.marked1 {
25
+ background-color: rgb(190, 215, 205);
26
+ display: block;
27
+ }
28
+ span.inferred0 {
29
+ background-color: rgb(175, 200, 200);
30
+ display: block;
31
+ }
32
+ span.inferred1 {
33
+ background-color: rgb(180, 205, 205);
34
+ display: block;
35
+ }
36
+ span.uncovered0 {
37
+ background-color: rgb(225, 110, 110);
38
+ display: block;
39
+ }
40
+ span.uncovered1 {
41
+ background-color: rgb(235, 120, 120);
42
+ display: block;
43
+ }
44
+ span.overview {
45
+ border-bottom: 8px solid black;
46
+ }
47
+ div.overview {
48
+ border-bottom: 8px solid black;
49
+ }
50
+ body {
51
+ font-family: verdana, arial, helvetica;
52
+ }
53
+ div.footer {
54
+ font-size: 68%;
55
+ margin-top: 1.5em;
56
+ }
57
+ h1, h2, h3, h4, h5, h6 {
58
+ margin-bottom: 0.5em;
59
+ }
60
+ h5 {
61
+ margin-top: 0.5em;
62
+ }
63
+ .hidden {
64
+ display: none;
65
+ }
66
+ div.separator {
67
+ height: 10px;
68
+ }
69
+ /* Commented out for better readability, esp. on IE */
70
+ /*
71
+ table tr td, table tr th {
72
+ font-size: 68%;
73
+ }
74
+ td.value table tr td {
75
+ font-size: 11px;
76
+ }
77
+ */
78
+ table.percent_graph {
79
+ height: 12px;
80
+ border: #808080 1px solid;
81
+ empty-cells: show;
82
+ }
83
+ table.percent_graph td.covered {
84
+ height: 10px;
85
+ background: #00f000;
86
+ }
87
+ table.percent_graph td.uncovered {
88
+ height: 10px;
89
+ background: #e00000;
90
+ }
91
+ table.percent_graph td.NA {
92
+ height: 10px;
93
+ background: #eaeaea;
94
+ }
95
+ table.report {
96
+ border-collapse: collapse;
97
+ width: 100%;
98
+ }
99
+ table.report td.heading {
100
+ background: #dcecff;
101
+ border: #d0d0d0 1px solid;
102
+ font-weight: bold;
103
+ text-align: center;
104
+ }
105
+ table.report td.heading:hover {
106
+ background: #c0ffc0;
107
+ }
108
+ table.report td.text {
109
+ border: #d0d0d0 1px solid;
110
+ }
111
+ table.report td.value,
112
+ table.report td.lines_total,
113
+ table.report td.lines_code {
114
+ text-align: right;
115
+ border: #d0d0d0 1px solid;
116
+ }
117
+ table.report tr.light {
118
+ background-color: rgb(240, 240, 245);
119
+ }
120
+ table.report tr.dark {
121
+ background-color: rgb(230, 230, 235);
122
+ }
123
+ </style>
124
+ <script type='text/javascript'>
125
+ // <![CDATA[
126
+ function toggleCode( id ) {
127
+ if ( document.getElementById )
128
+ elem = document.getElementById( id );
129
+ else if ( document.all )
130
+ elem = eval( "document.all." + id );
131
+ else
132
+ return false;
133
+
134
+ elemStyle = elem.style;
135
+
136
+ if ( elemStyle.display != "block" ) {
137
+ elemStyle.display = "block"
138
+ } else {
139
+ elemStyle.display = "none"
140
+ }
141
+
142
+ return true;
143
+ }
144
+
145
+ // Make cross-references hidden by default
146
+ document.writeln( "<style type=\"text/css\">span.cross-ref { display: none }</style>" )
147
+ // ]]>
148
+ </script>
149
+ <style type='text/css'>span.run0 {
150
+ background-color: rgb(178, 204, 255);
151
+ display: block;
152
+ }
153
+ span.run1 {
154
+ background-color: rgb(178, 206, 255);
155
+ display: block;
156
+ }
157
+ span.run2 {
158
+ background-color: rgb(178, 209, 255);
159
+ display: block;
160
+ }
161
+ span.run3 {
162
+ background-color: rgb(178, 211, 255);
163
+ display: block;
164
+ }
165
+ span.run4 {
166
+ background-color: rgb(178, 214, 255);
167
+ display: block;
168
+ }
169
+ span.run5 {
170
+ background-color: rgb(178, 218, 255);
171
+ display: block;
172
+ }
173
+ span.run6 {
174
+ background-color: rgb(178, 220, 255);
175
+ display: block;
176
+ }
177
+ span.run7 {
178
+ background-color: rgb(178, 223, 255);
179
+ display: block;
180
+ }
181
+ span.run8 {
182
+ background-color: rgb(178, 225, 255);
183
+ display: block;
184
+ }
185
+ span.run9 {
186
+ background-color: rgb(178, 228, 255);
187
+ display: block;
188
+ }
189
+ span.run10 {
190
+ background-color: rgb(178, 232, 255);
191
+ display: block;
192
+ }
193
+ span.run11 {
194
+ background-color: rgb(178, 234, 255);
195
+ display: block;
196
+ }
197
+ span.run12 {
198
+ background-color: rgb(178, 237, 255);
199
+ display: block;
200
+ }
201
+ span.run13 {
202
+ background-color: rgb(178, 239, 255);
203
+ display: block;
204
+ }
205
+ span.run14 {
206
+ background-color: rgb(178, 242, 255);
207
+ display: block;
208
+ }
209
+ span.run15 {
210
+ background-color: rgb(178, 246, 255);
211
+ display: block;
212
+ }
213
+ span.run16 {
214
+ background-color: rgb(178, 248, 255);
215
+ display: block;
216
+ }
217
+ span.run17 {
218
+ background-color: rgb(178, 251, 255);
219
+ display: block;
220
+ }
221
+ span.run18 {
222
+ background-color: rgb(178, 253, 255);
223
+ display: block;
224
+ }
225
+ span.run19 {
226
+ background-color: rgb(178, 255, 253);
227
+ display: block;
228
+ }
229
+ span.run20 {
230
+ background-color: rgb(178, 255, 249);
231
+ display: block;
232
+ }
233
+ span.run21 {
234
+ background-color: rgb(178, 255, 247);
235
+ display: block;
236
+ }
237
+ span.run22 {
238
+ background-color: rgb(178, 255, 244);
239
+ display: block;
240
+ }
241
+ span.run23 {
242
+ background-color: rgb(178, 255, 242);
243
+ display: block;
244
+ }
245
+ span.run24 {
246
+ background-color: rgb(178, 255, 239);
247
+ display: block;
248
+ }
249
+ span.run25 {
250
+ background-color: rgb(178, 255, 235);
251
+ display: block;
252
+ }
253
+ span.run26 {
254
+ background-color: rgb(178, 255, 233);
255
+ display: block;
256
+ }
257
+ span.run27 {
258
+ background-color: rgb(178, 255, 230);
259
+ display: block;
260
+ }
261
+ span.run28 {
262
+ background-color: rgb(178, 255, 228);
263
+ display: block;
264
+ }
265
+ span.run29 {
266
+ background-color: rgb(178, 255, 225);
267
+ display: block;
268
+ }
269
+ span.run30 {
270
+ background-color: rgb(178, 255, 221);
271
+ display: block;
272
+ }
273
+ span.run31 {
274
+ background-color: rgb(178, 255, 219);
275
+ display: block;
276
+ }
277
+ span.run32 {
278
+ background-color: rgb(178, 255, 216);
279
+ display: block;
280
+ }
281
+ span.run33 {
282
+ background-color: rgb(178, 255, 214);
283
+ display: block;
284
+ }
285
+ span.run34 {
286
+ background-color: rgb(178, 255, 211);
287
+ display: block;
288
+ }
289
+ span.run35 {
290
+ background-color: rgb(178, 255, 207);
291
+ display: block;
292
+ }
293
+ span.run36 {
294
+ background-color: rgb(178, 255, 205);
295
+ display: block;
296
+ }
297
+ span.run37 {
298
+ background-color: rgb(178, 255, 202);
299
+ display: block;
300
+ }
301
+ span.run38 {
302
+ background-color: rgb(178, 255, 200);
303
+ display: block;
304
+ }
305
+ span.run39 {
306
+ background-color: rgb(178, 255, 197);
307
+ display: block;
308
+ }
309
+ span.run40 {
310
+ background-color: rgb(178, 255, 193);
311
+ display: block;
312
+ }
313
+ span.run41 {
314
+ background-color: rgb(178, 255, 191);
315
+ display: block;
316
+ }
317
+ span.run42 {
318
+ background-color: rgb(178, 255, 188);
319
+ display: block;
320
+ }
321
+ span.run43 {
322
+ background-color: rgb(178, 255, 186);
323
+ display: block;
324
+ }
325
+ span.run44 {
326
+ background-color: rgb(178, 255, 183);
327
+ display: block;
328
+ }
329
+ span.run45 {
330
+ background-color: rgb(178, 255, 179);
331
+ display: block;
332
+ }
333
+ span.run46 {
334
+ background-color: rgb(179, 255, 178);
335
+ display: block;
336
+ }
337
+ span.run47 {
338
+ background-color: rgb(182, 255, 178);
339
+ display: block;
340
+ }
341
+ span.run48 {
342
+ background-color: rgb(184, 255, 178);
343
+ display: block;
344
+ }
345
+ span.run49 {
346
+ background-color: rgb(187, 255, 178);
347
+ display: block;
348
+ }
349
+ span.run50 {
350
+ background-color: rgb(191, 255, 178);
351
+ display: block;
352
+ }
353
+ span.run51 {
354
+ background-color: rgb(193, 255, 178);
355
+ display: block;
356
+ }
357
+ span.run52 {
358
+ background-color: rgb(196, 255, 178);
359
+ display: block;
360
+ }
361
+ span.run53 {
362
+ background-color: rgb(198, 255, 178);
363
+ display: block;
364
+ }
365
+ span.run54 {
366
+ background-color: rgb(201, 255, 178);
367
+ display: block;
368
+ }
369
+ span.run55 {
370
+ background-color: rgb(205, 255, 178);
371
+ display: block;
372
+ }
373
+ span.run56 {
374
+ background-color: rgb(207, 255, 178);
375
+ display: block;
376
+ }
377
+ span.run57 {
378
+ background-color: rgb(210, 255, 178);
379
+ display: block;
380
+ }
381
+ span.run58 {
382
+ background-color: rgb(212, 255, 178);
383
+ display: block;
384
+ }
385
+ span.run59 {
386
+ background-color: rgb(215, 255, 178);
387
+ display: block;
388
+ }
389
+ span.run60 {
390
+ background-color: rgb(219, 255, 178);
391
+ display: block;
392
+ }
393
+ span.run61 {
394
+ background-color: rgb(221, 255, 178);
395
+ display: block;
396
+ }
397
+ span.run62 {
398
+ background-color: rgb(224, 255, 178);
399
+ display: block;
400
+ }
401
+ span.run63 {
402
+ background-color: rgb(226, 255, 178);
403
+ display: block;
404
+ }
405
+ span.run64 {
406
+ background-color: rgb(229, 255, 178);
407
+ display: block;
408
+ }
409
+ span.run65 {
410
+ background-color: rgb(233, 255, 178);
411
+ display: block;
412
+ }
413
+ span.run66 {
414
+ background-color: rgb(235, 255, 178);
415
+ display: block;
416
+ }
417
+ span.run67 {
418
+ background-color: rgb(238, 255, 178);
419
+ display: block;
420
+ }
421
+ span.run68 {
422
+ background-color: rgb(240, 255, 178);
423
+ display: block;
424
+ }
425
+ span.run69 {
426
+ background-color: rgb(243, 255, 178);
427
+ display: block;
428
+ }
429
+ span.run70 {
430
+ background-color: rgb(247, 255, 178);
431
+ display: block;
432
+ }
433
+ span.run71 {
434
+ background-color: rgb(249, 255, 178);
435
+ display: block;
436
+ }
437
+ span.run72 {
438
+ background-color: rgb(252, 255, 178);
439
+ display: block;
440
+ }
441
+ span.run73 {
442
+ background-color: rgb(255, 255, 178);
443
+ display: block;
444
+ }
445
+ span.run74 {
446
+ background-color: rgb(255, 252, 178);
447
+ display: block;
448
+ }
449
+ span.run75 {
450
+ background-color: rgb(255, 248, 178);
451
+ display: block;
452
+ }
453
+ span.run76 {
454
+ background-color: rgb(255, 246, 178);
455
+ display: block;
456
+ }
457
+ span.run77 {
458
+ background-color: rgb(255, 243, 178);
459
+ display: block;
460
+ }
461
+ span.run78 {
462
+ background-color: rgb(255, 240, 178);
463
+ display: block;
464
+ }
465
+ span.run79 {
466
+ background-color: rgb(255, 238, 178);
467
+ display: block;
468
+ }
469
+ span.run80 {
470
+ background-color: rgb(255, 234, 178);
471
+ display: block;
472
+ }
473
+ span.run81 {
474
+ background-color: rgb(255, 232, 178);
475
+ display: block;
476
+ }
477
+ span.run82 {
478
+ background-color: rgb(255, 229, 178);
479
+ display: block;
480
+ }
481
+ span.run83 {
482
+ background-color: rgb(255, 226, 178);
483
+ display: block;
484
+ }
485
+ span.run84 {
486
+ background-color: rgb(255, 224, 178);
487
+ display: block;
488
+ }
489
+ span.run85 {
490
+ background-color: rgb(255, 220, 178);
491
+ display: block;
492
+ }
493
+ span.run86 {
494
+ background-color: rgb(255, 218, 178);
495
+ display: block;
496
+ }
497
+ span.run87 {
498
+ background-color: rgb(255, 215, 178);
499
+ display: block;
500
+ }
501
+ span.run88 {
502
+ background-color: rgb(255, 212, 178);
503
+ display: block;
504
+ }
505
+ span.run89 {
506
+ background-color: rgb(255, 210, 178);
507
+ display: block;
508
+ }
509
+ span.run90 {
510
+ background-color: rgb(255, 206, 178);
511
+ display: block;
512
+ }
513
+ span.run91 {
514
+ background-color: rgb(255, 204, 178);
515
+ display: block;
516
+ }
517
+ span.run92 {
518
+ background-color: rgb(255, 201, 178);
519
+ display: block;
520
+ }
521
+ span.run93 {
522
+ background-color: rgb(255, 198, 178);
523
+ display: block;
524
+ }
525
+ span.run94 {
526
+ background-color: rgb(255, 196, 178);
527
+ display: block;
528
+ }
529
+ span.run95 {
530
+ background-color: rgb(255, 192, 178);
531
+ display: block;
532
+ }
533
+ span.run96 {
534
+ background-color: rgb(255, 189, 178);
535
+ display: block;
536
+ }
537
+ span.run97 {
538
+ background-color: rgb(255, 187, 178);
539
+ display: block;
540
+ }
541
+ span.run98 {
542
+ background-color: rgb(255, 184, 178);
543
+ display: block;
544
+ }
545
+ span.run99 {
546
+ background-color: rgb(255, 182, 178);
547
+ display: block;
548
+ }
549
+ span.run100 {
550
+ background-color: rgb(255, 178, 178);
551
+ display: block;
552
+ }
553
+ </style>
554
+ </head>
555
+ <body><h3>C0 code coverage information</h3>
556
+ <p>Generated on Mon Nov 09 13:47:38 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
+ </p>
558
+ <hr/>
559
+ <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
560
+ </span><span class='marked1'>and this: this line is also marked as covered.
561
+ </span><span class='inferred0'>Lines considered as run by rcov, but not reported by Ruby, look like this,
562
+ </span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).
563
+ </span><span class='uncovered0'>Finally, here&apos;s a line marked as not executed.
564
+ </span></pre>
565
+ <table class='report'><thead><tr><td class='heading'>Name</td>
566
+ <td class='heading'>Total lines</td>
567
+ <td class='heading'>Lines of code</td>
568
+ <td class='heading'>Total coverage</td>
569
+ <td class='heading'>Code coverage</td>
570
+ </tr>
571
+ </thead>
572
+ <tbody><tr class='light'><td><a href='lib-msbuild_rb.html'>lib/msbuild.rb</a>
573
+ </td>
574
+ <td class='lines_total'><tt>103</tt>
575
+ </td>
576
+ <td class='lines_code'><tt>82</tt>
577
+ </td>
578
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>27.2%</tt>
579
+ &nbsp;</td>
580
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='27'/>
581
+ <td class='uncovered' width='73'/>
582
+ </tr>
583
+ </table>
584
+ </td>
585
+ </tr>
586
+ </table>
587
+ </td>
588
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>19.5%</tt>
589
+ &nbsp;</td>
590
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='20'/>
591
+ <td class='uncovered' width='80'/>
592
+ </tr>
593
+ </table>
594
+ </td>
595
+ </tr>
596
+ </table>
597
+ </td>
598
+ </tr>
599
+ </tbody>
600
+ </table>
601
+ <pre><span class="marked0"><a name="line1"></a> 1 class MsBuildTask &lt; Rake::TaskLib
602
+ </span><span class="marked1"><a name="line2"></a> 2 attr_accessor :src_dir, :verbosity, :working_dir
603
+ </span><span class="inferred0"><a name="line3"></a> 3
604
+ </span><span class="marked1"><a name="line4"></a> 4 def initialize(params={})
605
+ </span><span class="uncovered0"><a name="line5"></a> 5 #TODO: Support for arbitrary properties, not just configuration. For example, TreatWarningsAsErrors, WarningLevel.
606
+ </span><span class="uncovered1"><a name="line6"></a> 6 @configuration = params[:configuration] || CONFIGURATION
607
+ </span><span class="uncovered0"><a name="line7"></a> 7 @src_dir = params[:src_dir] || SRC_DIR
608
+ </span><span class="uncovered1"><a name="line8"></a> 8 @verbosity = params[:verbosity] || MSBUILD_VERBOSITY || 'm'
609
+ </span><span class="uncovered0"><a name="line9"></a> 9 @working_dir = params[:working_dir] || '.'
610
+ </span><span class="uncovered1"><a name="line10"></a> 10 @deps = params[:deps] || [Bin_out]
611
+ </span><span class="uncovered0"><a name="line11"></a> 11 @buildable_projects = ['.csproj', '.vbproj', '.wixproj']
612
+ </span><span class="uncovered1"><a name="line12"></a> 12 @properties = {:Configuration =&gt; @configuration, :TreatWarningsAsErrors =&gt; true, :WarningLevel =&gt; 4, :BuildInParallel =&gt; true}.merge(params[:properties] || {})
613
+ </span><span class="uncovered0"><a name="line13"></a> 13
614
+ </span><span class="uncovered1"><a name="line14"></a> 14 yield self if block_given?
615
+ </span><span class="uncovered0"><a name="line15"></a> 15 define
616
+ </span><span class="uncovered1"><a name="line16"></a> 16 end
617
+ </span><span class="inferred0"><a name="line17"></a> 17
618
+ </span><span class="marked1"><a name="line18"></a> 18 def define
619
+ </span><span class="uncovered0"><a name="line19"></a> 19 # most project types put output into bin/{configuration}
620
+ </span><span class="uncovered1"><a name="line20"></a> 20 rule(/#{src_dir_regex}\/[\w\.]+\/bin\/#{@configuration}\/[\w\.]+\.(?:dll|exe)/) do |r|
621
+ </span><span class="uncovered0"><a name="line21"></a> 21 pn = Pathname.new(r.name)
622
+ </span><span class="uncovered1"><a name="line22"></a> 22 name = pn.basename.to_s.sub('.dll', '')
623
+ </span><span class="uncovered0"><a name="line23"></a> 23 project = FileList.new(&quot;#{@src_dir}/#{name}/#{name}.*proj&quot;).first
624
+ </span><span class="uncovered1"><a name="line24"></a> 24 mb = MsBuildCmd.new(project, @properties, ['Build'], verbosity, @working_dir)
625
+ </span><span class="uncovered0"><a name="line25"></a> 25 mb.run
626
+ </span><span class="uncovered1"><a name="line26"></a> 26 end
627
+ </span><span class="uncovered0"><a name="line27"></a> 27
628
+ </span><span class="uncovered1"><a name="line28"></a> 28 # web application projects put output into /bin
629
+ </span><span class="uncovered0"><a name="line29"></a> 29 rule(/#{src_dir_regex}\/[\w\.]+\/bin\/[\w\.]+\.dll/) do |r|
630
+ </span><span class="uncovered1"><a name="line30"></a> 30 pn = Pathname.new(r.name)
631
+ </span><span class="uncovered0"><a name="line31"></a> 31 name = pn.basename.to_s.sub('.dll', '')
632
+ </span><span class="uncovered1"><a name="line32"></a> 32 project = FileList.new(&quot;#{@src_dir}/#{name}/#{name}.*proj&quot;).first
633
+ </span><span class="uncovered0"><a name="line33"></a> 33 mb = MsBuildCmd.new(project, @properties, ['Build'], verbosity, @working_dir)
634
+ </span><span class="uncovered1"><a name="line34"></a> 34 mb.run
635
+ </span><span class="uncovered0"><a name="line35"></a> 35 end
636
+ </span><span class="uncovered1"><a name="line36"></a> 36
637
+ </span><span class="uncovered0"><a name="line37"></a> 37 desc &quot;Compile the specified projects (give relative paths) (otherwise, all matching src/**/*.*proj)&quot;
638
+ </span><span class="uncovered1"><a name="line38"></a> 38 task :compile, [:projects] do |t, args|
639
+ </span><span class="uncovered0"><a name="line39"></a> 39 project_list = FileList.new(&quot;#{src_dir}/**/*.*proj&quot;)
640
+ </span><span class="uncovered1"><a name="line40"></a> 40 args.with_defaults(:projects =&gt; project_list)
641
+ </span><span class="uncovered0"><a name="line41"></a> 41 args.projects.each do |p|
642
+ </span><span class="uncovered1"><a name="line42"></a> 42 pn = Pathname.new(p)
643
+ </span><span class="uncovered0"><a name="line43"></a> 43 # TODO: Figure out which type of project we are so we can invoke the correct rule, with the correct output extension
644
+ </span><span class="uncovered1"><a name="line44"></a> 44 dll = File.join(pn.dirname, 'bin', @configuration, pn.basename.sub(pn.extname, '.dll'))
645
+ </span><span class="uncovered0"><a name="line45"></a> 45 Rake::FileTask[dll].invoke if @buildable_projects.include?(pn.extname)
646
+ </span><span class="uncovered1"><a name="line46"></a> 46 end
647
+ </span><span class="uncovered0"><a name="line47"></a> 47 end
648
+ </span><span class="uncovered1"><a name="line48"></a> 48
649
+ </span><span class="uncovered0"><a name="line49"></a> 49 @deps.each do |d|
650
+ </span><span class="uncovered1"><a name="line50"></a> 50 task :compile =&gt; d
651
+ </span><span class="uncovered0"><a name="line51"></a> 51 end
652
+ </span><span class="uncovered1"><a name="line52"></a> 52
653
+ </span><span class="uncovered0"><a name="line53"></a> 53 self
654
+ </span><span class="uncovered1"><a name="line54"></a> 54 end
655
+ </span><span class="inferred0"><a name="line55"></a> 55
656
+ </span><span class="marked1"><a name="line56"></a> 56 def src_dir_regex
657
+ </span><span class="uncovered0"><a name="line57"></a> 57 RakeDotNet::regexify(@src_dir)
658
+ </span><span class="uncovered1"><a name="line58"></a> 58 end
659
+ </span><span class="inferred0"><a name="line59"></a> 59
660
+ </span><span class="marked1"><a name="line60"></a> 60 def figure_out_project_type(project_pathname)
661
+ </span><span class="inferred0"><a name="line61"></a> 61 # TODO.
662
+ </span><span class="inferred1"><a name="line62"></a> 62 end
663
+ </span><span class="inferred0"><a name="line63"></a> 63 end
664
+ </span><span class="inferred1"><a name="line64"></a> 64
665
+ </span><span class="marked0"><a name="line65"></a> 65 class MsBuildCmd
666
+ </span><span class="marked1"><a name="line66"></a> 66 attr_accessor :project, :properties, :targets, :verbosity
667
+ </span><span class="inferred0"><a name="line67"></a> 67
668
+ </span><span class="marked1"><a name="line68"></a> 68 def initialize(project='default.proj', properties={}, targets=[], verbosity='n', working_dir=nil)
669
+ </span><span class="uncovered0"><a name="line69"></a> 69 @project = project
670
+ </span><span class="uncovered1"><a name="line70"></a> 70 @properties = properties
671
+ </span><span class="uncovered0"><a name="line71"></a> 71 @targets = targets
672
+ </span><span class="uncovered1"><a name="line72"></a> 72 @verbosity = verbosity
673
+ </span><span class="uncovered0"><a name="line73"></a> 73 @working_dir = working_dir
674
+ </span><span class="uncovered1"><a name="line74"></a> 74 @exe = '&quot;' + File.join(ENV['windir'].dup, 'Microsoft.NET', 'Framework', 'v3.5', 'msbuild.exe') + '&quot;'
675
+ </span><span class="uncovered0"><a name="line75"></a> 75 end
676
+ </span><span class="inferred1"><a name="line76"></a> 76
677
+ </span><span class="marked0"><a name="line77"></a> 77 def cmd
678
+ </span><span class="uncovered1"><a name="line78"></a> 78 &quot;#{@exe} #{project} /maxcpucount /v:#{@verbosity} /p:#{properties} /t:#{targets}&quot;
679
+ </span><span class="uncovered0"><a name="line79"></a> 79 end
680
+ </span><span class="inferred1"><a name="line80"></a> 80
681
+ </span><span class="marked0"><a name="line81"></a> 81 def run
682
+ </span><span class="uncovered1"><a name="line82"></a> 82 if @working_dir
683
+ </span><span class="uncovered0"><a name="line83"></a> 83 chdir(@working_dir) do
684
+ </span><span class="uncovered1"><a name="line84"></a> 84 puts cmd if VERBOSE
685
+ </span><span class="uncovered0"><a name="line85"></a> 85 sh cmd
686
+ </span><span class="uncovered1"><a name="line86"></a> 86 end
687
+ </span><span class="uncovered0"><a name="line87"></a> 87 end
688
+ </span><span class="uncovered1"><a name="line88"></a> 88 end
689
+ </span><span class="inferred0"><a name="line89"></a> 89
690
+ </span><span class="marked1"><a name="line90"></a> 90 def project
691
+ </span><span class="uncovered0"><a name="line91"></a> 91 &quot;\&quot;#{@project}\&quot;&quot;
692
+ </span><span class="uncovered1"><a name="line92"></a> 92 end
693
+ </span><span class="inferred0"><a name="line93"></a> 93
694
+ </span><span class="marked1"><a name="line94"></a> 94 def targets
695
+ </span><span class="uncovered0"><a name="line95"></a> 95 @targets.join(';')
696
+ </span><span class="uncovered1"><a name="line96"></a> 96 end
697
+ </span><span class="inferred0"><a name="line97"></a> 97
698
+ </span><span class="marked1"><a name="line98"></a> 98 def properties
699
+ </span><span class="uncovered0"><a name="line99"></a> 99 p = []
700
+ </span><span class="uncovered1"><a name="line100"></a>100 @properties.each {|key, value| p.push(&quot;#{key}=#{value}&quot;) }
701
+ </span><span class="uncovered0"><a name="line101"></a>101 p.join(';')
702
+ </span><span class="uncovered1"><a name="line102"></a>102 end
703
+ </span><span class="uncovered0"><a name="line103"></a>103 end
704
+ </span></pre><hr/>
705
+ <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
706
+ version 0.8.1.2.</p>
707
+ <p><a href='http://validator.w3.org/check/referer'><img src='http://www.w3.org/Icons/valid-xhtml10' height='31' alt='Valid XHTML 1.0!' width='88'/>
708
+ </a>
709
+ <a href='http://jigsaw.w3.org/css-validator/check/referer'><img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px'/>
710
+ </a>
711
+ </p>
712
+ </body>
713
+ </html>