autoc 0.8 → 1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/README +15 -4
  3. data/doc/AutoC.html +245 -0
  4. data/doc/AutoC/Code.html +520 -0
  5. data/doc/AutoC/Collection.html +923 -0
  6. data/doc/AutoC/HashMap.html +1161 -0
  7. data/doc/AutoC/HashSet.html +1122 -0
  8. data/doc/AutoC/List.html +1002 -0
  9. data/doc/AutoC/Module.html +951 -0
  10. data/doc/AutoC/Module/File.html +412 -0
  11. data/doc/AutoC/Module/Header.html +432 -0
  12. data/doc/AutoC/Module/Source.html +704 -0
  13. data/doc/AutoC/Priority.html +138 -0
  14. data/doc/AutoC/Queue.html +1167 -0
  15. data/doc/AutoC/Type.html +1152 -0
  16. data/doc/AutoC/UserDefinedType.html +655 -0
  17. data/doc/AutoC/Vector.html +856 -0
  18. data/doc/_index.html +299 -0
  19. data/doc/class_list.html +54 -0
  20. data/doc/css/common.css +1 -0
  21. data/doc/css/full_list.css +57 -0
  22. data/doc/css/style.css +339 -0
  23. data/doc/file.README.html +112 -0
  24. data/doc/file_list.html +56 -0
  25. data/doc/frames.html +26 -0
  26. data/doc/index.html +112 -0
  27. data/doc/js/app.js +219 -0
  28. data/doc/js/full_list.js +178 -0
  29. data/doc/js/jquery.js +4 -0
  30. data/doc/method_list.html +605 -0
  31. data/doc/top-level-namespace.html +112 -0
  32. data/lib/autoc.rb +35 -12
  33. data/lib/autoc/{code_builder.rb → code.rb} +230 -247
  34. data/lib/autoc/collection.rb +137 -0
  35. data/lib/autoc/collection/hash_map.rb +388 -0
  36. data/lib/autoc/collection/hash_set.rb +433 -0
  37. data/lib/autoc/collection/list.rb +410 -0
  38. data/lib/autoc/collection/queue.rb +514 -0
  39. data/lib/autoc/collection/vector.rb +295 -0
  40. data/lib/autoc/type.rb +198 -0
  41. data/test/test.c +921 -396
  42. data/test/test.h +41 -0
  43. data/test/test.rb +21 -26
  44. data/test/test_auto.c +2630 -3961
  45. data/test/test_auto.h +449 -560
  46. metadata +50 -17
  47. data/lib/autoc/data_struct_builder.rb +0 -1794
  48. data/lib/autoc/type_builder.rb +0 -24
  49. data/manual/manual.pdf +0 -0
@@ -0,0 +1,951 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Class: AutoC::Module
8
+
9
+ &mdash; Documentation by YARD 0.8.7.4
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../';
20
+ framesUrl = "../frames.html#!AutoC/Module.html";
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../_index.html">Index (M)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../AutoC.html" title="AutoC (module)">AutoC</a></span></span>
36
+ &raquo;
37
+ <span class="title">Module</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Class: AutoC::Module
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">Object</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">AutoC::Module</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+ <dt class="r2 last">Defined in:</dt>
97
+ <dd class="r2 last">lib/autoc/code.rb</dd>
98
+
99
+ </dl>
100
+ <div class="clear"></div>
101
+
102
+ <h2>Defined Under Namespace</h2>
103
+ <p class="children">
104
+
105
+
106
+
107
+
108
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Module/File.html" title="AutoC::Module::File (class)">File</a></span>, <span class='object_link'><a href="Module/Header.html" title="AutoC::Module::Header (class)">Header</a></span>, <span class='object_link'><a href="Module/Source.html" title="AutoC::Module::Source (class)">Source</a></span>
109
+
110
+
111
+ </p>
112
+
113
+
114
+
115
+
116
+ <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
117
+ <ul class="summary">
118
+
119
+ <li class="public ">
120
+ <span class="summary_signature">
121
+
122
+ <a href="#header-instance_method" title="#header (instance method)">- (Object) <strong>header</strong> </a>
123
+
124
+
125
+
126
+ </span>
127
+
128
+
129
+
130
+
131
+ <span class="note title readonly">readonly</span>
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+ <span class="summary_desc"><div class='inline'><div class="paragraph">
142
+ <p>Returns the value of attribute header.</p>
143
+ </div></div></span>
144
+
145
+ </li>
146
+
147
+
148
+ <li class="public ">
149
+ <span class="summary_signature">
150
+
151
+ <a href="#main_source-instance_method" title="#main_source (instance method)">- (Object) <strong>main_source</strong> </a>
152
+
153
+
154
+
155
+ </span>
156
+
157
+
158
+
159
+
160
+ <span class="note title readonly">readonly</span>
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+ <span class="summary_desc"><div class='inline'><div class="paragraph">
171
+ <p>Returns the value of attribute main_source.</p>
172
+ </div></div></span>
173
+
174
+ </li>
175
+
176
+
177
+ <li class="public ">
178
+ <span class="summary_signature">
179
+
180
+ <a href="#name-instance_method" title="#name (instance method)">- (Object) <strong>name</strong> </a>
181
+
182
+
183
+
184
+ </span>
185
+
186
+
187
+
188
+
189
+ <span class="note title readonly">readonly</span>
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+ <span class="summary_desc"><div class='inline'><div class="paragraph">
200
+ <p>Returns the value of attribute name.</p>
201
+ </div></div></span>
202
+
203
+ </li>
204
+
205
+
206
+ <li class="public ">
207
+ <span class="summary_signature">
208
+
209
+ <a href="#smallest_source-instance_method" title="#smallest_source (instance method)">- (Object) <strong>smallest_source</strong> </a>
210
+
211
+
212
+
213
+ </span>
214
+
215
+
216
+
217
+
218
+ <span class="note title readonly">readonly</span>
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+ <span class="summary_desc"><div class='inline'><div class="paragraph">
229
+ <p>Returns the value of attribute smallest_source.</p>
230
+ </div></div></span>
231
+
232
+ </li>
233
+
234
+
235
+ </ul>
236
+
237
+
238
+
239
+
240
+
241
+ <h2>
242
+ Class Method Summary
243
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
244
+ </h2>
245
+
246
+ <ul class="summary">
247
+
248
+ <li class="public ">
249
+ <span class="summary_signature">
250
+
251
+ <a href="#generate%21-class_method" title="generate! (class method)">+ (Object) <strong>generate!</strong>(name, &amp;block) </a>
252
+
253
+
254
+
255
+ </span>
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+ <span class="summary_desc"><div class='inline'></div></span>
266
+
267
+ </li>
268
+
269
+
270
+ </ul>
271
+
272
+ <h2>
273
+ Instance Method Summary
274
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
275
+ </h2>
276
+
277
+ <ul class="summary">
278
+
279
+ <li class="public ">
280
+ <span class="summary_signature">
281
+
282
+ <a href="#%3C%3C-instance_method" title="#&lt;&lt; (instance method)">- (Object) <strong>&lt;&lt;</strong>(obj) </a>
283
+
284
+
285
+
286
+ </span>
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+ <span class="summary_desc"><div class='inline'></div></span>
297
+
298
+ </li>
299
+
300
+
301
+ <li class="public ">
302
+ <span class="summary_signature">
303
+
304
+ <a href="#generate%21-instance_method" title="#generate! (instance method)">- (Object) <strong>generate!</strong> </a>
305
+
306
+
307
+
308
+ </span>
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+ <span class="summary_desc"><div class='inline'></div></span>
319
+
320
+ </li>
321
+
322
+
323
+ <li class="public ">
324
+ <span class="summary_signature">
325
+
326
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Module) <strong>initialize</strong>(name) </a>
327
+
328
+
329
+
330
+ </span>
331
+
332
+
333
+ <span class="note title constructor">constructor</span>
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+ <span class="summary_desc"><div class='inline'><div class="paragraph">
343
+ <p>A new instance of Module.</p>
344
+ </div></div></span>
345
+
346
+ </li>
347
+
348
+
349
+ <li class="public ">
350
+ <span class="summary_signature">
351
+
352
+ <a href="#new_header-instance_method" title="#new_header (instance method)">- (Object) <strong>new_header</strong> </a>
353
+
354
+
355
+
356
+ </span>
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+ <span class="summary_desc"><div class='inline'></div></span>
367
+
368
+ </li>
369
+
370
+
371
+ <li class="public ">
372
+ <span class="summary_signature">
373
+
374
+ <a href="#new_source-instance_method" title="#new_source (instance method)">- (Object) <strong>new_source</strong>(index) </a>
375
+
376
+
377
+
378
+ </span>
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+ <span class="summary_desc"><div class='inline'></div></span>
389
+
390
+ </li>
391
+
392
+
393
+ <li class="public ">
394
+ <span class="summary_signature">
395
+
396
+ <a href="#source_count-instance_method" title="#source_count (instance method)">- (Object) <strong>source_count</strong> </a>
397
+
398
+
399
+
400
+ </span>
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+ <span class="summary_desc"><div class='inline'></div></span>
411
+
412
+ </li>
413
+
414
+
415
+ <li class="public ">
416
+ <span class="summary_signature">
417
+
418
+ <a href="#source_count%3D-instance_method" title="#source_count= (instance method)">- (Object) <strong>source_count=</strong>(count) </a>
419
+
420
+
421
+
422
+ </span>
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+ <span class="summary_desc"><div class='inline'></div></span>
433
+
434
+ </li>
435
+
436
+
437
+ </ul>
438
+
439
+
440
+ <div id="constructor_details" class="method_details_list">
441
+ <h2>Constructor Details</h2>
442
+
443
+ <div class="method_details first">
444
+ <h3 class="signature first" id="initialize-instance_method">
445
+
446
+ - (<tt><span class='object_link'><a href="" title="AutoC::Module (class)">Module</a></span></tt>) <strong>initialize</strong>(name)
447
+
448
+
449
+
450
+
451
+
452
+ </h3><div class="docstring">
453
+ <div class="discussion">
454
+ <div class="paragraph">
455
+ <p>Returns a new instance of Module</p>
456
+ </div>
457
+
458
+ </div>
459
+ </div>
460
+ <div class="tags">
461
+
462
+
463
+ </div><table class="source_code">
464
+ <tr>
465
+ <td>
466
+ <pre class="lines">
467
+
468
+
469
+ 66
470
+ 67
471
+ 68
472
+ 69
473
+ 70</pre>
474
+ </td>
475
+ <td>
476
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 66</span>
477
+
478
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
479
+ <span class='ivar'>@entities</span> <span class='op'>=</span> <span class='const'>Set</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
480
+ <span class='ivar'>@source_size_threshold</span> <span class='op'>=</span> <span class='int'>0</span>
481
+ <span class='ivar'>@name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='comment'># TODO validate
482
+ </span><span class='kw'>end</span></pre>
483
+ </td>
484
+ </tr>
485
+ </table>
486
+ </div>
487
+
488
+ </div>
489
+
490
+ <div id="instance_attr_details" class="attr_details">
491
+ <h2>Instance Attribute Details</h2>
492
+
493
+
494
+ <span id=""></span>
495
+ <div class="method_details first">
496
+ <h3 class="signature first" id="header-instance_method">
497
+
498
+ - (<tt>Object</tt>) <strong>header</strong> <span class="extras">(readonly)</span>
499
+
500
+
501
+
502
+
503
+
504
+ </h3><div class="docstring">
505
+ <div class="discussion">
506
+ <div class="paragraph">
507
+ <p>Returns the value of attribute header</p>
508
+ </div>
509
+
510
+ </div>
511
+ </div>
512
+ <div class="tags">
513
+
514
+
515
+ </div><table class="source_code">
516
+ <tr>
517
+ <td>
518
+ <pre class="lines">
519
+
520
+
521
+ 64
522
+ 65
523
+ 66</pre>
524
+ </td>
525
+ <td>
526
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 64</span>
527
+
528
+ <span class='kw'>def</span> <span class='id identifier rubyid_header'>header</span>
529
+ <span class='ivar'>@header</span>
530
+ <span class='kw'>end</span></pre>
531
+ </td>
532
+ </tr>
533
+ </table>
534
+ </div>
535
+
536
+
537
+ <span id=""></span>
538
+ <div class="method_details ">
539
+ <h3 class="signature " id="main_source-instance_method">
540
+
541
+ - (<tt>Object</tt>) <strong>main_source</strong> <span class="extras">(readonly)</span>
542
+
543
+
544
+
545
+
546
+
547
+ </h3><div class="docstring">
548
+ <div class="discussion">
549
+ <div class="paragraph">
550
+ <p>Returns the value of attribute main_source</p>
551
+ </div>
552
+
553
+ </div>
554
+ </div>
555
+ <div class="tags">
556
+
557
+
558
+ </div><table class="source_code">
559
+ <tr>
560
+ <td>
561
+ <pre class="lines">
562
+
563
+
564
+ 64
565
+ 65
566
+ 66</pre>
567
+ </td>
568
+ <td>
569
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 64</span>
570
+
571
+ <span class='kw'>def</span> <span class='id identifier rubyid_main_source'>main_source</span>
572
+ <span class='ivar'>@main_source</span>
573
+ <span class='kw'>end</span></pre>
574
+ </td>
575
+ </tr>
576
+ </table>
577
+ </div>
578
+
579
+
580
+ <span id=""></span>
581
+ <div class="method_details ">
582
+ <h3 class="signature " id="name-instance_method">
583
+
584
+ - (<tt>Object</tt>) <strong>name</strong> <span class="extras">(readonly)</span>
585
+
586
+
587
+
588
+
589
+
590
+ </h3><div class="docstring">
591
+ <div class="discussion">
592
+ <div class="paragraph">
593
+ <p>Returns the value of attribute name</p>
594
+ </div>
595
+
596
+ </div>
597
+ </div>
598
+ <div class="tags">
599
+
600
+
601
+ </div><table class="source_code">
602
+ <tr>
603
+ <td>
604
+ <pre class="lines">
605
+
606
+
607
+ 64
608
+ 65
609
+ 66</pre>
610
+ </td>
611
+ <td>
612
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 64</span>
613
+
614
+ <span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
615
+ <span class='ivar'>@name</span>
616
+ <span class='kw'>end</span></pre>
617
+ </td>
618
+ </tr>
619
+ </table>
620
+ </div>
621
+
622
+
623
+ <span id=""></span>
624
+ <div class="method_details ">
625
+ <h3 class="signature " id="smallest_source-instance_method">
626
+
627
+ - (<tt>Object</tt>) <strong>smallest_source</strong> <span class="extras">(readonly)</span>
628
+
629
+
630
+
631
+
632
+
633
+ </h3><div class="docstring">
634
+ <div class="discussion">
635
+ <div class="paragraph">
636
+ <p>Returns the value of attribute smallest_source</p>
637
+ </div>
638
+
639
+ </div>
640
+ </div>
641
+ <div class="tags">
642
+
643
+
644
+ </div><table class="source_code">
645
+ <tr>
646
+ <td>
647
+ <pre class="lines">
648
+
649
+
650
+ 64
651
+ 65
652
+ 66</pre>
653
+ </td>
654
+ <td>
655
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 64</span>
656
+
657
+ <span class='kw'>def</span> <span class='id identifier rubyid_smallest_source'>smallest_source</span>
658
+ <span class='ivar'>@smallest_source</span>
659
+ <span class='kw'>end</span></pre>
660
+ </td>
661
+ </tr>
662
+ </table>
663
+ </div>
664
+
665
+ </div>
666
+
667
+
668
+ <div id="class_method_details" class="method_details_list">
669
+ <h2>Class Method Details</h2>
670
+
671
+
672
+ <div class="method_details first">
673
+ <h3 class="signature first" id="generate!-class_method">
674
+
675
+ + (<tt>Object</tt>) <strong>generate!</strong>(name, &amp;block)
676
+
677
+
678
+
679
+
680
+
681
+ </h3><table class="source_code">
682
+ <tr>
683
+ <td>
684
+ <pre class="lines">
685
+
686
+
687
+ 58
688
+ 59
689
+ 60
690
+ 61
691
+ 62</pre>
692
+ </td>
693
+ <td>
694
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 58</span>
695
+
696
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_generate!'>generate!</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
697
+ <span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
698
+ <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='rparen'>)</span>
699
+ <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_generate!'>generate!</span>
700
+ <span class='kw'>end</span></pre>
701
+ </td>
702
+ </tr>
703
+ </table>
704
+ </div>
705
+
706
+ </div>
707
+
708
+ <div id="instance_method_details" class="method_details_list">
709
+ <h2>Instance Method Details</h2>
710
+
711
+
712
+ <div class="method_details first">
713
+ <h3 class="signature first" id="<<-instance_method">
714
+
715
+ - (<tt>Object</tt>) <strong>&lt;&lt;</strong>(obj)
716
+
717
+
718
+
719
+
720
+
721
+ </h3><table class="source_code">
722
+ <tr>
723
+ <td>
724
+ <pre class="lines">
725
+
726
+
727
+ 72
728
+ 73
729
+ 74
730
+ 75
731
+ 76
732
+ 77
733
+ 78</pre>
734
+ </td>
735
+ <td>
736
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 72</span>
737
+
738
+ <span class='kw'>def</span> <span class='op'>&lt;&lt;</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span>
739
+ <span class='kw'>unless</span> <span class='ivar'>@entities</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span>
740
+ <span class='ivar'>@entities</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_obj'>obj</span>
741
+ <span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_entities'>entities</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='op'>|</span> <span class='kw'>self</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_e'>e</span><span class='rbrace'>}</span>
742
+ <span class='kw'>end</span>
743
+ <span class='kw'>self</span>
744
+ <span class='kw'>end</span></pre>
745
+ </td>
746
+ </tr>
747
+ </table>
748
+ </div>
749
+
750
+ <div class="method_details ">
751
+ <h3 class="signature " id="generate!-instance_method">
752
+
753
+ - (<tt>Object</tt>) <strong>generate!</strong>
754
+
755
+
756
+
757
+
758
+
759
+ </h3><table class="source_code">
760
+ <tr>
761
+ <td>
762
+ <pre class="lines">
763
+
764
+
765
+ 92
766
+ 93
767
+ 94
768
+ 95
769
+ 96
770
+ 97
771
+ 98
772
+ 99
773
+ 100
774
+ 101
775
+ 102
776
+ 103
777
+ 104
778
+ 105
779
+ 106
780
+ 107</pre>
781
+ </td>
782
+ <td>
783
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 92</span>
784
+
785
+ <span class='kw'>def</span> <span class='id identifier rubyid_generate!'>generate!</span>
786
+ <span class='ivar'>@header</span> <span class='op'>=</span> <span class='id identifier rubyid_new_header'>new_header</span>
787
+ <span class='ivar'>@sources</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
788
+ <span class='lparen'>(</span><span class='int'>1</span><span class='op'>..</span><span class='id identifier rubyid_source_count'>source_count</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='ivar'>@sources</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_new_source'>new_source</span><span class='lparen'>(</span><span class='id identifier rubyid_i'>i</span><span class='rparen'>)</span><span class='rbrace'>}</span>
789
+ <span class='ivar'>@main_source</span> <span class='op'>=</span> <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
790
+ <span class='ivar'>@smallest_source</span> <span class='op'>=</span> <span class='ivar'>@main_source</span>
791
+ <span class='comment'># It appears that computing the size of a source might be a fairly expensive operation so do it only when neccessary
792
+ </span> <span class='id identifier rubyid_refresh_smallest_source'>refresh_smallest_source</span> <span class='op'>=</span> <span class='id identifier rubyid_source_count'>source_count</span> <span class='op'>&gt;</span> <span class='int'>1</span>
793
+ <span class='ivar'>@entities</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='op'>|</span>
794
+ <span class='ivar'>@header</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_e'>e</span>
795
+ <span class='ivar'>@smallest_source</span> <span class='op'>=</span> <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_sort_by'>sort_by</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_s'>s</span><span class='op'>|</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span> <span class='kw'>if</span> <span class='id identifier rubyid_refresh_smallest_source'>refresh_smallest_source</span>
796
+ <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_s'>s</span><span class='op'>|</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_attach'>attach</span><span class='lparen'>(</span><span class='id identifier rubyid_s'>s</span><span class='rparen'>)</span><span class='rbrace'>}</span>
797
+ <span class='kw'>end</span>
798
+ <span class='ivar'>@header</span><span class='period'>.</span><span class='id identifier rubyid_generate'>generate</span>
799
+ <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_s'>s</span><span class='op'>|</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_generate'>generate</span><span class='rbrace'>}</span>
800
+ <span class='kw'>end</span></pre>
801
+ </td>
802
+ </tr>
803
+ </table>
804
+ </div>
805
+
806
+ <div class="method_details ">
807
+ <h3 class="signature " id="new_header-instance_method">
808
+
809
+ - (<tt>Object</tt>) <strong>new_header</strong>
810
+
811
+
812
+
813
+
814
+
815
+ </h3><table class="source_code">
816
+ <tr>
817
+ <td>
818
+ <pre class="lines">
819
+
820
+
821
+ 80
822
+ 81
823
+ 82</pre>
824
+ </td>
825
+ <td>
826
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 80</span>
827
+
828
+ <span class='kw'>def</span> <span class='id identifier rubyid_new_header'>new_header</span>
829
+ <span class='const'>Header</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
830
+ <span class='kw'>end</span></pre>
831
+ </td>
832
+ </tr>
833
+ </table>
834
+ </div>
835
+
836
+ <div class="method_details ">
837
+ <h3 class="signature " id="new_source-instance_method">
838
+
839
+ - (<tt>Object</tt>) <strong>new_source</strong>(index)
840
+
841
+
842
+
843
+
844
+
845
+ </h3><table class="source_code">
846
+ <tr>
847
+ <td>
848
+ <pre class="lines">
849
+
850
+
851
+ 84
852
+ 85
853
+ 86</pre>
854
+ </td>
855
+ <td>
856
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 84</span>
857
+
858
+ <span class='kw'>def</span> <span class='id identifier rubyid_new_source'>new_source</span><span class='lparen'>(</span><span class='id identifier rubyid_index'>index</span><span class='rparen'>)</span>
859
+ <span class='const'>Source</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_index'>index</span><span class='rparen'>)</span>
860
+ <span class='kw'>end</span></pre>
861
+ </td>
862
+ </tr>
863
+ </table>
864
+ </div>
865
+
866
+ <div class="method_details ">
867
+ <h3 class="signature " id="source_count-instance_method">
868
+
869
+ - (<tt>Object</tt>) <strong>source_count</strong>
870
+
871
+
872
+
873
+
874
+
875
+ </h3><table class="source_code">
876
+ <tr>
877
+ <td>
878
+ <pre class="lines">
879
+
880
+
881
+ 109
882
+ 110
883
+ 111
884
+ 112
885
+ 113
886
+ 114
887
+ 115
888
+ 116
889
+ 117
890
+ 118</pre>
891
+ </td>
892
+ <td>
893
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 109</span>
894
+
895
+ <span class='kw'>def</span> <span class='id identifier rubyid_source_count'>source_count</span>
896
+ <span class='kw'>if</span> <span class='ivar'>@source_count</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
897
+ <span class='id identifier rubyid_total'>total</span> <span class='op'>=</span> <span class='int'>0</span>
898
+ <span class='ivar'>@entities</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='op'>|</span> <span class='id identifier rubyid_total'>total</span> <span class='op'>+=</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_source_size'>source_size</span><span class='rbrace'>}</span>
899
+ <span class='id identifier rubyid_count'>count</span> <span class='op'>=</span> <span class='ivar'>@source_size_threshold</span> <span class='op'>&gt;</span> <span class='int'>0</span> <span class='op'>?</span> <span class='lparen'>(</span><span class='id identifier rubyid_total'>total</span><span class='op'>/</span><span class='ivar'>@source_size_threshold</span> <span class='op'>+</span> <span class='int'>1</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='int'>1</span>
900
+ <span class='ivar'>@source_count</span> <span class='op'>=</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>&gt;</span> <span class='int'>0</span> <span class='op'>?</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>:</span> <span class='int'>1</span>
901
+ <span class='kw'>else</span>
902
+ <span class='ivar'>@source_count</span>
903
+ <span class='kw'>end</span>
904
+ <span class='kw'>end</span></pre>
905
+ </td>
906
+ </tr>
907
+ </table>
908
+ </div>
909
+
910
+ <div class="method_details ">
911
+ <h3 class="signature " id="source_count=-instance_method">
912
+
913
+ - (<tt>Object</tt>) <strong>source_count=</strong>(count)
914
+
915
+
916
+
917
+
918
+
919
+ </h3><table class="source_code">
920
+ <tr>
921
+ <td>
922
+ <pre class="lines">
923
+
924
+
925
+ 88
926
+ 89
927
+ 90</pre>
928
+ </td>
929
+ <td>
930
+ <pre class="code"><span class="info file"># File 'lib/autoc/code.rb', line 88</span>
931
+
932
+ <span class='kw'>def</span> <span class='id identifier rubyid_source_count='>source_count=</span><span class='lparen'>(</span><span class='id identifier rubyid_count'>count</span><span class='rparen'>)</span>
933
+ <span class='ivar'>@source_count</span> <span class='op'>=</span> <span class='id identifier rubyid_count'>count</span>
934
+ <span class='kw'>end</span></pre>
935
+ </td>
936
+ </tr>
937
+ </table>
938
+ </div>
939
+
940
+ </div>
941
+
942
+ </div>
943
+
944
+ <div id="footer">
945
+ Generated on Fri Jun 6 18:05:35 2014 by
946
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
947
+ 0.8.7.4 (ruby-2.0.0).
948
+ </div>
949
+
950
+ </body>
951
+ </html>