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.
Files changed (57) hide show
  1. data/ChangeLog +354 -0
  2. data/README +5 -0
  3. data/Rakefile +2 -2
  4. data/bench/attribute_get.rb +73 -0
  5. data/bench/attribute_set.rb +53 -19
  6. data/bench/define_attribute.rb +226 -0
  7. data/bench/initialize.rb +25 -7
  8. data/doc/output/coverage/index.html +74 -128
  9. data/doc/output/coverage/lib-classx-attribute_rb.html +291 -190
  10. data/doc/output/coverage/lib-classx-attributes_rb.html +167 -101
  11. data/doc/output/coverage/lib-classx-bracketable_rb.html +671 -0
  12. data/doc/output/coverage/lib-classx-class_attributes_rb.html +775 -0
  13. data/doc/output/coverage/lib-classx-commandable_rb.html +727 -0
  14. 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
  15. data/doc/output/coverage/lib-classx-validate_rb.html +43 -41
  16. data/doc/output/coverage/lib-classx_rb.html +208 -78
  17. data/example/commandable.rb +1 -0
  18. data/lib/classx.rb +146 -16
  19. data/lib/classx/attribute.rb +244 -143
  20. data/lib/classx/attributes.rb +93 -27
  21. data/lib/classx/bracketable.rb +61 -0
  22. data/lib/classx/class_attributes.rb +165 -0
  23. data/lib/classx/commandable.rb +55 -4
  24. data/lib/classx/declare.rb +40 -3
  25. data/lib/classx/role/logger.rb +17 -13
  26. data/lib/classx/validate.rb +26 -24
  27. data/spec/classx/handles_spec.rb +21 -6
  28. data/spec/classx/serialize_spec.rb +57 -0
  29. data/spec/classx/{with_coerce.rb → with_coerce_spec.rb} +0 -0
  30. data/spec/classx/with_extend_spec.rb +58 -0
  31. data/spec/classx/with_include_spec.rb +58 -0
  32. data/spec/classx/with_validate_spec.rb +363 -0
  33. data/spec/classx/without_anyoption_spec.rb +1 -1
  34. data/spec/classx/writable_option_spec.rb +29 -4
  35. data/spec/classx_bracketable_spec.rb +160 -0
  36. data/spec/classx_class_attributes/default_option_spec.rb +121 -0
  37. data/spec/classx_class_attributes/dsl_accessor_spec.rb +88 -0
  38. data/spec/classx_class_attributes/handles_spec.rb +77 -0
  39. data/spec/classx_class_attributes/with_coerce_spec.rb +119 -0
  40. data/spec/classx_class_attributes/with_extend_spec.rb +64 -0
  41. data/spec/classx_class_attributes/with_include_spec.rb +64 -0
  42. data/spec/classx_class_attributes/with_multiple_class_spec.rb +60 -0
  43. data/spec/classx_class_attributes/with_validate_spec.rb +248 -0
  44. data/spec/classx_class_attributes/without_accessor_spec.rb +19 -0
  45. data/spec/classx_class_attributes/without_anyoption_spec.rb +21 -0
  46. data/spec/classx_class_attributes/writable_option_spec.rb +100 -0
  47. data/spec/classx_declare_spec.rb +117 -0
  48. data/spec/classx_validate_spec.rb +1 -3
  49. data/tasks/basic_tasks.rake +1 -1
  50. metadata +36 -26
  51. data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-callbacks_rb.html +0 -932
  52. data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-change_rb.html +0 -779
  53. data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-hunk_rb.html +0 -867
  54. data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs_rb.html +0 -1715
  55. data/doc/output/coverage/-Library-Ruby-Gems-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +0 -1598
  56. data/spec/classx/with_extend.rb +0 -27
  57. data/spec/classx/with_include.rb +0 -27
@@ -1,779 +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/change.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&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='-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-change_rb.html'>/Library/Ruby/Gems/gems/diff-lcs-1.1.2/lib/diff/lcs/change.rb</a>
573
- </td>
574
- <td class='lines_total'><tt>169</tt>
575
- </td>
576
- <td class='lines_code'><tt>110</tt>
577
- </td>
578
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>54.4%</tt>
579
- &nbsp;</td>
580
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='54'/>
581
- <td class='uncovered' width='46'/>
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'>31.8%</tt>
589
- &nbsp;</td>
590
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='32'/>
591
- <td class='uncovered' width='68'/>
592
- </tr>
593
- </table>
594
- </td>
595
- </tr>
596
- </table>
597
- </td>
598
- </tr>
599
- </tbody>
600
- </table>
601
- <pre><span class="inferred1"><a name="line1"></a> 1 #! /usr/env/bin ruby
602
- </span><span class="inferred0"><a name="line2"></a> 2 #--
603
- </span><span class="inferred1"><a name="line3"></a> 3 # Copyright 2004 Austin Ziegler &lt;diff-lcs@halostatue.ca&gt;
604
- </span><span class="inferred0"><a name="line4"></a> 4 # adapted from:
605
- </span><span class="inferred1"><a name="line5"></a> 5 # Algorithm::Diff (Perl) by Ned Konz &lt;perl@bike-nomad.com&gt;
606
- </span><span class="inferred0"><a name="line6"></a> 6 # Smalltalk by Mario I. Wolczko &lt;mario@wolczko.com&gt;
607
- </span><span class="inferred1"><a name="line7"></a> 7 # implements McIlroy-Hunt diff algorithm
608
- </span><span class="inferred0"><a name="line8"></a> 8 #
609
- </span><span class="inferred1"><a name="line9"></a> 9 # This program is free software. It may be redistributed and/or modified under
610
- </span><span class="inferred0"><a name="line10"></a> 10 # the terms of the GPL version 2 (or later), the Perl Artistic licence, or the
611
- </span><span class="inferred1"><a name="line11"></a> 11 # Ruby licence.
612
- </span><span class="inferred0"><a name="line12"></a> 12 #
613
- </span><span class="inferred1"><a name="line13"></a> 13 # $Id: change.rb,v 1.4 2004/08/08 20:33:09 austin Exp $
614
- </span><span class="inferred0"><a name="line14"></a> 14 #++
615
- </span><span class="inferred1"><a name="line15"></a> 15 # Provides Diff::LCS::Change and Diff::LCS::ContextChange.
616
- </span><span class="inferred0"><a name="line16"></a> 16
617
- </span><span class="inferred1"><a name="line17"></a> 17 # Centralises the change test code in Diff::LCS::Change and
618
- </span><span class="inferred0"><a name="line18"></a> 18 # Diff::LCS::ContextChange, since it's the same for both classes.
619
- </span><span class="marked1"><a name="line19"></a> 19 module Diff::LCS::ChangeTypeTests
620
- </span><span class="marked0"><a name="line20"></a> 20 def deleting?
621
- </span><span class="uncovered1"><a name="line21"></a> 21 @action == '-'
622
- </span><span class="uncovered0"><a name="line22"></a> 22 end
623
- </span><span class="inferred1"><a name="line23"></a> 23
624
- </span><span class="marked0"><a name="line24"></a> 24 def adding?
625
- </span><span class="uncovered1"><a name="line25"></a> 25 @action == '+'
626
- </span><span class="uncovered0"><a name="line26"></a> 26 end
627
- </span><span class="inferred1"><a name="line27"></a> 27
628
- </span><span class="marked0"><a name="line28"></a> 28 def unchanged?
629
- </span><span class="uncovered1"><a name="line29"></a> 29 @action == '='
630
- </span><span class="uncovered0"><a name="line30"></a> 30 end
631
- </span><span class="inferred1"><a name="line31"></a> 31
632
- </span><span class="marked0"><a name="line32"></a> 32 def changed?
633
- </span><span class="uncovered1"><a name="line33"></a> 33 @changed == '!'
634
- </span><span class="uncovered0"><a name="line34"></a> 34 end
635
- </span><span class="inferred1"><a name="line35"></a> 35
636
- </span><span class="marked0"><a name="line36"></a> 36 def finished_a?
637
- </span><span class="uncovered1"><a name="line37"></a> 37 @changed == '&gt;'
638
- </span><span class="uncovered0"><a name="line38"></a> 38 end
639
- </span><span class="inferred1"><a name="line39"></a> 39
640
- </span><span class="marked0"><a name="line40"></a> 40 def finished_b?
641
- </span><span class="uncovered1"><a name="line41"></a> 41 @changed == '&lt;'
642
- </span><span class="uncovered0"><a name="line42"></a> 42 end
643
- </span><span class="uncovered1"><a name="line43"></a> 43 end
644
- </span><span class="inferred0"><a name="line44"></a> 44
645
- </span><span class="inferred1"><a name="line45"></a> 45 # Represents a simplistic (non-contextual) change. Represents the removal or
646
- </span><span class="inferred0"><a name="line46"></a> 46 # addition of an element from either the old or the new sequenced enumerable.
647
- </span><span class="marked1"><a name="line47"></a> 47 class Diff::LCS::Change
648
- </span><span class="inferred0"><a name="line48"></a> 48 # Returns the action this Change represents. Can be '+' (#adding?), '-'
649
- </span><span class="inferred1"><a name="line49"></a> 49 # (#deleting?), '=' (#unchanged?), # or '!' (#changed?). When created by
650
- </span><span class="inferred0"><a name="line50"></a> 50 # Diff::LCS#diff or Diff::LCS#sdiff, it may also be '&gt;' (#finished_a?) or
651
- </span><span class="inferred1"><a name="line51"></a> 51 # '&lt;' (#finished_b?).
652
- </span><span class="marked0"><a name="line52"></a> 52 attr_reader :action
653
- </span><span class="marked1"><a name="line53"></a> 53 attr_reader :position
654
- </span><span class="marked0"><a name="line54"></a> 54 attr_reader :element
655
- </span><span class="inferred1"><a name="line55"></a> 55
656
- </span><span class="marked0"><a name="line56"></a> 56 include Comparable
657
- </span><span class="marked1"><a name="line57"></a> 57 def ==(other)
658
- </span><span class="uncovered0"><a name="line58"></a> 58 (self.action == other.action) and
659
- </span><span class="uncovered1"><a name="line59"></a> 59 (self.position == other.position) and
660
- </span><span class="uncovered0"><a name="line60"></a> 60 (self.element == other.element)
661
- </span><span class="uncovered1"><a name="line61"></a> 61 end
662
- </span><span class="inferred0"><a name="line62"></a> 62
663
- </span><span class="marked1"><a name="line63"></a> 63 def &lt;=&gt;(other)
664
- </span><span class="uncovered0"><a name="line64"></a> 64 r = self.action &lt;=&gt; other.action
665
- </span><span class="uncovered1"><a name="line65"></a> 65 r = self.position &lt;=&gt; other.position if r.zero?
666
- </span><span class="uncovered0"><a name="line66"></a> 66 r = self.element &lt;=&gt; other.element if r.zero?
667
- </span><span class="uncovered1"><a name="line67"></a> 67 r
668
- </span><span class="uncovered0"><a name="line68"></a> 68 end
669
- </span><span class="inferred1"><a name="line69"></a> 69
670
- </span><span class="marked0"><a name="line70"></a> 70 def initialize(action, position, element)
671
- </span><span class="uncovered1"><a name="line71"></a> 71 @action = action
672
- </span><span class="uncovered0"><a name="line72"></a> 72 @position = position
673
- </span><span class="uncovered1"><a name="line73"></a> 73 @element = element
674
- </span><span class="uncovered0"><a name="line74"></a> 74 end
675
- </span><span class="inferred1"><a name="line75"></a> 75
676
- </span><span class="inferred0"><a name="line76"></a> 76 # Creates a Change from an array produced by Change#to_a.
677
- </span><span class="marked1"><a name="line77"></a> 77 def to_a
678
- </span><span class="uncovered0"><a name="line78"></a> 78 [@action, @position, @element]
679
- </span><span class="uncovered1"><a name="line79"></a> 79 end
680
- </span><span class="inferred0"><a name="line80"></a> 80
681
- </span><span class="marked1"><a name="line81"></a> 81 def self.from_a(arr)
682
- </span><span class="uncovered0"><a name="line82"></a> 82 Diff::LCS::Change.new(arr[0], arr[1], arr[2])
683
- </span><span class="uncovered1"><a name="line83"></a> 83 end
684
- </span><span class="inferred0"><a name="line84"></a> 84
685
- </span><span class="marked1"><a name="line85"></a> 85 include Diff::LCS::ChangeTypeTests
686
- </span><span class="inferred0"><a name="line86"></a> 86 end
687
- </span><span class="inferred1"><a name="line87"></a> 87
688
- </span><span class="inferred0"><a name="line88"></a> 88 # Represents a contextual change. Contains the position and values of the
689
- </span><span class="inferred1"><a name="line89"></a> 89 # elements in the old and the new sequenced enumerables as well as the action
690
- </span><span class="inferred0"><a name="line90"></a> 90 # taken.
691
- </span><span class="marked1"><a name="line91"></a> 91 class Diff::LCS::ContextChange
692
- </span><span class="inferred0"><a name="line92"></a> 92 # Returns the action this Change represents. Can be '+' (#adding?), '-'
693
- </span><span class="inferred1"><a name="line93"></a> 93 # (#deleting?), '=' (#unchanged?), # or '!' (#changed?). When
694
- </span><span class="inferred0"><a name="line94"></a> 94 # created by Diff::LCS#diff or Diff::LCS#sdiff, it may also be '&gt;'
695
- </span><span class="inferred1"><a name="line95"></a> 95 # (#finished_a?) or '&lt;' (#finished_b?).
696
- </span><span class="marked0"><a name="line96"></a> 96 attr_reader :action
697
- </span><span class="marked1"><a name="line97"></a> 97 attr_reader :old_position
698
- </span><span class="marked0"><a name="line98"></a> 98 attr_reader :old_element
699
- </span><span class="marked1"><a name="line99"></a> 99 attr_reader :new_position
700
- </span><span class="marked0"><a name="line100"></a>100 attr_reader :new_element
701
- </span><span class="inferred1"><a name="line101"></a>101
702
- </span><span class="marked0"><a name="line102"></a>102 include Comparable
703
- </span><span class="inferred1"><a name="line103"></a>103
704
- </span><span class="marked0"><a name="line104"></a>104 def ==(other)
705
- </span><span class="uncovered1"><a name="line105"></a>105 (@action == other.action) and
706
- </span><span class="uncovered0"><a name="line106"></a>106 (@old_position == other.old_position) and
707
- </span><span class="uncovered1"><a name="line107"></a>107 (@new_position == other.new_position) and
708
- </span><span class="uncovered0"><a name="line108"></a>108 (@old_element == other.old_element) and
709
- </span><span class="uncovered1"><a name="line109"></a>109 (@new_element == other.new_element)
710
- </span><span class="uncovered0"><a name="line110"></a>110 end
711
- </span><span class="inferred1"><a name="line111"></a>111
712
- </span><span class="marked0"><a name="line112"></a>112 def inspect(*args)
713
- </span><span class="uncovered1"><a name="line113"></a>113 %Q(#&lt;#{self.class.name}:#{__id__} @action=#{action} positions=#{old_position},#{new_position} elements=#{old_element.inspect},#{new_element.inspect}&gt;)
714
- </span><span class="uncovered0"><a name="line114"></a>114 end
715
- </span><span class="inferred1"><a name="line115"></a>115
716
- </span><span class="marked0"><a name="line116"></a>116 def &lt;=&gt;(other)
717
- </span><span class="uncovered1"><a name="line117"></a>117 r = @action &lt;=&gt; other.action
718
- </span><span class="uncovered0"><a name="line118"></a>118 r = @old_position &lt;=&gt; other.old_position if r.zero?
719
- </span><span class="uncovered1"><a name="line119"></a>119 r = @new_position &lt;=&gt; other.new_position if r.zero?
720
- </span><span class="uncovered0"><a name="line120"></a>120 r = @old_element &lt;=&gt; other.old_element if r.zero?
721
- </span><span class="uncovered1"><a name="line121"></a>121 r = @new_element &lt;=&gt; other.new_element if r.zero?
722
- </span><span class="uncovered0"><a name="line122"></a>122 r
723
- </span><span class="uncovered1"><a name="line123"></a>123 end
724
- </span><span class="inferred0"><a name="line124"></a>124
725
- </span><span class="marked1"><a name="line125"></a>125 def initialize(action, old_position, old_element, new_position, new_element)
726
- </span><span class="uncovered0"><a name="line126"></a>126 @action = action
727
- </span><span class="uncovered1"><a name="line127"></a>127 @old_position = old_position
728
- </span><span class="uncovered0"><a name="line128"></a>128 @old_element = old_element
729
- </span><span class="uncovered1"><a name="line129"></a>129 @new_position = new_position
730
- </span><span class="uncovered0"><a name="line130"></a>130 @new_element = new_element
731
- </span><span class="uncovered1"><a name="line131"></a>131 end
732
- </span><span class="inferred0"><a name="line132"></a>132
733
- </span><span class="marked1"><a name="line133"></a>133 def to_a
734
- </span><span class="uncovered0"><a name="line134"></a>134 [@action, [@old_position, @old_element], [@new_position, @new_element]]
735
- </span><span class="uncovered1"><a name="line135"></a>135 end
736
- </span><span class="inferred0"><a name="line136"></a>136
737
- </span><span class="inferred1"><a name="line137"></a>137 # Creates a ContextChange from an array produced by ContextChange#to_a.
738
- </span><span class="marked0"><a name="line138"></a>138 def self.from_a(arr)
739
- </span><span class="uncovered1"><a name="line139"></a>139 if arr.size == 5
740
- </span><span class="uncovered0"><a name="line140"></a>140 Diff::LCS::ContextChange.new(arr[0], arr[1], arr[2], arr[3], arr[4])
741
- </span><span class="uncovered1"><a name="line141"></a>141 else
742
- </span><span class="uncovered0"><a name="line142"></a>142 Diff::LCS::ContextChange.new(arr[0], arr[1][0], arr[1][1], arr[2][0],
743
- </span><span class="uncovered1"><a name="line143"></a>143 arr[2][1])
744
- </span><span class="uncovered0"><a name="line144"></a>144 end
745
- </span><span class="uncovered1"><a name="line145"></a>145 end
746
- </span><span class="inferred0"><a name="line146"></a>146
747
- </span><span class="inferred1"><a name="line147"></a>147 # Simplifies a context change for use in some diff callbacks. '&lt;' actions
748
- </span><span class="inferred0"><a name="line148"></a>148 # are converted to '-' and '&gt;' actions are converted to '+'.
749
- </span><span class="marked1"><a name="line149"></a>149 def self.simplify(event)
750
- </span><span class="uncovered0"><a name="line150"></a>150 ea = event.to_a
751
- </span><span class="uncovered1"><a name="line151"></a>151
752
- </span><span class="uncovered0"><a name="line152"></a>152 case ea[0]
753
- </span><span class="uncovered1"><a name="line153"></a>153 when '-'
754
- </span><span class="uncovered0"><a name="line154"></a>154 ea[2][1] = nil
755
- </span><span class="uncovered1"><a name="line155"></a>155 when '&lt;'
756
- </span><span class="uncovered0"><a name="line156"></a>156 ea[0] = '-'
757
- </span><span class="uncovered1"><a name="line157"></a>157 ea[2][1] = nil
758
- </span><span class="uncovered0"><a name="line158"></a>158 when '+'
759
- </span><span class="uncovered1"><a name="line159"></a>159 ea[1][1] = nil
760
- </span><span class="uncovered0"><a name="line160"></a>160 when '&gt;'
761
- </span><span class="uncovered1"><a name="line161"></a>161 ea[0] = '+'
762
- </span><span class="uncovered0"><a name="line162"></a>162 ea[1][1] = nil
763
- </span><span class="uncovered1"><a name="line163"></a>163 end
764
- </span><span class="uncovered0"><a name="line164"></a>164
765
- </span><span class="uncovered1"><a name="line165"></a>165 Diff::LCS::ContextChange.from_a(ea)
766
- </span><span class="uncovered0"><a name="line166"></a>166 end
767
- </span><span class="inferred1"><a name="line167"></a>167
768
- </span><span class="marked0"><a name="line168"></a>168 include Diff::LCS::ChangeTypeTests
769
- </span><span class="inferred1"><a name="line169"></a>169 end
770
- </span></pre><hr/>
771
- <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
772
- version 0.8.1.2.</p>
773
- <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'/>
774
- </a>
775
- <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'/>
776
- </a>
777
- </p>
778
- </body>
779
- </html>