X12 0.0.5

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 (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'