classx 0.0.3 → 0.0.4
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.
- data/ChangeLog +354 -0
- data/README +5 -0
- data/Rakefile +2 -2
- data/bench/attribute_get.rb +73 -0
- data/bench/attribute_set.rb +53 -19
- data/bench/define_attribute.rb +226 -0
- data/bench/initialize.rb +25 -7
- data/doc/output/coverage/index.html +74 -128
- data/doc/output/coverage/lib-classx-attribute_rb.html +291 -190
- data/doc/output/coverage/lib-classx-attributes_rb.html +167 -101
- data/doc/output/coverage/lib-classx-bracketable_rb.html +671 -0
- data/doc/output/coverage/lib-classx-class_attributes_rb.html +775 -0
- data/doc/output/coverage/lib-classx-commandable_rb.html +727 -0
- data/doc/output/coverage/{-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-block_rb.html → lib-classx-declare_rb.html} +60 -62
- data/doc/output/coverage/lib-classx-validate_rb.html +43 -41
- data/doc/output/coverage/lib-classx_rb.html +208 -78
- data/example/commandable.rb +1 -0
- data/lib/classx.rb +146 -16
- data/lib/classx/attribute.rb +244 -143
- data/lib/classx/attributes.rb +93 -27
- data/lib/classx/bracketable.rb +61 -0
- data/lib/classx/class_attributes.rb +165 -0
- data/lib/classx/commandable.rb +55 -4
- data/lib/classx/declare.rb +40 -3
- data/lib/classx/role/logger.rb +17 -13
- data/lib/classx/validate.rb +26 -24
- data/spec/classx/handles_spec.rb +21 -6
- data/spec/classx/serialize_spec.rb +57 -0
- data/spec/classx/{with_coerce.rb → with_coerce_spec.rb} +0 -0
- data/spec/classx/with_extend_spec.rb +58 -0
- data/spec/classx/with_include_spec.rb +58 -0
- data/spec/classx/with_validate_spec.rb +363 -0
- data/spec/classx/without_anyoption_spec.rb +1 -1
- data/spec/classx/writable_option_spec.rb +29 -4
- data/spec/classx_bracketable_spec.rb +160 -0
- data/spec/classx_class_attributes/default_option_spec.rb +121 -0
- data/spec/classx_class_attributes/dsl_accessor_spec.rb +88 -0
- data/spec/classx_class_attributes/handles_spec.rb +77 -0
- data/spec/classx_class_attributes/with_coerce_spec.rb +119 -0
- data/spec/classx_class_attributes/with_extend_spec.rb +64 -0
- data/spec/classx_class_attributes/with_include_spec.rb +64 -0
- data/spec/classx_class_attributes/with_multiple_class_spec.rb +60 -0
- data/spec/classx_class_attributes/with_validate_spec.rb +248 -0
- data/spec/classx_class_attributes/without_accessor_spec.rb +19 -0
- data/spec/classx_class_attributes/without_anyoption_spec.rb +21 -0
- data/spec/classx_class_attributes/writable_option_spec.rb +100 -0
- data/spec/classx_declare_spec.rb +117 -0
- data/spec/classx_validate_spec.rb +1 -3
- data/tasks/basic_tasks.rake +1 -1
- metadata +36 -26
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-callbacks_rb.html +0 -932
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-change_rb.html +0 -779
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-hunk_rb.html +0 -867
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs_rb.html +0 -1715
- data/doc/output/coverage/-Library-Ruby-Gems-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +0 -1598
- data/spec/classx/with_extend.rb +0 -27
- data/spec/classx/with_include.rb +0 -27
@@ -1,867 +0,0 @@
|
|
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>/Library/Ruby/Gems/gems/diff-lcs-1.1.2/lib/diff/lcs/hunk.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 Sat Aug 23 14:29:19 +0900 2008 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'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='-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-hunk_rb.html'>/Library/Ruby/Gems/gems/diff-lcs-1.1.2/lib/diff/lcs/hunk.rb</a>
|
573
|
-
</td>
|
574
|
-
<td class='lines_total'><tt>257</tt>
|
575
|
-
</td>
|
576
|
-
<td class='lines_code'><tt>170</tt>
|
577
|
-
</td>
|
578
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>25.3%</tt>
|
579
|
-
</td>
|
580
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='25'/>
|
581
|
-
<td class='uncovered' width='75'/>
|
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'>11.8%</tt>
|
589
|
-
</td>
|
590
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='12'/>
|
591
|
-
<td class='uncovered' width='88'/>
|
592
|
-
</tr>
|
593
|
-
</table>
|
594
|
-
</td>
|
595
|
-
</tr>
|
596
|
-
</table>
|
597
|
-
</td>
|
598
|
-
</tr>
|
599
|
-
</tbody>
|
600
|
-
</table>
|
601
|
-
<pre><span class="inferred0"><a name="line1"></a> 1 #! /usr/env/bin ruby
|
602
|
-
</span><span class="inferred1"><a name="line2"></a> 2 #--
|
603
|
-
</span><span class="inferred0"><a name="line3"></a> 3 # Copyright 2004 Austin Ziegler <diff-lcs@halostatue.ca>
|
604
|
-
</span><span class="inferred1"><a name="line4"></a> 4 # adapted from:
|
605
|
-
</span><span class="inferred0"><a name="line5"></a> 5 # Algorithm::Diff (Perl) by Ned Konz <perl@bike-nomad.com>
|
606
|
-
</span><span class="inferred1"><a name="line6"></a> 6 # Smalltalk by Mario I. Wolczko <mario@wolczko.com>
|
607
|
-
</span><span class="inferred0"><a name="line7"></a> 7 # implements McIlroy-Hunt diff algorithm
|
608
|
-
</span><span class="inferred1"><a name="line8"></a> 8 #
|
609
|
-
</span><span class="inferred0"><a name="line9"></a> 9 # This program is free software. It may be redistributed and/or modified under
|
610
|
-
</span><span class="inferred1"><a name="line10"></a> 10 # the terms of the GPL version 2 (or later), the Perl Artistic licence, or the
|
611
|
-
</span><span class="inferred0"><a name="line11"></a> 11 # Ruby licence.
|
612
|
-
</span><span class="inferred1"><a name="line12"></a> 12 #
|
613
|
-
</span><span class="inferred0"><a name="line13"></a> 13 # $Id: hunk.rb,v 1.2 2004/08/08 20:33:09 austin Exp $
|
614
|
-
</span><span class="inferred1"><a name="line14"></a> 14 #++
|
615
|
-
</span><span class="inferred0"><a name="line15"></a> 15 # Contains Diff::LCS::Hunk for bin/ldiff.
|
616
|
-
</span><span class="inferred1"><a name="line16"></a> 16
|
617
|
-
</span><span class="marked0"><a name="line17"></a> 17 require 'diff/lcs/block'
|
618
|
-
</span><span class="inferred1"><a name="line18"></a> 18
|
619
|
-
</span><span class="inferred0"><a name="line19"></a> 19 # A Hunk is a group of Blocks which overlap because of the context
|
620
|
-
</span><span class="inferred1"><a name="line20"></a> 20 # surrounding each block. (So if we're not using context, every hunk will
|
621
|
-
</span><span class="inferred0"><a name="line21"></a> 21 # contain one block.) Used in the diff program (bin/diff).
|
622
|
-
</span><span class="marked1"><a name="line22"></a> 22 class Diff::LCS::Hunk
|
623
|
-
</span><span class="inferred0"><a name="line23"></a> 23 # Create a hunk using references to both the old and new data, as well as
|
624
|
-
</span><span class="inferred1"><a name="line24"></a> 24 # the piece of data
|
625
|
-
</span><span class="marked0"><a name="line25"></a> 25 def initialize(data_old, data_new, piece, context, file_length_difference)
|
626
|
-
</span><span class="uncovered1"><a name="line26"></a> 26 # At first, a hunk will have just one Block in it
|
627
|
-
</span><span class="uncovered0"><a name="line27"></a> 27 @blocks = [ Diff::LCS::Block.new(piece) ]
|
628
|
-
</span><span class="uncovered1"><a name="line28"></a> 28 @data_old = data_old
|
629
|
-
</span><span class="uncovered0"><a name="line29"></a> 29 @data_new = data_new
|
630
|
-
</span><span class="uncovered1"><a name="line30"></a> 30
|
631
|
-
</span><span class="uncovered0"><a name="line31"></a> 31 before = after = file_length_difference
|
632
|
-
</span><span class="uncovered1"><a name="line32"></a> 32 after += @blocks[0].diff_size
|
633
|
-
</span><span class="uncovered0"><a name="line33"></a> 33 @file_length_difference = after # The caller must get this manually
|
634
|
-
</span><span class="uncovered1"><a name="line34"></a> 34
|
635
|
-
</span><span class="uncovered0"><a name="line35"></a> 35 # Save the start & end of each array. If the array doesn't exist
|
636
|
-
</span><span class="uncovered1"><a name="line36"></a> 36 # (e.g., we're only adding items in this block), then figure out the
|
637
|
-
</span><span class="uncovered0"><a name="line37"></a> 37 # line number based on the line number of the other file and the
|
638
|
-
</span><span class="uncovered1"><a name="line38"></a> 38 # current difference in file lengths.
|
639
|
-
</span><span class="uncovered0"><a name="line39"></a> 39 if @blocks[0].remove.empty?
|
640
|
-
</span><span class="uncovered1"><a name="line40"></a> 40 a1 = a2 = nil
|
641
|
-
</span><span class="uncovered0"><a name="line41"></a> 41 else
|
642
|
-
</span><span class="uncovered1"><a name="line42"></a> 42 a1 = @blocks[0].remove[0].position
|
643
|
-
</span><span class="uncovered0"><a name="line43"></a> 43 a2 = @blocks[0].remove[-1].position
|
644
|
-
</span><span class="uncovered1"><a name="line44"></a> 44 end
|
645
|
-
</span><span class="uncovered0"><a name="line45"></a> 45
|
646
|
-
</span><span class="uncovered1"><a name="line46"></a> 46 if @blocks[0].insert.empty?
|
647
|
-
</span><span class="uncovered0"><a name="line47"></a> 47 b1 = b2 = nil
|
648
|
-
</span><span class="uncovered1"><a name="line48"></a> 48 else
|
649
|
-
</span><span class="uncovered0"><a name="line49"></a> 49 b1 = @blocks[0].insert[0].position
|
650
|
-
</span><span class="uncovered1"><a name="line50"></a> 50 b2 = @blocks[0].insert[-1].position
|
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 @start_old = a1 || (b1 - before)
|
654
|
-
</span><span class="uncovered1"><a name="line54"></a> 54 @start_new = b1 || (a1 + before)
|
655
|
-
</span><span class="uncovered0"><a name="line55"></a> 55 @end_old = a2 || (b2 - after)
|
656
|
-
</span><span class="uncovered1"><a name="line56"></a> 56 @end_new = b2 || (a2 + after)
|
657
|
-
</span><span class="uncovered0"><a name="line57"></a> 57
|
658
|
-
</span><span class="uncovered1"><a name="line58"></a> 58 self.flag_context = context
|
659
|
-
</span><span class="uncovered0"><a name="line59"></a> 59 end
|
660
|
-
</span><span class="inferred1"><a name="line60"></a> 60
|
661
|
-
</span><span class="marked0"><a name="line61"></a> 61 attr_reader :blocks
|
662
|
-
</span><span class="marked1"><a name="line62"></a> 62 attr_reader :start_old, :start_new
|
663
|
-
</span><span class="marked0"><a name="line63"></a> 63 attr_reader :end_old, :end_new
|
664
|
-
</span><span class="marked1"><a name="line64"></a> 64 attr_reader :file_length_difference
|
665
|
-
</span><span class="inferred0"><a name="line65"></a> 65
|
666
|
-
</span><span class="inferred1"><a name="line66"></a> 66 # Change the "start" and "end" fields to note that context should be added
|
667
|
-
</span><span class="inferred0"><a name="line67"></a> 67 # to this hunk
|
668
|
-
</span><span class="marked1"><a name="line68"></a> 68 attr_accessor :flag_context
|
669
|
-
</span><span class="marked0"><a name="line69"></a> 69 def flag_context=(context) #:nodoc:
|
670
|
-
</span><span class="uncovered1"><a name="line70"></a> 70 return if context.nil? or context.zero?
|
671
|
-
</span><span class="uncovered0"><a name="line71"></a> 71
|
672
|
-
</span><span class="uncovered1"><a name="line72"></a> 72 add_start = (context > @start_old) ? @start_old : context
|
673
|
-
</span><span class="uncovered0"><a name="line73"></a> 73 @start_old -= add_start
|
674
|
-
</span><span class="uncovered1"><a name="line74"></a> 74 @start_new -= add_start
|
675
|
-
</span><span class="uncovered0"><a name="line75"></a> 75
|
676
|
-
</span><span class="uncovered1"><a name="line76"></a> 76 if (@end_old + context) > @data_old.size
|
677
|
-
</span><span class="uncovered0"><a name="line77"></a> 77 add_end = @data_old.size - @end_old
|
678
|
-
</span><span class="uncovered1"><a name="line78"></a> 78 else
|
679
|
-
</span><span class="uncovered0"><a name="line79"></a> 79 add_end = context
|
680
|
-
</span><span class="uncovered1"><a name="line80"></a> 80 end
|
681
|
-
</span><span class="uncovered0"><a name="line81"></a> 81 @end_old += add_end
|
682
|
-
</span><span class="uncovered1"><a name="line82"></a> 82 @end_new += add_end
|
683
|
-
</span><span class="uncovered0"><a name="line83"></a> 83 end
|
684
|
-
</span><span class="inferred1"><a name="line84"></a> 84
|
685
|
-
</span><span class="marked0"><a name="line85"></a> 85 def unshift(hunk)
|
686
|
-
</span><span class="uncovered1"><a name="line86"></a> 86 @start_old = hunk.start_old
|
687
|
-
</span><span class="uncovered0"><a name="line87"></a> 87 @start_new = hunk.start_new
|
688
|
-
</span><span class="uncovered1"><a name="line88"></a> 88 blocks.unshift(*hunk.blocks)
|
689
|
-
</span><span class="uncovered0"><a name="line89"></a> 89 end
|
690
|
-
</span><span class="inferred1"><a name="line90"></a> 90
|
691
|
-
</span><span class="inferred0"><a name="line91"></a> 91 # Is there an overlap between hunk arg0 and old hunk arg1? Note: if end
|
692
|
-
</span><span class="inferred1"><a name="line92"></a> 92 # of old hunk is one less than beginning of second, they overlap
|
693
|
-
</span><span class="marked0"><a name="line93"></a> 93 def overlaps?(hunk = nil)
|
694
|
-
</span><span class="uncovered1"><a name="line94"></a> 94 return nil if hunk.nil?
|
695
|
-
</span><span class="uncovered0"><a name="line95"></a> 95
|
696
|
-
</span><span class="uncovered1"><a name="line96"></a> 96 a = (@start_old - hunk.end_old) <= 1
|
697
|
-
</span><span class="uncovered0"><a name="line97"></a> 97 b = (@start_new - hunk.end_new) <= 1
|
698
|
-
</span><span class="uncovered1"><a name="line98"></a> 98 return (a or b)
|
699
|
-
</span><span class="uncovered0"><a name="line99"></a> 99 end
|
700
|
-
</span><span class="inferred1"><a name="line100"></a>100
|
701
|
-
</span><span class="marked0"><a name="line101"></a>101 def diff(format)
|
702
|
-
</span><span class="uncovered1"><a name="line102"></a>102 case format
|
703
|
-
</span><span class="uncovered0"><a name="line103"></a>103 when :old
|
704
|
-
</span><span class="uncovered1"><a name="line104"></a>104 old_diff
|
705
|
-
</span><span class="uncovered0"><a name="line105"></a>105 when :unified
|
706
|
-
</span><span class="uncovered1"><a name="line106"></a>106 unified_diff
|
707
|
-
</span><span class="uncovered0"><a name="line107"></a>107 when :context
|
708
|
-
</span><span class="uncovered1"><a name="line108"></a>108 context_diff
|
709
|
-
</span><span class="uncovered0"><a name="line109"></a>109 when :ed
|
710
|
-
</span><span class="uncovered1"><a name="line110"></a>110 self
|
711
|
-
</span><span class="uncovered0"><a name="line111"></a>111 when :reverse_ed, :ed_finish
|
712
|
-
</span><span class="uncovered1"><a name="line112"></a>112 ed_diff(format)
|
713
|
-
</span><span class="uncovered0"><a name="line113"></a>113 else
|
714
|
-
</span><span class="uncovered1"><a name="line114"></a>114 raise "Unknown diff format #{format}."
|
715
|
-
</span><span class="uncovered0"><a name="line115"></a>115 end
|
716
|
-
</span><span class="uncovered1"><a name="line116"></a>116 end
|
717
|
-
</span><span class="inferred0"><a name="line117"></a>117
|
718
|
-
</span><span class="marked1"><a name="line118"></a>118 def each_old(block)
|
719
|
-
</span><span class="uncovered0"><a name="line119"></a>119 @data_old[@start_old .. @end_old].each { |e| yield e }
|
720
|
-
</span><span class="uncovered1"><a name="line120"></a>120 end
|
721
|
-
</span><span class="inferred0"><a name="line121"></a>121
|
722
|
-
</span><span class="marked1"><a name="line122"></a>122 private
|
723
|
-
</span><span class="inferred0"><a name="line123"></a>123 # Note that an old diff can't have any context. Therefore, we know that
|
724
|
-
</span><span class="inferred1"><a name="line124"></a>124 # there's only one block in the hunk.
|
725
|
-
</span><span class="marked0"><a name="line125"></a>125 def old_diff
|
726
|
-
</span><span class="uncovered1"><a name="line126"></a>126 warn "Expecting only one block in an old diff hunk!" if @blocks.size > 1
|
727
|
-
</span><span class="uncovered0"><a name="line127"></a>127 op_act = { "+" => 'a', "-" => 'd', "!" => "c" }
|
728
|
-
</span><span class="uncovered1"><a name="line128"></a>128
|
729
|
-
</span><span class="uncovered0"><a name="line129"></a>129 block = @blocks[0]
|
730
|
-
</span><span class="uncovered1"><a name="line130"></a>130
|
731
|
-
</span><span class="uncovered0"><a name="line131"></a>131 # Calculate item number range. Old diff range is just like a context
|
732
|
-
</span><span class="uncovered1"><a name="line132"></a>132 # diff range, except the ranges are on one line with the action between
|
733
|
-
</span><span class="uncovered0"><a name="line133"></a>133 # them.
|
734
|
-
</span><span class="uncovered1"><a name="line134"></a>134 s = "#{context_range(:old)}#{op_act[block.op]}#{context_range(:new)}\n"
|
735
|
-
</span><span class="uncovered0"><a name="line135"></a>135 # If removing anything, just print out all the remove lines in the hunk
|
736
|
-
</span><span class="uncovered1"><a name="line136"></a>136 # which is just all the remove lines in the block.
|
737
|
-
</span><span class="uncovered0"><a name="line137"></a>137 @data_old[@start_old .. @end_old].each { |e| s << "< #{e}\n" } unless block.remove.empty?
|
738
|
-
</span><span class="uncovered1"><a name="line138"></a>138 s << "---\n" if block.op == "!"
|
739
|
-
</span><span class="uncovered0"><a name="line139"></a>139 @data_new[@start_new .. @end_new].each { |e| s << "> #{e}\n" } unless block.insert.empty?
|
740
|
-
</span><span class="uncovered1"><a name="line140"></a>140 s
|
741
|
-
</span><span class="uncovered0"><a name="line141"></a>141 end
|
742
|
-
</span><span class="inferred1"><a name="line142"></a>142
|
743
|
-
</span><span class="marked0"><a name="line143"></a>143 def unified_diff
|
744
|
-
</span><span class="uncovered1"><a name="line144"></a>144 # Calculate item number range.
|
745
|
-
</span><span class="uncovered0"><a name="line145"></a>145 s = "@@ -#{unified_range(:old)} +#{unified_range(:new)} @@\n"
|
746
|
-
</span><span class="uncovered1"><a name="line146"></a>146
|
747
|
-
</span><span class="uncovered0"><a name="line147"></a>147 # Outlist starts containing the hunk of the old file. Removing an item
|
748
|
-
</span><span class="uncovered1"><a name="line148"></a>148 # just means putting a '-' in front of it. Inserting an item requires
|
749
|
-
</span><span class="uncovered0"><a name="line149"></a>149 # getting it from the new file and splicing it in. We splice in
|
750
|
-
</span><span class="uncovered1"><a name="line150"></a>150 # +num_added+ items. Remove blocks use +num_added+ because splicing
|
751
|
-
</span><span class="uncovered0"><a name="line151"></a>151 # changed the length of outlist.
|
752
|
-
</span><span class="uncovered1"><a name="line152"></a>152 #
|
753
|
-
</span><span class="uncovered0"><a name="line153"></a>153 # We remove +num_removed+ items. Insert blocks use +num_removed+
|
754
|
-
</span><span class="uncovered1"><a name="line154"></a>154 # because their item numbers -- corresponding to positions in the NEW
|
755
|
-
</span><span class="uncovered0"><a name="line155"></a>155 # file -- don't take removed items into account.
|
756
|
-
</span><span class="uncovered1"><a name="line156"></a>156 lo, hi, num_added, num_removed = @start_old, @end_old, 0, 0
|
757
|
-
</span><span class="uncovered0"><a name="line157"></a>157
|
758
|
-
</span><span class="uncovered1"><a name="line158"></a>158 outlist = @data_old[lo .. hi].collect { |e| e.gsub(/^/, ' ') }
|
759
|
-
</span><span class="uncovered0"><a name="line159"></a>159
|
760
|
-
</span><span class="uncovered1"><a name="line160"></a>160 @blocks.each do |block|
|
761
|
-
</span><span class="uncovered0"><a name="line161"></a>161 block.remove.each do |item|
|
762
|
-
</span><span class="uncovered1"><a name="line162"></a>162 op = item.action.to_s # -
|
763
|
-
</span><span class="uncovered0"><a name="line163"></a>163 offset = item.position - lo + num_added
|
764
|
-
</span><span class="uncovered1"><a name="line164"></a>164 outlist[offset].gsub!(/^ /, op.to_s)
|
765
|
-
</span><span class="uncovered0"><a name="line165"></a>165 num_removed += 1
|
766
|
-
</span><span class="uncovered1"><a name="line166"></a>166 end
|
767
|
-
</span><span class="uncovered0"><a name="line167"></a>167 block.insert.each do |item|
|
768
|
-
</span><span class="uncovered1"><a name="line168"></a>168 op = item.action.to_s # +
|
769
|
-
</span><span class="uncovered0"><a name="line169"></a>169 offset = item.position - @start_new + num_removed
|
770
|
-
</span><span class="uncovered1"><a name="line170"></a>170 outlist[offset, 0] = "#{op}#{@data_new[item.position]}"
|
771
|
-
</span><span class="uncovered0"><a name="line171"></a>171 num_added += 1
|
772
|
-
</span><span class="uncovered1"><a name="line172"></a>172 end
|
773
|
-
</span><span class="uncovered0"><a name="line173"></a>173 end
|
774
|
-
</span><span class="uncovered1"><a name="line174"></a>174
|
775
|
-
</span><span class="uncovered0"><a name="line175"></a>175 s << outlist.join("\n")
|
776
|
-
</span><span class="uncovered1"><a name="line176"></a>176 end
|
777
|
-
</span><span class="inferred0"><a name="line177"></a>177
|
778
|
-
</span><span class="marked1"><a name="line178"></a>178 def context_diff
|
779
|
-
</span><span class="uncovered0"><a name="line179"></a>179 s = "***************\n"
|
780
|
-
</span><span class="uncovered1"><a name="line180"></a>180 s << "*** #{context_range(:old)} ****\n"
|
781
|
-
</span><span class="uncovered0"><a name="line181"></a>181 r = context_range(:new)
|
782
|
-
</span><span class="uncovered1"><a name="line182"></a>182
|
783
|
-
</span><span class="uncovered0"><a name="line183"></a>183 # Print out file 1 part for each block in context diff format if there
|
784
|
-
</span><span class="uncovered1"><a name="line184"></a>184 # are any blocks that remove items
|
785
|
-
</span><span class="uncovered0"><a name="line185"></a>185 lo, hi = @start_old, @end_old
|
786
|
-
</span><span class="uncovered1"><a name="line186"></a>186 removes = @blocks.select { |e| not e.remove.empty? }
|
787
|
-
</span><span class="uncovered0"><a name="line187"></a>187 if removes
|
788
|
-
</span><span class="uncovered1"><a name="line188"></a>188 outlist = @data_old[lo .. hi].collect { |e| e.gsub(/^/, ' ') }
|
789
|
-
</span><span class="uncovered0"><a name="line189"></a>189 removes.each do |block|
|
790
|
-
</span><span class="uncovered1"><a name="line190"></a>190 block.remove.each do |item|
|
791
|
-
</span><span class="uncovered0"><a name="line191"></a>191 outlist[item.position - lo].gsub!(/^ /) { block.op } # - or !
|
792
|
-
</span><span class="uncovered1"><a name="line192"></a>192 end
|
793
|
-
</span><span class="uncovered0"><a name="line193"></a>193 end
|
794
|
-
</span><span class="uncovered1"><a name="line194"></a>194 s << outlist.join("\n")
|
795
|
-
</span><span class="uncovered0"><a name="line195"></a>195 end
|
796
|
-
</span><span class="uncovered1"><a name="line196"></a>196
|
797
|
-
</span><span class="uncovered0"><a name="line197"></a>197 s << "\n--- #{r} ----\n"
|
798
|
-
</span><span class="uncovered1"><a name="line198"></a>198 lo, hi = @start_new, @end_new
|
799
|
-
</span><span class="uncovered0"><a name="line199"></a>199 inserts = @blocks.select { |e| not e.insert.empty? }
|
800
|
-
</span><span class="uncovered1"><a name="line200"></a>200 if inserts
|
801
|
-
</span><span class="uncovered0"><a name="line201"></a>201 outlist = @data_new[lo .. hi].collect { |e| e.gsub(/^/, ' ') }
|
802
|
-
</span><span class="uncovered1"><a name="line202"></a>202 inserts.each do |block|
|
803
|
-
</span><span class="uncovered0"><a name="line203"></a>203 block.insert.each do |item|
|
804
|
-
</span><span class="uncovered1"><a name="line204"></a>204 outlist[item.position - lo].gsub!(/^ /) { block.op } # + or !
|
805
|
-
</span><span class="uncovered0"><a name="line205"></a>205 end
|
806
|
-
</span><span class="uncovered1"><a name="line206"></a>206 end
|
807
|
-
</span><span class="uncovered0"><a name="line207"></a>207 s << outlist.join("\n")
|
808
|
-
</span><span class="uncovered1"><a name="line208"></a>208 end
|
809
|
-
</span><span class="uncovered0"><a name="line209"></a>209 s
|
810
|
-
</span><span class="uncovered1"><a name="line210"></a>210 end
|
811
|
-
</span><span class="inferred0"><a name="line211"></a>211
|
812
|
-
</span><span class="marked1"><a name="line212"></a>212 def ed_diff(format)
|
813
|
-
</span><span class="uncovered0"><a name="line213"></a>213 op_act = { "+" => 'a', "-" => 'd', "!" => "c" }
|
814
|
-
</span><span class="uncovered1"><a name="line214"></a>214 warn "Expecting only one block in an old diff hunk!" if @blocks.size > 1
|
815
|
-
</span><span class="uncovered0"><a name="line215"></a>215
|
816
|
-
</span><span class="uncovered1"><a name="line216"></a>216 if format == :reverse_ed
|
817
|
-
</span><span class="uncovered0"><a name="line217"></a>217 s = "#{op_act[@blocks[0].op]}#{context_range(:old)}\n"
|
818
|
-
</span><span class="uncovered1"><a name="line218"></a>218 else
|
819
|
-
</span><span class="uncovered0"><a name="line219"></a>219 s = "#{context_range(:old).gsub(/,/, ' ')}#{op_act[@blocks[0].op]}\n"
|
820
|
-
</span><span class="uncovered1"><a name="line220"></a>220 end
|
821
|
-
</span><span class="uncovered0"><a name="line221"></a>221
|
822
|
-
</span><span class="uncovered1"><a name="line222"></a>222 unless @blocks[0].insert.empty?
|
823
|
-
</span><span class="uncovered0"><a name="line223"></a>223 @data_new[@start_new .. @end_new].each { |e| s << "#{e}\n" }
|
824
|
-
</span><span class="uncovered1"><a name="line224"></a>224 s << ".\n"
|
825
|
-
</span><span class="uncovered0"><a name="line225"></a>225 end
|
826
|
-
</span><span class="uncovered1"><a name="line226"></a>226 s
|
827
|
-
</span><span class="uncovered0"><a name="line227"></a>227 end
|
828
|
-
</span><span class="inferred1"><a name="line228"></a>228
|
829
|
-
</span><span class="inferred0"><a name="line229"></a>229 # Generate a range of item numbers to print. Only print 1 number if the
|
830
|
-
</span><span class="inferred1"><a name="line230"></a>230 # range has only one item in it. Otherwise, it's 'start,end'
|
831
|
-
</span><span class="marked0"><a name="line231"></a>231 def context_range(mode)
|
832
|
-
</span><span class="uncovered1"><a name="line232"></a>232 case mode
|
833
|
-
</span><span class="uncovered0"><a name="line233"></a>233 when :old
|
834
|
-
</span><span class="uncovered1"><a name="line234"></a>234 s, e = (@start_old + 1), (@end_old + 1)
|
835
|
-
</span><span class="uncovered0"><a name="line235"></a>235 when :new
|
836
|
-
</span><span class="uncovered1"><a name="line236"></a>236 s, e = (@start_new + 1), (@end_new + 1)
|
837
|
-
</span><span class="uncovered0"><a name="line237"></a>237 end
|
838
|
-
</span><span class="uncovered1"><a name="line238"></a>238
|
839
|
-
</span><span class="uncovered0"><a name="line239"></a>239 (s < e) ? "#{s},#{e}" : "#{e}"
|
840
|
-
</span><span class="uncovered1"><a name="line240"></a>240 end
|
841
|
-
</span><span class="inferred0"><a name="line241"></a>241
|
842
|
-
</span><span class="inferred1"><a name="line242"></a>242 # Generate a range of item numbers to print for unified diff. Print
|
843
|
-
</span><span class="inferred0"><a name="line243"></a>243 # number where block starts, followed by number of lines in the block
|
844
|
-
</span><span class="inferred1"><a name="line244"></a>244 # (don't print number of lines if it's 1)
|
845
|
-
</span><span class="marked0"><a name="line245"></a>245 def unified_range(mode)
|
846
|
-
</span><span class="uncovered1"><a name="line246"></a>246 case mode
|
847
|
-
</span><span class="uncovered0"><a name="line247"></a>247 when :old
|
848
|
-
</span><span class="uncovered1"><a name="line248"></a>248 s, e = (@start_old + 1), (@end_old + 1)
|
849
|
-
</span><span class="uncovered0"><a name="line249"></a>249 when :new
|
850
|
-
</span><span class="uncovered1"><a name="line250"></a>250 s, e = (@start_new + 1), (@end_new + 1)
|
851
|
-
</span><span class="uncovered0"><a name="line251"></a>251 end
|
852
|
-
</span><span class="uncovered1"><a name="line252"></a>252
|
853
|
-
</span><span class="uncovered0"><a name="line253"></a>253 length = e - s + 1
|
854
|
-
</span><span class="uncovered1"><a name="line254"></a>254 first = (length < 2) ? e : s # "strange, but correct"
|
855
|
-
</span><span class="uncovered0"><a name="line255"></a>255 (length == 1) ? "#{first}" : "#{first},#{length}"
|
856
|
-
</span><span class="uncovered1"><a name="line256"></a>256 end
|
857
|
-
</span><span class="uncovered0"><a name="line257"></a>257 end
|
858
|
-
</span></pre><hr/>
|
859
|
-
<p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
|
860
|
-
version 0.8.1.2.</p>
|
861
|
-
<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'/>
|
862
|
-
</a>
|
863
|
-
<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'/>
|
864
|
-
</a>
|
865
|
-
</p>
|
866
|
-
</body>
|
867
|
-
</html>
|