rdoc 2.0.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.

Potentially problematic release.


This version of rdoc might be problematic. Click here for more details.

Files changed (62) hide show
  1. data/History.txt +13 -0
  2. data/Manifest.txt +61 -0
  3. data/README.txt +34 -0
  4. data/Rakefile +10 -0
  5. data/bin/rdoc +22 -0
  6. data/bin/ri +6 -0
  7. data/lib/rdoc.rb +277 -0
  8. data/lib/rdoc/code_objects.rb +776 -0
  9. data/lib/rdoc/diagram.rb +338 -0
  10. data/lib/rdoc/dot.rb +249 -0
  11. data/lib/rdoc/generator.rb +1048 -0
  12. data/lib/rdoc/generator/chm.rb +113 -0
  13. data/lib/rdoc/generator/chm/chm.rb +98 -0
  14. data/lib/rdoc/generator/html.rb +370 -0
  15. data/lib/rdoc/generator/html/hefss.rb +414 -0
  16. data/lib/rdoc/generator/html/html.rb +704 -0
  17. data/lib/rdoc/generator/html/kilmer.rb +418 -0
  18. data/lib/rdoc/generator/html/one_page_html.rb +121 -0
  19. data/lib/rdoc/generator/ri.rb +229 -0
  20. data/lib/rdoc/generator/xml.rb +120 -0
  21. data/lib/rdoc/generator/xml/rdf.rb +113 -0
  22. data/lib/rdoc/generator/xml/xml.rb +111 -0
  23. data/lib/rdoc/markup.rb +473 -0
  24. data/lib/rdoc/markup/attribute_manager.rb +274 -0
  25. data/lib/rdoc/markup/formatter.rb +14 -0
  26. data/lib/rdoc/markup/fragments.rb +337 -0
  27. data/lib/rdoc/markup/inline.rb +101 -0
  28. data/lib/rdoc/markup/lines.rb +152 -0
  29. data/lib/rdoc/markup/preprocess.rb +71 -0
  30. data/lib/rdoc/markup/to_flow.rb +185 -0
  31. data/lib/rdoc/markup/to_html.rb +353 -0
  32. data/lib/rdoc/markup/to_html_crossref.rb +86 -0
  33. data/lib/rdoc/markup/to_latex.rb +328 -0
  34. data/lib/rdoc/markup/to_test.rb +50 -0
  35. data/lib/rdoc/options.rb +616 -0
  36. data/lib/rdoc/parsers/parse_c.rb +775 -0
  37. data/lib/rdoc/parsers/parse_f95.rb +1841 -0
  38. data/lib/rdoc/parsers/parse_rb.rb +2584 -0
  39. data/lib/rdoc/parsers/parse_simple.rb +40 -0
  40. data/lib/rdoc/parsers/parserfactory.rb +99 -0
  41. data/lib/rdoc/rdoc.rb +277 -0
  42. data/lib/rdoc/ri.rb +4 -0
  43. data/lib/rdoc/ri/cache.rb +188 -0
  44. data/lib/rdoc/ri/descriptions.rb +150 -0
  45. data/lib/rdoc/ri/display.rb +274 -0
  46. data/lib/rdoc/ri/driver.rb +452 -0
  47. data/lib/rdoc/ri/formatter.rb +616 -0
  48. data/lib/rdoc/ri/paths.rb +102 -0
  49. data/lib/rdoc/ri/reader.rb +106 -0
  50. data/lib/rdoc/ri/util.rb +81 -0
  51. data/lib/rdoc/ri/writer.rb +68 -0
  52. data/lib/rdoc/stats.rb +25 -0
  53. data/lib/rdoc/template.rb +64 -0
  54. data/lib/rdoc/tokenstream.rb +33 -0
  55. data/test/test_rdoc_c_parser.rb +261 -0
  56. data/test/test_rdoc_markup.rb +613 -0
  57. data/test/test_rdoc_markup_attribute_manager.rb +224 -0
  58. data/test/test_rdoc_ri_attribute_formatter.rb +42 -0
  59. data/test/test_rdoc_ri_default_display.rb +295 -0
  60. data/test/test_rdoc_ri_formatter.rb +318 -0
  61. data/test/test_rdoc_ri_overstrike_formatter.rb +69 -0
  62. metadata +134 -0
@@ -0,0 +1,418 @@
1
+ require 'rdoc/generator/html'
2
+
3
+ module RDoc::Generator::HTML::KILMER
4
+
5
+ FONTS = "Verdana, Arial, Helvetica, sans-serif"
6
+
7
+ STYLE = <<-EOF
8
+ body,td,p { font-family: <%= values["fonts"] %>;
9
+ color: #000040;
10
+ }
11
+
12
+ .attr-rw { font-size: xx-small; color: #444488 }
13
+
14
+ .title-row { background-color: #CCCCFF;
15
+ color: #000010;
16
+ }
17
+
18
+ .big-title-font {
19
+ color: black;
20
+ font-weight: bold;
21
+ font-family: <%= values["fonts"] %>;
22
+ font-size: large;
23
+ height: 60px;
24
+ padding: 10px 3px 10px 3px;
25
+ }
26
+
27
+ .small-title-font { color: black;
28
+ font-family: <%= values["fonts"] %>;
29
+ font-size:10; }
30
+
31
+ .aqua { color: black }
32
+
33
+ .method-name, .attr-name {
34
+ font-family: font-family: <%= values["fonts"] %>;
35
+ font-weight: bold;
36
+ font-size: small;
37
+ margin-left: 20px;
38
+ color: #000033;
39
+ }
40
+
41
+ .tablesubtitle, .tablesubsubtitle {
42
+ width: 100%;
43
+ margin-top: 1ex;
44
+ margin-bottom: .5ex;
45
+ padding: 5px 0px 5px 3px;
46
+ font-size: large;
47
+ color: black;
48
+ background-color: #CCCCFF;
49
+ border: thin;
50
+ }
51
+
52
+ .name-list {
53
+ margin-left: 5px;
54
+ margin-bottom: 2ex;
55
+ line-height: 105%;
56
+ }
57
+
58
+ .description {
59
+ margin-left: 5px;
60
+ margin-bottom: 2ex;
61
+ line-height: 105%;
62
+ font-size: small;
63
+ }
64
+
65
+ .methodtitle {
66
+ font-size: small;
67
+ font-weight: bold;
68
+ text-decoration: none;
69
+ color: #000033;
70
+ background-color: white;
71
+ }
72
+
73
+ .srclink {
74
+ font-size: small;
75
+ font-weight: bold;
76
+ text-decoration: none;
77
+ color: #0000DD;
78
+ background-color: white;
79
+ }
80
+
81
+ .paramsig {
82
+ font-size: small;
83
+ }
84
+
85
+ .srcbut { float: right }
86
+ EOF
87
+
88
+ BODY = <<-EOF
89
+ <html><head>
90
+ <title><%= values["title"] %></title>
91
+ <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>">
92
+ <link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" media="screen" />
93
+ <script type="text/javascript" language="JavaScript">
94
+ <!--
95
+ function popCode(url) {
96
+ parent.frames.source.location = url
97
+ }
98
+ //-->
99
+ </script>
100
+ </head>
101
+ <body bgcolor="white">
102
+
103
+ <%= template_include %> <!-- banner header -->
104
+
105
+ <% if values["diagram"] then %>
106
+ <table width="100%"><tr><td align="center">
107
+ <%= values["diagram"] %>
108
+ </td></tr></table>
109
+ <% end %>
110
+
111
+ <% if values["description"] then %>
112
+ <div class="description"><%= values["description"] %></div>
113
+ <% end %>
114
+
115
+ <% if values["requires"] then %>
116
+ <table cellpadding="5" width="100%">
117
+ <tr><td class="tablesubtitle">Required files</td></tr>
118
+ </table><br />
119
+ <div class="name-list">
120
+ <% values["requires"].each do |requires| %>
121
+ <%= href requires["aref"], requires["name"] %>
122
+ <% end # values["requires"] %>
123
+ <% end %>
124
+ </div>
125
+
126
+ <% if values["methods"] then %>
127
+ <table cellpadding="5" width="100%">
128
+ <tr><td class="tablesubtitle">Methods</td></tr>
129
+ </table><br />
130
+ <div class="name-list">
131
+ <% values["methods"].each do |methods| %>
132
+ <%= href methods["aref"], methods["name"] %>,
133
+ <% end # values["methods"] %>
134
+ </div>
135
+ <% end %>
136
+
137
+
138
+ <% values["sections"].each do |sections| %>
139
+ <div id="section">
140
+ <% if sections["sectitle"] then %>
141
+ <h2 class="section-title"><a name="<%= sections["secsequence"] %>"><%= sections["sectitle"] %></a></h2>
142
+ <% if sections["seccomment"] then %>
143
+ <div class="section-comment">
144
+ <%= sections["seccomment"] %>
145
+ </div>
146
+ <% end %>
147
+ <% end %>
148
+
149
+ <% if sections["attributes"] then %>
150
+ <table cellpadding="5" width="100%">
151
+ <tr><td class="tablesubtitle">Attributes</td></tr>
152
+ </table><br />
153
+ <table cellspacing="5">
154
+ <% sections["attributes"].each do |attributes| %>
155
+ <tr valign="top">
156
+ <% if attributes["rw"] then %>
157
+ <td align="center" class="attr-rw">&nbsp;[<%= attributes["rw"] %>]&nbsp;</td>
158
+ <% end %>
159
+ <% unless attributes["rw"] then %>
160
+ <td></td>
161
+ <% end %>
162
+ <td class="attr-name"><%= attributes["name"] %></td>
163
+ <td><%= attributes["a_desc"] %></td>
164
+ </tr>
165
+ <% end # sections["attributes"] %>
166
+ </table>
167
+ <% end %>
168
+
169
+ <% if sections["classlist"] then %>
170
+ <table cellpadding="5" width="100%">
171
+ <tr><td class="tablesubtitle">Classes and Modules</td></tr>
172
+ </table><br />
173
+ <%= sections["classlist"] %><br />
174
+ <% end %>
175
+
176
+ <%= template_include %> <!-- method descriptions -->
177
+
178
+ <% end # values["sections"] %>
179
+
180
+ </body>
181
+ </html>
182
+ EOF
183
+
184
+ FILE_PAGE = <<-EOF
185
+ <table width="100%">
186
+ <tr class="title-row">
187
+ <td><table width="100%"><tr>
188
+ <td class="big-title-font" colspan="2"><font size="-3"><b>File</b><br /></font><%= values["short_name"] %></td>
189
+ <td align="right"><table cellspacing="0" cellpadding="2">
190
+ <tr>
191
+ <td class="small-title-font">Path:</td>
192
+ <td class="small-title-font"><%= values["full_path"] %>
193
+ <% if values["cvsurl"] then %>
194
+ &nbsp;(<a href="<%= values["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
195
+ <% end %>
196
+ </td>
197
+ </tr>
198
+ <tr>
199
+ <td class="small-title-font">Modified:</td>
200
+ <td class="small-title-font"><%= values["dtm_modified"] %></td>
201
+ </tr>
202
+ </table>
203
+ </td></tr></table></td>
204
+ </tr>
205
+ </table><br />
206
+ EOF
207
+
208
+ CLASS_PAGE = <<-EOF
209
+ <table width="100%" border="0" cellspacing="0">
210
+ <tr class="title-row">
211
+ <td class="big-title-font">
212
+ <font size="-3"><b><%= values["classmod"] %></b><br /></font><%= values["full_name"] %>
213
+ </td>
214
+ <td align="right">
215
+ <table cellspacing="0" cellpadding="2">
216
+ <tr valign="top">
217
+ <td class="small-title-font">In:</td>
218
+ <td class="small-title-font">
219
+ <% values["infiles"].each do |infiles| %>
220
+ <%= href infiles["full_path_url"], infiles["full_path"] %>
221
+ <% if infiles["cvsurl"] then %>
222
+ &nbsp;(<a href="<%= infiles["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
223
+ <% end %>
224
+ <% end # values["infiles"] %>
225
+ </td>
226
+ </tr>
227
+ <% if values["parent"] then %>
228
+ <tr>
229
+ <td class="small-title-font">Parent:</td>
230
+ <td class="small-title-font">
231
+ <% if values["par_url"] then %>
232
+ <a href="<%= values["par_url"] %>" class="cyan">
233
+ <% end %>
234
+ <%= values["parent"] %>
235
+ <% if values["par_url"] then %>
236
+ </a>
237
+ <% end %>
238
+ </td>
239
+ </tr>
240
+ <% end %>
241
+ </table>
242
+ </td>
243
+ </tr>
244
+ </table><br />
245
+ EOF
246
+
247
+ METHOD_LIST = <<-EOF
248
+ <% if values["includes"] then %>
249
+ <div class="tablesubsubtitle">Included modules</div><br />
250
+ <div class="name-list">
251
+ <% values["includes"].each do |includes| %>
252
+ <span class="method-name"><%= href includes["aref"], includes["name"] %></span>
253
+ <% end # values["includes"] %>
254
+ </div>
255
+ <% end %>
256
+
257
+ <% if values["method_list"] then %>
258
+ <% values["method_list"].each do |method_list| $stderr.puts({ :method_list => method_list }.inspect) %>
259
+ <% if values["methods"] then %>
260
+ <table cellpadding=5 width="100%">
261
+ <tr><td class="tablesubtitle"><%= values["type"] %> <%= values["category"] %> methods</td></tr>
262
+ </table>
263
+ <% values["methods"].each do |methods| $stderr.puts({ :methods => methods }.inspect) %>
264
+ <table width="100%" cellspacing="0" cellpadding="5" border="0">
265
+ <tr><td class="methodtitle">
266
+ <a name="<%= values["aref"] %>">
267
+ <% if values["callseq"] then %>
268
+ <b><%= values["callseq"] %></b>
269
+ <% end %>
270
+ <% unless values["callseq"] then %>
271
+ <b><%= values["name"] %></b><%= values["params"] %>
272
+ <% end %>
273
+ <% if values["codeurl"] then %>
274
+ <a href="<%= values["codeurl"] %>" target="source" class="srclink">src</a>
275
+ <% end %>
276
+ </a></td></tr>
277
+ </table>
278
+ <% if values["m_desc"] then %>
279
+ <div class="description">
280
+ <%= values["m_desc"] %>
281
+ </div>
282
+ <% end %>
283
+ <% if values["aka"] then %>
284
+ <div class="aka">
285
+ This method is also aliased as
286
+ <% values["aka"].each do |aka| $stderr.puts({ :aka => aka }.inspect) %>
287
+ <a href="<%= values["aref"] %>"><%= values["name"] %></a>
288
+ <% end # values["aka"] %>
289
+ </div>
290
+ <% end %>
291
+ <% if values["sourcecode"] then %>
292
+ <pre class="source">
293
+ <%= values["sourcecode"] %>
294
+ </pre>
295
+ <% end %>
296
+ <% end # values["methods"] %>
297
+ <% end %>
298
+ <% end # values["method_list"] %>
299
+ <% end %>
300
+ EOF
301
+
302
+ SRC_PAGE = <<-EOF
303
+ <html>
304
+ <head><title><%= values["title"] %></title>
305
+ <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>">
306
+ <style type="text/css">
307
+ .ruby-comment { color: green; font-style: italic }
308
+ .ruby-constant { color: #4433aa; font-weight: bold; }
309
+ .ruby-identifier { color: #222222; }
310
+ .ruby-ivar { color: #2233dd; }
311
+ .ruby-keyword { color: #3333FF; font-weight: bold }
312
+ .ruby-node { color: #777777; }
313
+ .ruby-operator { color: #111111; }
314
+ .ruby-regexp { color: #662222; }
315
+ .ruby-value { color: #662222; font-style: italic }
316
+ .kw { color: #3333FF; font-weight: bold }
317
+ .cmt { color: green; font-style: italic }
318
+ .str { color: #662222; font-style: italic }
319
+ .re { color: #662222; }
320
+ </style>
321
+ </head>
322
+ <body bgcolor="white">
323
+ <pre><%= values["code"] %></pre>
324
+ </body>
325
+ </html>
326
+ EOF
327
+
328
+ FR_INDEX_BODY = %{
329
+ <%= template_include %>
330
+ }
331
+
332
+ FILE_INDEX = <<-EOF
333
+ <html>
334
+ <head>
335
+ <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>">
336
+ <style>
337
+ <!--
338
+ body {
339
+ background-color: #ddddff;
340
+ font-family: #{FONTS};
341
+ font-size: 11px;
342
+ font-style: normal;
343
+ line-height: 14px;
344
+ color: #000040;
345
+ }
346
+
347
+ div.banner {
348
+ background: #0000aa;
349
+ color: white;
350
+ padding: 1;
351
+ margin: 0;
352
+ font-size: 90%;
353
+ font-weight: bold;
354
+ line-height: 1.1;
355
+ text-align: center;
356
+ width: 100%;
357
+ }
358
+
359
+ -->
360
+ </style>
361
+ <base target="docwin">
362
+ </head>
363
+ <body>
364
+ <div class="banner"><%= values["list_title"] %></div>
365
+ <% values["entries"].each do |entries| %>
366
+ <a href="<%= entries["href"] %>"><%= entries["name"] %></a><br />
367
+ <% end # values["entries"] %>
368
+ </body></html>
369
+ EOF
370
+
371
+ CLASS_INDEX = FILE_INDEX
372
+ METHOD_INDEX = FILE_INDEX
373
+
374
+ INDEX = <<-EOF
375
+ <html>
376
+ <head>
377
+ <title><%= values["title"] %></title>
378
+ <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>">
379
+ </head>
380
+
381
+ <frameset cols="20%,*">
382
+ <frameset rows="15%,35%,50%">
383
+ <frame src="fr_file_index.html" title="Files" name="Files">
384
+ <frame src="fr_class_index.html" name="Classes">
385
+ <frame src="fr_method_index.html" name="Methods">
386
+ </frameset>
387
+ <% if values["inline_source"] then %>
388
+ <frame src="<%= values["initial_page"] %>" name="docwin">
389
+ <% end %>
390
+ <% unless values["inline_source"] then %>
391
+ <frameset rows="80%,20%">
392
+ <frame src="<%= values["initial_page"] %>" name="docwin">
393
+ <frame src="blank.html" name="source">
394
+ </frameset>
395
+ <% end %>
396
+ <noframes>
397
+ <body bgcolor="white">
398
+ Click <a href="html/index.html">here</a> for a non-frames
399
+ version of this page.
400
+ </body>
401
+ </noframes>
402
+ </frameset>
403
+
404
+ </html>
405
+ EOF
406
+
407
+ # A blank page to use as a target
408
+ BLANK = %{
409
+ <html><body bgcolor="white"></body></html>
410
+ }
411
+
412
+ def write_extra_pages
413
+ template = TemplatePage.new(BLANK)
414
+ File.open("blank.html", "w") { |f| template.write_html_on(f, {}) }
415
+ end
416
+
417
+ end
418
+
@@ -0,0 +1,121 @@
1
+ require 'rdoc/generator/html'
2
+
3
+ module RDoc::Generator::HTML::ONE_PAGE_HTML
4
+
5
+ CONTENTS_XML = <<-EOF
6
+ <% if defined? classes and classes["description"] then %>
7
+ <%= classes["description"] %>
8
+ <% end %>
9
+
10
+ <% if defined? files and files["requires"] then %>
11
+ <h4>Requires:</h4>
12
+ <ul>
13
+ <% files["requires"].each do |requires| %>
14
+ <% if requires["aref"] then %>
15
+ <li><a href="<%= requires["aref"] %>"><%= requires["name"] %></a></li>
16
+ <% end %>
17
+ <% unless requires["aref"] then %>
18
+ <li><%= requires["name"] %></li>
19
+ <% end %>
20
+ <% end # files["requires"] %>
21
+ </ul>
22
+ <% end %>
23
+
24
+ <% if defined? classes and classes["includes"] then %>
25
+ <h4>Includes</h4>
26
+ <ul>
27
+ <% classes["includes"].each do |includes| %>
28
+ <% if includes["aref"] then %>
29
+ <li><a href="<%= includes["aref"] %>"><%= includes["name"] %></a></li>
30
+ <% end %>
31
+ <% unless includes["aref"] then %>
32
+ <li><%= includes["name"] %></li>
33
+ <% end %>
34
+ <% end # classes["includes"] %>
35
+ </ul>
36
+ <% end %>
37
+
38
+ <% if defined? classes and classes["sections"] then %>
39
+ <% classes["sections"].each do |sections| %>
40
+ <% if sections["attributes"] then %>
41
+ <h4>Attributes</h4>
42
+ <table>
43
+ <% sections["attributes"].each do |attributes| %>
44
+ <tr><td><%= attributes["name"] %></td><td><%= attributes["rw"] %></td><td><%= attributes["a_desc"] %></td></tr>
45
+ <% end # sections["attributes"] %>
46
+ </table>
47
+ <% end %>
48
+
49
+ <% if sections["method_list"] then %>
50
+ <h3>Methods</h3>
51
+ <% sections["method_list"].each do |method_list| %>
52
+ <% if method_list["methods"] then %>
53
+ <% method_list["methods"].each do |methods| %>
54
+ <h4><%= methods["type"] %> <%= methods["category"] %> method:
55
+ <% if methods["callseq"] then %>
56
+ <a name="<%= methods["aref"] %>"><%= methods["callseq"] %></a>
57
+ <% end %>
58
+ <% unless methods["callseq"] then %>
59
+ <a name="<%= methods["aref"] %>"><%= methods["name"] %><%= methods["params"] %></a></h4>
60
+ <% end %>
61
+
62
+ <% if methods["m_desc"] then %>
63
+ <%= methods["m_desc"] %>
64
+ <% end %>
65
+
66
+ <% if methods["sourcecode"] then %>
67
+ <blockquote><pre>
68
+ <%= methods["sourcecode"] %>
69
+ </pre></blockquote>
70
+ <% end %>
71
+ <% end # method_list["methods"] %>
72
+ <% end %>
73
+ <% end # sections["method_list"] %>
74
+ <% end %>
75
+ <% end # classes["sections"] %>
76
+ <% end %>
77
+ EOF
78
+
79
+ ONE_PAGE = %{
80
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
81
+ <html>
82
+ <head>
83
+ <title><%= values["title"] %></title>
84
+ <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" />
85
+ </head>
86
+ <body>
87
+ <% values["files"].each do |files| %>
88
+ <h2>File: <%= files["short_name"] %></h2>
89
+ <table>
90
+ <tr><td>Path:</td><td><%= files["full_path"] %></td></tr>
91
+ <tr><td>Modified:</td><td><%= files["dtm_modified"] %></td></tr>
92
+ </table>
93
+ } + CONTENTS_XML + %{
94
+ <% end # values["files"] %>
95
+
96
+ <% if values["classes"] then %>
97
+ <h2>Classes</h2>
98
+ <% values["classes"].each do |classes| %>
99
+ <% if classes["parent"] then %>
100
+ <h3><%= classes["classmod"] %> <%= classes["full_name"] %> &lt; <%= href classes["par_url"], classes["parent"] %></h3>
101
+ <% end %>
102
+ <% unless classes["parent"] then %>
103
+ <h3><%= classes["classmod"] %> <%= classes["full_name"] %></h3>
104
+ <% end %>
105
+
106
+ <% if classes["infiles"] then %>
107
+ (in files
108
+ <% classes["infiles"].each do |infiles| %>
109
+ <%= href infiles["full_path_url"], infiles["full_path"] %>
110
+ <% end # classes["infiles"] %>
111
+ )
112
+ <% end %>
113
+ } + CONTENTS_XML + %{
114
+ <% end # values["classes"] %>
115
+ <% end %>
116
+ </body>
117
+ </html>
118
+ }
119
+
120
+ end
121
+