X12 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/CHANGELOG +13 -0
  2. data/COPYING +502 -0
  3. data/README +309 -0
  4. data/Rakefile +157 -0
  5. data/TODO +6 -0
  6. data/doc/classes/X12.html +174 -0
  7. data/doc/classes/X12/Base.html +677 -0
  8. data/doc/classes/X12/Composite.html +156 -0
  9. data/doc/classes/X12/Empty.html +186 -0
  10. data/doc/classes/X12/Field.html +339 -0
  11. data/doc/classes/X12/Loop.html +202 -0
  12. data/doc/classes/X12/Parser.html +306 -0
  13. data/doc/classes/X12/Segment.html +277 -0
  14. data/doc/classes/X12/Table.html +198 -0
  15. data/doc/created.rid +1 -0
  16. data/doc/files/CHANGELOG.html +108 -0
  17. data/doc/files/README.html +474 -0
  18. data/doc/files/TODO.html +95 -0
  19. data/doc/files/lib/X12/Base_rb.html +83 -0
  20. data/doc/files/lib/X12/Composite_rb.html +83 -0
  21. data/doc/files/lib/X12/Empty_rb.html +83 -0
  22. data/doc/files/lib/X12/Field_rb.html +83 -0
  23. data/doc/files/lib/X12/Loop_rb.html +83 -0
  24. data/doc/files/lib/X12/Parser_rb.html +83 -0
  25. data/doc/files/lib/X12/Segment_rb.html +83 -0
  26. data/doc/files/lib/X12/Table_rb.html +83 -0
  27. data/doc/files/lib/X12_rb.html +100 -0
  28. data/doc/fr_class_index.html +35 -0
  29. data/doc/fr_file_index.html +38 -0
  30. data/doc/fr_method_index.html +62 -0
  31. data/doc/index.html +27 -0
  32. data/doc/rdoc-style.css +208 -0
  33. data/example/factory.rb +92 -0
  34. data/example/parse.rb +56 -0
  35. data/lib/X12.rb +50 -0
  36. data/lib/X12/Base.rb +192 -0
  37. data/lib/X12/Composite.rb +37 -0
  38. data/lib/X12/Empty.rb +43 -0
  39. data/lib/X12/Field.rb +81 -0
  40. data/lib/X12/Loop.rb +74 -0
  41. data/lib/X12/Parser.rb +98 -0
  42. data/lib/X12/Segment.rb +92 -0
  43. data/lib/X12/Table.rb +44 -0
  44. data/lib/X12/x12syntax.treetop +256 -0
  45. data/misc/997.d12 +885 -0
  46. data/misc/rdoc_template.rb +697 -0
  47. data/test/tc_factory_997.rb +130 -0
  48. data/test/tc_parse_997.rb +146 -0
  49. data/test/ts_x12.rb +27 -0
  50. metadata +108 -0
@@ -0,0 +1,697 @@
1
+ #--
2
+ # This file is part of the X12Parser library that provides tools to
3
+ # manipulate X12 messages using Ruby native syntax.
4
+ #
5
+ # http://x12parser.rubyforge.org
6
+ #
7
+ # Copyright (C) 2008 APP Design, Inc.
8
+ #
9
+ # This library is free software; you can redistribute it and/or
10
+ # modify it under the terms of the GNU Lesser General Public
11
+ # License as published by the Free Software Foundation; either
12
+ # version 2.1 of the License, or (at your option) any later version.
13
+ #
14
+ # This library is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ # Lesser General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU Lesser General Public
20
+ # License along with this library; if not, write to the Free Software
21
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
+ #
23
+ # $Id: rdoc_template.rb 38 2008-11-13 19:19:30Z ikk $
24
+ #
25
+ # This is based on html.rb template distributed with Ruby by Michael Granger <ged@FaerieMUD.org>
26
+ # under the terms of the Creative Commons Attribution License, To view
27
+ # http://creativecommons.org/licenses/by/1.0/
28
+ #
29
+ #++
30
+
31
+ module RDoc
32
+ module Page
33
+
34
+ FONTS = "Verdana,Arial,Helvetica,sans-serif"
35
+
36
+ STYLE = %{
37
+ body {
38
+ font-family: Verdana,Arial,Helvetica,sans-serif;
39
+ font-size: 90%;
40
+ margin: 0;
41
+ margin-left: 40px;
42
+ padding: 0;
43
+ background: #efefef;
44
+ }
45
+
46
+ h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
47
+ h1 { font-size: 150%; }
48
+ h2,h3,h4 { margin-top: 1em; }
49
+
50
+ a { background: #eef; color: #039; text-decoration: none; }
51
+ a:hover { background: #039; color: #eef; }
52
+
53
+ /* Override the base stylesheet's Anchor inside a table cell */
54
+ td > a {
55
+ background: transparent;
56
+ color: #039;
57
+ text-decoration: none;
58
+ }
59
+
60
+ /* and inside a section title */
61
+ .section-title > a {
62
+ background: transparent;
63
+ color: #eee;
64
+ text-decoration: none;
65
+ }
66
+
67
+ /* === Structural elements =================================== */
68
+
69
+ div#index {
70
+ margin: 0;
71
+ margin-left: -40px;
72
+ padding: 0;
73
+ font-size: 90%;
74
+ }
75
+
76
+
77
+ div#index a {
78
+ margin-left: 0.7em;
79
+ }
80
+
81
+ div#index .section-bar {
82
+ margin-left: 0px;
83
+ padding-left: 0.7em;
84
+ background: #ccc;
85
+ font-size: small;
86
+ }
87
+
88
+
89
+ div#classHeader, div#fileHeader {
90
+ width: auto;
91
+ color: white;
92
+ padding: 0.5em 1.5em 0.5em 1.5em;
93
+ margin: 0;
94
+ margin-left: -40px;
95
+ border-bottom: 3px solid #006;
96
+ }
97
+
98
+ div#classHeader a, div#fileHeader a {
99
+ background: inherit;
100
+ color: white;
101
+ }
102
+
103
+ div#classHeader td, div#fileHeader td {
104
+ background: inherit;
105
+ color: white;
106
+ }
107
+
108
+
109
+ div#fileHeader {
110
+ background: #057;
111
+ }
112
+
113
+ div#classHeader {
114
+ background: #048;
115
+ }
116
+
117
+
118
+ .class-name-in-header {
119
+ font-size: 180%;
120
+ font-weight: bold;
121
+ }
122
+
123
+
124
+ div#bodyContent {
125
+ padding: 0 0 0 0;
126
+ }
127
+
128
+ div#description {
129
+ padding: 0.5em 0.5em;
130
+ border: 1px dotted #999;
131
+ margin-left: -40px;
132
+ }
133
+
134
+ div#description h1,h2,h3,h4,h5,h6 {
135
+ color: #125;;
136
+ background: transparent;
137
+ }
138
+
139
+ div#validator-badges {
140
+ text-align: center;
141
+ }
142
+ div#validator-badges img { border: 0; }
143
+
144
+ div#copyright {
145
+ color: #333;
146
+ background: #efefef;
147
+ font: 0.75em sans-serif;
148
+ margin-top: 5em;
149
+ margin-bottom: 0;
150
+ padding: 0.5em 2em;
151
+ }
152
+
153
+
154
+ /* === Classes =================================== */
155
+
156
+ table.header-table {
157
+ color: white;
158
+ font-size: small;
159
+ }
160
+
161
+ .type-note {
162
+ font-size: small;
163
+ color: #DEDEDE;
164
+ }
165
+
166
+ .xxsection-bar {
167
+ background: #eee;
168
+ color: #333;
169
+ padding: 3px;
170
+ }
171
+
172
+ .section-bar {
173
+ color: #333;
174
+ border-bottom: 1px solid #999;
175
+ margin-left: -20px;
176
+ }
177
+
178
+
179
+ .section-title {
180
+ background: #79a;
181
+ color: #eee;
182
+ padding: 3px;
183
+ margin-top: 2em;
184
+ margin-left: -30px;
185
+ border: 1px solid #999;
186
+ }
187
+
188
+ .top-aligned-row { vertical-align: top }
189
+ .bottom-aligned-row { vertical-align: bottom }
190
+
191
+ /* --- Context section classes ----------------------- */
192
+
193
+ .context-row { }
194
+ .context-item-name { font-family: monospace; font-weight: bold; color: black; }
195
+ .context-item-value { font-size: small; color: #448; }
196
+ .context-item-desc { color: #333; padding-left: 2em; }
197
+
198
+ /* --- Method classes -------------------------- */
199
+ .method-detail {
200
+ background: #efefef;
201
+ padding: 0;
202
+ margin-top: 0.5em;
203
+ margin-bottom: 1em;
204
+ border: 1px dotted #ccc;
205
+ }
206
+ .method-heading {
207
+ color: black;
208
+ background: #ccc;
209
+ border-bottom: 1px solid #666;
210
+ padding: 0.2em 0.5em 0 0.5em;
211
+ }
212
+ .method-signature { color: black; background: inherit; }
213
+ .method-name { font-weight: bold; }
214
+ .method-args { font-style: italic; }
215
+ .method-description { padding: 0 0.5em 0 0.5em; }
216
+
217
+ /* --- Source code sections -------------------- */
218
+
219
+ a.source-toggle { font-size: 90%; }
220
+ div.method-source-code {
221
+ background: #888888;
222
+ color: #ffdead;
223
+ margin: 1em;
224
+ padding: 0.5em;
225
+ border: 1px dashed #999;
226
+ overflow: hidden;
227
+ }
228
+
229
+ div.method-source-code pre { color: #ffdead; overflow: hidden; }
230
+
231
+ /* --- Ruby keyword styles --------------------- */
232
+
233
+ .standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
234
+
235
+ .ruby-constant { color: #7fffd4; background: transparent; }
236
+ .ruby-keyword { color: #00ffff; background: transparent; }
237
+ .ruby-ivar { color: #eedd82; background: transparent; }
238
+ .ruby-operator { color: #00ffee; background: transparent; }
239
+ .ruby-identifier { color: #ffdead; background: transparent; }
240
+ .ruby-node { color: #ffa07a; background: transparent; }
241
+ .ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
242
+ .ruby-regexp { color: #ffa07a; background: transparent; }
243
+ .ruby-value { color: #7fffd4; background: transparent; }
244
+ }
245
+
246
+
247
+ #####################################################################
248
+ ### H E A D E R T E M P L A T E
249
+ #####################################################################
250
+
251
+ XHTML_PREAMBLE = %{<?xml version="1.0" encoding="%charset%"?>
252
+ <!DOCTYPE html
253
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
254
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
255
+ }
256
+
257
+ HEADER = XHTML_PREAMBLE + %{
258
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
259
+ <head>
260
+ <title>%title%</title>
261
+ <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
262
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
263
+ <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
264
+ <script type="text/javascript">
265
+ // <![CDATA[
266
+
267
+ function popupCode( url ) {
268
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
269
+ }
270
+
271
+ function toggleCode( id ) {
272
+ if ( document.getElementById )
273
+ elem = document.getElementById( id );
274
+ else if ( document.all )
275
+ elem = eval( "document.all." + id );
276
+ else
277
+ return false;
278
+
279
+ elemStyle = elem.style;
280
+
281
+ if ( elemStyle.display != "block" ) {
282
+ elemStyle.display = "block"
283
+ } else {
284
+ elemStyle.display = "none"
285
+ }
286
+
287
+ return true;
288
+ }
289
+
290
+ // Make codeblocks hidden by default
291
+ document.writeln( "<style type=\\"text/css\\">div.method-source-code { display: none }</style>" )
292
+
293
+ // ]]>
294
+ </script>
295
+
296
+ </head>
297
+ <body>
298
+ }
299
+
300
+
301
+ #####################################################################
302
+ ### C O N T E X T C O N T E N T T E M P L A T E
303
+ #####################################################################
304
+
305
+ CONTEXT_CONTENT = %{
306
+ }
307
+
308
+
309
+ #####################################################################
310
+ ### F O O T E R T E M P L A T E
311
+ #####################################################################
312
+ FOOTER = %{
313
+ </body>
314
+ </html>
315
+ }
316
+
317
+
318
+ #####################################################################
319
+ ### F I L E P A G E H E A D E R T E M P L A T E
320
+ #####################################################################
321
+
322
+ FILE_PAGE = %{
323
+ }
324
+
325
+
326
+ #####################################################################
327
+ ### C L A S S P A G E H E A D E R T E M P L A T E
328
+ #####################################################################
329
+
330
+ CLASS_PAGE = %{
331
+ <div id="classHeader">
332
+ <table class="header-table">
333
+ <tr class="top-aligned-row">
334
+ <td><strong>%classmod%</strong></td>
335
+ <td class="class-name-in-header">%full_name%</td>
336
+ </tr>
337
+ <tr class="top-aligned-row">
338
+ <td><strong>In:</strong></td>
339
+ <td>
340
+ START:infiles
341
+ IF:full_path_url
342
+ <a href="%full_path_url%">
343
+ ENDIF:full_path_url
344
+ %full_path%
345
+ IF:full_path_url
346
+ </a>
347
+ ENDIF:full_path_url
348
+ <br />
349
+ END:infiles
350
+ </td>
351
+ </tr>
352
+
353
+ IF:parent
354
+ <tr class="top-aligned-row">
355
+ <td><strong>Parent:</strong></td>
356
+ <td>
357
+ IF:par_url
358
+ <a href="%par_url%">
359
+ ENDIF:par_url
360
+ %parent%
361
+ IF:par_url
362
+ </a>
363
+ ENDIF:par_url
364
+ </td>
365
+ </tr>
366
+ ENDIF:parent
367
+ </table>
368
+ </div>
369
+ }
370
+
371
+
372
+ #####################################################################
373
+ ### M E T H O D L I S T T E M P L A T E
374
+ #####################################################################
375
+
376
+ METHOD_LIST = %{
377
+
378
+ <div id="contextContent">
379
+ IF:diagram
380
+ <div id="diagram">
381
+ %diagram%
382
+ </div>
383
+ ENDIF:diagram
384
+
385
+ IF:description
386
+ <div id="description">
387
+ %description%
388
+ </div>
389
+ ENDIF:description
390
+
391
+ IF:requires
392
+ <div id="requires-list">
393
+ <h3 class="section-bar">Required files</h3>
394
+
395
+ <div class="name-list">
396
+ START:requires
397
+ HREF:aref:name:&nbsp;&nbsp;
398
+ END:requires
399
+ </div>
400
+ </div>
401
+ ENDIF:requires
402
+
403
+ IF:toc
404
+ <div id="contents-list">
405
+ <h3 class="section-bar">Contents</h3>
406
+ <ul>
407
+ START:toc
408
+ <li><a href="#%href%">%secname%</a></li>
409
+ END:toc
410
+ </ul>
411
+ ENDIF:toc
412
+ </div>
413
+
414
+ IF:methods
415
+ <div id="method-list">
416
+ <h3 class="section-bar">Methods</h3>
417
+
418
+ <div class="name-list">
419
+ START:methods
420
+ HREF:aref:name:&nbsp;&nbsp;
421
+ END:methods
422
+ </div>
423
+ </div>
424
+ ENDIF:methods
425
+
426
+ </div>
427
+
428
+
429
+ <!-- if includes -->
430
+ IF:includes
431
+ <div id="includes">
432
+ <h3 class="section-bar">Included Modules</h3>
433
+
434
+ <div id="includes-list">
435
+ START:includes
436
+ <span class="include-name">HREF:aref:name:</span>
437
+ END:includes
438
+ </div>
439
+ </div>
440
+ ENDIF:includes
441
+
442
+ START:sections
443
+ <div id="section">
444
+ IF:sectitle
445
+ <h2 class="section-title"><a name="%secsequence%">%sectitle%</a></h2>
446
+ IF:seccomment
447
+ <div class="section-comment">
448
+ %seccomment%
449
+ </div>
450
+ ENDIF:seccomment
451
+ ENDIF:sectitle
452
+
453
+ IF:classlist
454
+ <div id="class-list">
455
+ <h3 class="section-bar">Classes and Modules</h3>
456
+
457
+ %classlist%
458
+ </div>
459
+ ENDIF:classlist
460
+
461
+ IF:constants
462
+ <div id="constants-list">
463
+ <h3 class="section-bar">Constants</h3>
464
+
465
+ <div class="name-list">
466
+ <table summary="Constants">
467
+ START:constants
468
+ <tr class="top-aligned-row context-row">
469
+ <td class="context-item-name">%name%</td>
470
+ <td>=</td>
471
+ <td class="context-item-value">%value%</td>
472
+ IF:desc
473
+ <td width="3em">&nbsp;</td>
474
+ <td class="context-item-desc">%desc%</td>
475
+ ENDIF:desc
476
+ </tr>
477
+ END:constants
478
+ </table>
479
+ </div>
480
+ </div>
481
+ ENDIF:constants
482
+
483
+ IF:aliases
484
+ <div id="aliases-list">
485
+ <h3 class="section-bar">External Aliases</h3>
486
+
487
+ <div class="name-list">
488
+ <table summary="aliases">
489
+ START:aliases
490
+ <tr class="top-aligned-row context-row">
491
+ <td class="context-item-name">%old_name%</td>
492
+ <td>-&gt;</td>
493
+ <td class="context-item-value">%new_name%</td>
494
+ </tr>
495
+ IF:desc
496
+ <tr class="top-aligned-row context-row">
497
+ <td>&nbsp;</td>
498
+ <td colspan="2" class="context-item-desc">%desc%</td>
499
+ </tr>
500
+ ENDIF:desc
501
+ END:aliases
502
+ </table>
503
+ </div>
504
+ </div>
505
+ ENDIF:aliases
506
+
507
+
508
+ IF:attributes
509
+ <div id="attribute-list">
510
+ <h3 class="section-bar">Attributes</h3>
511
+
512
+ <div class="name-list">
513
+ <table>
514
+ START:attributes
515
+ <tr class="top-aligned-row context-row">
516
+ <td class="context-item-name">%name%</td>
517
+ IF:rw
518
+ <td class="context-item-value">&nbsp;[%rw%]&nbsp;</td>
519
+ ENDIF:rw
520
+ IFNOT:rw
521
+ <td class="context-item-value">&nbsp;&nbsp;</td>
522
+ ENDIF:rw
523
+ <td class="context-item-desc">%a_desc%</td>
524
+ </tr>
525
+ END:attributes
526
+ </table>
527
+ </div>
528
+ </div>
529
+ ENDIF:attributes
530
+
531
+
532
+
533
+ <!-- if method_list -->
534
+ IF:method_list
535
+ <div id="methods">
536
+ START:method_list
537
+ IF:methods
538
+ <h3 class="section-bar">%type% %category% methods</h3>
539
+
540
+ START:methods
541
+ <div id="method-%aref%" class="method-detail">
542
+ <a name="%aref%"></a>
543
+
544
+ <div class="method-heading">
545
+ IF:codeurl
546
+ <a href="%codeurl%" target="Code" class="method-signature"
547
+ onclick="popupCode('%codeurl%');return false;">
548
+ ENDIF:codeurl
549
+ IF:sourcecode
550
+ <a href="#%aref%" class="method-signature">
551
+ ENDIF:sourcecode
552
+ IF:callseq
553
+ <span class="method-name">%callseq%</span>
554
+ ENDIF:callseq
555
+ IFNOT:callseq
556
+ <span class="method-name">%name%</span><span class="method-args">%params%</span>
557
+ ENDIF:callseq
558
+ IF:codeurl
559
+ </a>
560
+ ENDIF:codeurl
561
+ IF:sourcecode
562
+ </a>
563
+ ENDIF:sourcecode
564
+ </div>
565
+
566
+ <div class="method-description">
567
+ IF:m_desc
568
+ %m_desc%
569
+ ENDIF:m_desc
570
+ IF:sourcecode
571
+ <p><a class="source-toggle" href="#"
572
+ onclick="toggleCode('%aref%-source');return false;">[Source]</a></p>
573
+ <div class="method-source-code" id="%aref%-source">
574
+ <pre>
575
+ %sourcecode%
576
+ </pre>
577
+ </div>
578
+ ENDIF:sourcecode
579
+ </div>
580
+ </div>
581
+
582
+ END:methods
583
+ ENDIF:methods
584
+ END:method_list
585
+
586
+ </div>
587
+ ENDIF:method_list
588
+ END:sections
589
+ }
590
+
591
+
592
+ #####################################################################
593
+ ### B O D Y T E M P L A T E
594
+ #####################################################################
595
+
596
+ BODY = HEADER + %{
597
+
598
+ !INCLUDE! <!-- banner header -->
599
+
600
+ <div id="bodyContent">
601
+
602
+ } + METHOD_LIST + %{
603
+
604
+ </div>
605
+
606
+ } + FOOTER
607
+
608
+
609
+
610
+ #####################################################################
611
+ ### S O U R C E C O D E T E M P L A T E
612
+ #####################################################################
613
+
614
+ SRC_PAGE = XHTML_PREAMBLE + %{
615
+ <html>
616
+ <head>
617
+ <title>%title%</title>
618
+ <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
619
+ <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
620
+ </head>
621
+ <body class="standalone-code">
622
+ <pre>%code%</pre>
623
+ </body>
624
+ </html>
625
+ }
626
+
627
+
628
+ #####################################################################
629
+ ### I N D E X F I L E T E M P L A T E S
630
+ #####################################################################
631
+
632
+ FR_INDEX_BODY = %{
633
+ !INCLUDE!
634
+ }
635
+
636
+ FILE_INDEX = XHTML_PREAMBLE + %{
637
+ <!--
638
+
639
+ %list_title%
640
+
641
+ -->
642
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
643
+ <head>
644
+ <title>%list_title%</title>
645
+ <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
646
+ <link rel="stylesheet" href="%style_url%" type="text/css" />
647
+ <base target="docwin" />
648
+ </head>
649
+ <body>
650
+ <div id="index">
651
+ <h1 class="section-bar">%list_title%</h1>
652
+ <div id="index-entries">
653
+ START:entries
654
+ <a href="%href%">%name%</a><br />
655
+ END:entries
656
+ </div>
657
+ </div>
658
+ </body>
659
+ </html>
660
+ }
661
+
662
+ CLASS_INDEX = FILE_INDEX
663
+ METHOD_INDEX = FILE_INDEX
664
+
665
+ INDEX = %{<?xml version="1.0" encoding="%charset%"?>
666
+ <!DOCTYPE html
667
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
668
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
669
+
670
+ <!--
671
+
672
+ %title%
673
+
674
+ -->
675
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
676
+ <head>
677
+ <title>%title%</title>
678
+ <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
679
+ </head>
680
+
681
+ <frameset cols="20%,*">
682
+ <frameset rows="15%,35%,50%">
683
+ <frame src="fr_file_index.html" title="Files" name="Files">
684
+ <frame src="fr_class_index.html" name="Classes">
685
+ <frame src="fr_method_index.html" name="Methods">
686
+ </frameset>
687
+ <frameset>
688
+ <frame src="%initial_page%" name="docwin">
689
+ </frameset>
690
+ </frameset>
691
+ </html>
692
+ }
693
+
694
+ end # module Page
695
+ end # class RDoc
696
+
697
+ require 'rdoc/generators/template/html/one_page_html'