roby 0.7

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 (240) hide show
  1. data/.gitignore +29 -0
  2. data/History.txt +4 -0
  3. data/License-fr.txt +519 -0
  4. data/License.txt +515 -0
  5. data/Manifest.txt +245 -0
  6. data/NOTES +4 -0
  7. data/README.txt +163 -0
  8. data/Rakefile +161 -0
  9. data/TODO.txt +146 -0
  10. data/app/README.txt +24 -0
  11. data/app/Rakefile +8 -0
  12. data/app/config/ROBOT.rb +5 -0
  13. data/app/config/app.yml +91 -0
  14. data/app/config/init.rb +7 -0
  15. data/app/config/roby.yml +3 -0
  16. data/app/controllers/.gitattributes +0 -0
  17. data/app/controllers/ROBOT.rb +2 -0
  18. data/app/data/.gitattributes +0 -0
  19. data/app/planners/ROBOT/main.rb +6 -0
  20. data/app/planners/main.rb +5 -0
  21. data/app/scripts/distributed +3 -0
  22. data/app/scripts/generate/bookmarks +3 -0
  23. data/app/scripts/replay +3 -0
  24. data/app/scripts/results +3 -0
  25. data/app/scripts/run +3 -0
  26. data/app/scripts/server +3 -0
  27. data/app/scripts/shell +3 -0
  28. data/app/scripts/test +3 -0
  29. data/app/tasks/.gitattributes +0 -0
  30. data/app/tasks/ROBOT/.gitattributes +0 -0
  31. data/bin/roby +210 -0
  32. data/bin/roby-log +168 -0
  33. data/bin/roby-shell +25 -0
  34. data/doc/images/event_generalization.png +0 -0
  35. data/doc/images/exception_propagation_1.png +0 -0
  36. data/doc/images/exception_propagation_2.png +0 -0
  37. data/doc/images/exception_propagation_3.png +0 -0
  38. data/doc/images/exception_propagation_4.png +0 -0
  39. data/doc/images/exception_propagation_5.png +0 -0
  40. data/doc/images/replay_handler_error.png +0 -0
  41. data/doc/images/replay_handler_error_0.png +0 -0
  42. data/doc/images/replay_handler_error_1.png +0 -0
  43. data/doc/images/roby_cycle_overview.png +0 -0
  44. data/doc/images/roby_replay_02.png +0 -0
  45. data/doc/images/roby_replay_03.png +0 -0
  46. data/doc/images/roby_replay_04.png +0 -0
  47. data/doc/images/roby_replay_event_representation.png +0 -0
  48. data/doc/images/roby_replay_first_state.png +0 -0
  49. data/doc/images/roby_replay_relations.png +0 -0
  50. data/doc/images/roby_replay_startup.png +0 -0
  51. data/doc/images/task_event_generalization.png +0 -0
  52. data/doc/papers.rdoc +11 -0
  53. data/doc/styles/allison.css +314 -0
  54. data/doc/styles/allison.js +316 -0
  55. data/doc/styles/allison.rb +276 -0
  56. data/doc/styles/jamis.rb +593 -0
  57. data/doc/tutorials/01-GettingStarted.rdoc +86 -0
  58. data/doc/tutorials/02-GoForward.rdoc +220 -0
  59. data/doc/tutorials/03-PlannedPath.rdoc +268 -0
  60. data/doc/tutorials/04-EventPropagation.rdoc +236 -0
  61. data/doc/tutorials/05-ErrorHandling.rdoc +319 -0
  62. data/doc/tutorials/06-Overview.rdoc +40 -0
  63. data/doc/videos.rdoc +69 -0
  64. data/ext/droby/dump.cc +175 -0
  65. data/ext/droby/extconf.rb +3 -0
  66. data/ext/graph/algorithm.cc +746 -0
  67. data/ext/graph/extconf.rb +7 -0
  68. data/ext/graph/graph.cc +529 -0
  69. data/ext/graph/graph.hh +183 -0
  70. data/ext/graph/iterator_sequence.hh +102 -0
  71. data/ext/graph/undirected_dfs.hh +226 -0
  72. data/ext/graph/undirected_graph.hh +421 -0
  73. data/lib/roby.rb +41 -0
  74. data/lib/roby/app.rb +870 -0
  75. data/lib/roby/app/rake.rb +56 -0
  76. data/lib/roby/app/run.rb +14 -0
  77. data/lib/roby/app/scripts/distributed.rb +13 -0
  78. data/lib/roby/app/scripts/generate/bookmarks.rb +162 -0
  79. data/lib/roby/app/scripts/replay.rb +31 -0
  80. data/lib/roby/app/scripts/results.rb +15 -0
  81. data/lib/roby/app/scripts/run.rb +26 -0
  82. data/lib/roby/app/scripts/server.rb +18 -0
  83. data/lib/roby/app/scripts/shell.rb +88 -0
  84. data/lib/roby/app/scripts/test.rb +40 -0
  85. data/lib/roby/basic_object.rb +151 -0
  86. data/lib/roby/config.rb +5 -0
  87. data/lib/roby/control.rb +747 -0
  88. data/lib/roby/decision_control.rb +17 -0
  89. data/lib/roby/distributed.rb +32 -0
  90. data/lib/roby/distributed/base.rb +440 -0
  91. data/lib/roby/distributed/communication.rb +871 -0
  92. data/lib/roby/distributed/connection_space.rb +592 -0
  93. data/lib/roby/distributed/distributed_object.rb +206 -0
  94. data/lib/roby/distributed/drb.rb +62 -0
  95. data/lib/roby/distributed/notifications.rb +539 -0
  96. data/lib/roby/distributed/peer.rb +550 -0
  97. data/lib/roby/distributed/protocol.rb +529 -0
  98. data/lib/roby/distributed/proxy.rb +343 -0
  99. data/lib/roby/distributed/subscription.rb +311 -0
  100. data/lib/roby/distributed/transaction.rb +498 -0
  101. data/lib/roby/event.rb +897 -0
  102. data/lib/roby/exceptions.rb +234 -0
  103. data/lib/roby/executives/simple.rb +30 -0
  104. data/lib/roby/graph.rb +166 -0
  105. data/lib/roby/interface.rb +390 -0
  106. data/lib/roby/log.rb +3 -0
  107. data/lib/roby/log/chronicle.rb +303 -0
  108. data/lib/roby/log/console.rb +72 -0
  109. data/lib/roby/log/data_stream.rb +197 -0
  110. data/lib/roby/log/dot.rb +279 -0
  111. data/lib/roby/log/event_stream.rb +151 -0
  112. data/lib/roby/log/file.rb +340 -0
  113. data/lib/roby/log/gui/basic_display.ui +83 -0
  114. data/lib/roby/log/gui/chronicle.rb +26 -0
  115. data/lib/roby/log/gui/chronicle_view.rb +40 -0
  116. data/lib/roby/log/gui/chronicle_view.ui +70 -0
  117. data/lib/roby/log/gui/data_displays.rb +172 -0
  118. data/lib/roby/log/gui/data_displays.ui +155 -0
  119. data/lib/roby/log/gui/notifications.rb +26 -0
  120. data/lib/roby/log/gui/relations.rb +248 -0
  121. data/lib/roby/log/gui/relations.ui +123 -0
  122. data/lib/roby/log/gui/relations_view.rb +185 -0
  123. data/lib/roby/log/gui/relations_view.ui +149 -0
  124. data/lib/roby/log/gui/replay.rb +327 -0
  125. data/lib/roby/log/gui/replay_controls.rb +200 -0
  126. data/lib/roby/log/gui/replay_controls.ui +259 -0
  127. data/lib/roby/log/gui/runtime.rb +130 -0
  128. data/lib/roby/log/hooks.rb +185 -0
  129. data/lib/roby/log/logger.rb +202 -0
  130. data/lib/roby/log/notifications.rb +244 -0
  131. data/lib/roby/log/plan_rebuilder.rb +470 -0
  132. data/lib/roby/log/relations.rb +1056 -0
  133. data/lib/roby/log/server.rb +550 -0
  134. data/lib/roby/log/sqlite.rb +47 -0
  135. data/lib/roby/log/timings.rb +164 -0
  136. data/lib/roby/plan-object.rb +247 -0
  137. data/lib/roby/plan.rb +762 -0
  138. data/lib/roby/planning.rb +13 -0
  139. data/lib/roby/planning/loops.rb +302 -0
  140. data/lib/roby/planning/model.rb +906 -0
  141. data/lib/roby/planning/task.rb +151 -0
  142. data/lib/roby/propagation.rb +562 -0
  143. data/lib/roby/query.rb +619 -0
  144. data/lib/roby/relations.rb +583 -0
  145. data/lib/roby/relations/conflicts.rb +70 -0
  146. data/lib/roby/relations/ensured.rb +20 -0
  147. data/lib/roby/relations/error_handling.rb +23 -0
  148. data/lib/roby/relations/events.rb +9 -0
  149. data/lib/roby/relations/executed_by.rb +193 -0
  150. data/lib/roby/relations/hierarchy.rb +239 -0
  151. data/lib/roby/relations/influence.rb +10 -0
  152. data/lib/roby/relations/planned_by.rb +63 -0
  153. data/lib/roby/robot.rb +7 -0
  154. data/lib/roby/standard_errors.rb +218 -0
  155. data/lib/roby/state.rb +5 -0
  156. data/lib/roby/state/events.rb +221 -0
  157. data/lib/roby/state/information.rb +55 -0
  158. data/lib/roby/state/pos.rb +110 -0
  159. data/lib/roby/state/shapes.rb +32 -0
  160. data/lib/roby/state/state.rb +353 -0
  161. data/lib/roby/support.rb +92 -0
  162. data/lib/roby/task-operations.rb +182 -0
  163. data/lib/roby/task.rb +1618 -0
  164. data/lib/roby/test/common.rb +399 -0
  165. data/lib/roby/test/distributed.rb +214 -0
  166. data/lib/roby/test/tasks/empty_task.rb +9 -0
  167. data/lib/roby/test/tasks/goto.rb +36 -0
  168. data/lib/roby/test/tasks/simple_task.rb +23 -0
  169. data/lib/roby/test/testcase.rb +519 -0
  170. data/lib/roby/test/tools.rb +160 -0
  171. data/lib/roby/thread_task.rb +87 -0
  172. data/lib/roby/transactions.rb +462 -0
  173. data/lib/roby/transactions/proxy.rb +292 -0
  174. data/lib/roby/transactions/updates.rb +139 -0
  175. data/plugins/fault_injection/History.txt +4 -0
  176. data/plugins/fault_injection/README.txt +37 -0
  177. data/plugins/fault_injection/Rakefile +18 -0
  178. data/plugins/fault_injection/TODO.txt +0 -0
  179. data/plugins/fault_injection/app.rb +52 -0
  180. data/plugins/fault_injection/fault_injection.rb +89 -0
  181. data/plugins/fault_injection/test/test_fault_injection.rb +84 -0
  182. data/plugins/subsystems/README.txt +40 -0
  183. data/plugins/subsystems/Rakefile +18 -0
  184. data/plugins/subsystems/app.rb +171 -0
  185. data/plugins/subsystems/test/app/README +24 -0
  186. data/plugins/subsystems/test/app/Rakefile +8 -0
  187. data/plugins/subsystems/test/app/config/app.yml +71 -0
  188. data/plugins/subsystems/test/app/config/init.rb +9 -0
  189. data/plugins/subsystems/test/app/config/roby.yml +3 -0
  190. data/plugins/subsystems/test/app/planners/main.rb +20 -0
  191. data/plugins/subsystems/test/app/scripts/distributed +3 -0
  192. data/plugins/subsystems/test/app/scripts/replay +3 -0
  193. data/plugins/subsystems/test/app/scripts/results +3 -0
  194. data/plugins/subsystems/test/app/scripts/run +3 -0
  195. data/plugins/subsystems/test/app/scripts/server +3 -0
  196. data/plugins/subsystems/test/app/scripts/shell +3 -0
  197. data/plugins/subsystems/test/app/scripts/test +3 -0
  198. data/plugins/subsystems/test/app/tasks/services.rb +15 -0
  199. data/plugins/subsystems/test/test_subsystems.rb +71 -0
  200. data/test/distributed/test_communication.rb +178 -0
  201. data/test/distributed/test_connection.rb +282 -0
  202. data/test/distributed/test_execution.rb +373 -0
  203. data/test/distributed/test_mixed_plan.rb +341 -0
  204. data/test/distributed/test_plan_notifications.rb +238 -0
  205. data/test/distributed/test_protocol.rb +516 -0
  206. data/test/distributed/test_query.rb +102 -0
  207. data/test/distributed/test_remote_plan.rb +491 -0
  208. data/test/distributed/test_transaction.rb +463 -0
  209. data/test/mockups/tasks.rb +27 -0
  210. data/test/planning/test_loops.rb +380 -0
  211. data/test/planning/test_model.rb +427 -0
  212. data/test/planning/test_task.rb +106 -0
  213. data/test/relations/test_conflicts.rb +42 -0
  214. data/test/relations/test_ensured.rb +38 -0
  215. data/test/relations/test_executed_by.rb +149 -0
  216. data/test/relations/test_hierarchy.rb +158 -0
  217. data/test/relations/test_planned_by.rb +54 -0
  218. data/test/suite_core.rb +24 -0
  219. data/test/suite_distributed.rb +9 -0
  220. data/test/suite_planning.rb +3 -0
  221. data/test/suite_relations.rb +8 -0
  222. data/test/test_bgl.rb +508 -0
  223. data/test/test_control.rb +399 -0
  224. data/test/test_event.rb +894 -0
  225. data/test/test_exceptions.rb +592 -0
  226. data/test/test_interface.rb +37 -0
  227. data/test/test_log.rb +114 -0
  228. data/test/test_log_server.rb +132 -0
  229. data/test/test_plan.rb +584 -0
  230. data/test/test_propagation.rb +210 -0
  231. data/test/test_query.rb +266 -0
  232. data/test/test_relations.rb +180 -0
  233. data/test/test_state.rb +414 -0
  234. data/test/test_support.rb +16 -0
  235. data/test/test_task.rb +938 -0
  236. data/test/test_testcase.rb +122 -0
  237. data/test/test_thread_task.rb +73 -0
  238. data/test/test_transactions.rb +569 -0
  239. data/test/test_transactions_proxy.rb +198 -0
  240. metadata +570 -0
@@ -0,0 +1,593 @@
1
+ module RDoc
2
+ module Page
3
+
4
+ FONTS = "\"Bitstream Vera Sans\", Verdana, Arial, Helvetica, sans-serif"
5
+
6
+ STYLE = <<CSS
7
+ a {
8
+ color: #00F;
9
+ text-decoration: none;
10
+ }
11
+
12
+ a:hover {
13
+ color: #77F;
14
+ text-decoration: underline;
15
+ }
16
+
17
+ body, td, p {
18
+ font-family: %fonts%;
19
+ background: #FFF;
20
+ color: #000;
21
+ margin: 0px;
22
+ font-size: small;
23
+ }
24
+
25
+ #content {
26
+ margin: 2em;
27
+ }
28
+
29
+ #description p {
30
+ margin-bottom: 0.5em;
31
+ }
32
+
33
+ .sectiontitle {
34
+ margin-top: 1em;
35
+ margin-bottom: 1em;
36
+ padding: 0.5em;
37
+ padding-left: 2em;
38
+ background: #005;
39
+ color: #FFF;
40
+ font-weight: bold;
41
+ border: 1px dotted black;
42
+ }
43
+
44
+ .attr-rw {
45
+ padding-left: 1em;
46
+ padding-right: 1em;
47
+ text-align: center;
48
+ color: #055;
49
+ }
50
+
51
+ .attr-name {
52
+ font-weight: bold;
53
+ }
54
+
55
+ .attr-desc {
56
+ }
57
+
58
+ .attr-value {
59
+ font-family: monospace;
60
+ }
61
+
62
+ .file-title-prefix {
63
+ font-size: large;
64
+ }
65
+
66
+ .file-title {
67
+ font-size: large;
68
+ font-weight: bold;
69
+ background: #005;
70
+ color: #FFF;
71
+ }
72
+
73
+ .banner {
74
+ background: #005;
75
+ color: #FFF;
76
+ border: 1px solid black;
77
+ padding: 1em;
78
+ }
79
+
80
+ .banner td {
81
+ background: transparent;
82
+ color: #FFF;
83
+ }
84
+
85
+ h1 a, h2 a, .sectiontitle a, .banner a {
86
+ color: #FF0;
87
+ }
88
+
89
+ h1 a:hover, h2 a:hover, .sectiontitle a:hover, .banner a:hover {
90
+ color: #FF7;
91
+ }
92
+
93
+ img {
94
+ margin: 2em;
95
+ }
96
+
97
+ .dyn-source {
98
+ display: none;
99
+ background: #FFE;
100
+ color: #000;
101
+ border: 1px dotted black;
102
+ margin: 0.5em 2em 0.5em 2em;
103
+ padding: 0.5em;
104
+ }
105
+
106
+ .dyn-source .cmt {
107
+ color: #00F;
108
+ font-style: italic;
109
+ }
110
+
111
+ .dyn-source .kw {
112
+ color: #070;
113
+ font-weight: bold;
114
+ }
115
+
116
+ .method {
117
+ margin-left: 1em;
118
+ margin-right: 1em;
119
+ margin-bottom: 1em;
120
+ }
121
+
122
+ .description pre {
123
+ padding: 0.5em;
124
+ border: 1px dotted black;
125
+ background: #FFE;
126
+ }
127
+
128
+ .method .title {
129
+ font-family: monospace;
130
+ font-size: large;
131
+ border-bottom: 1px dashed black;
132
+ margin-bottom: 0.3em;
133
+ padding-bottom: 0.1em;
134
+ }
135
+
136
+ .method .description, .method .sourcecode {
137
+ margin-left: 1em;
138
+ }
139
+
140
+ .description p, .sourcecode p {
141
+ margin-bottom: 0.5em;
142
+ }
143
+
144
+ .method .sourcecode p.source-link {
145
+ text-indent: 0em;
146
+ margin-top: 0.5em;
147
+ }
148
+
149
+ .method .aka {
150
+ margin-top: 0.3em;
151
+ margin-left: 1em;
152
+ font-style: italic;
153
+ text-indent: 2em;
154
+ }
155
+
156
+ h1 {
157
+ padding: 1em;
158
+ border: 1px solid black;
159
+ font-size: x-large;
160
+ font-weight: bold;
161
+ color: #FFF;
162
+ background: #007;
163
+ }
164
+
165
+ h2 {
166
+ padding: 0.5em 1em 0.5em 1em;
167
+ border: 1px solid black;
168
+ font-size: large;
169
+ font-weight: bold;
170
+ color: #FFF;
171
+ background: #009;
172
+ }
173
+
174
+ h3, h4, h5, h6 {
175
+ padding: 0.2em 1em 0.2em 1em;
176
+ border: 1px dashed black;
177
+ color: #000;
178
+ background: #AAF;
179
+ }
180
+
181
+ .sourcecode > pre {
182
+ padding: 0.5em;
183
+ border: 1px dotted black;
184
+ background: #FFE;
185
+ }
186
+
187
+ CSS
188
+
189
+ XHTML_PREAMBLE = %{<?xml version="1.0" encoding="%charset%"?>
190
+ <!DOCTYPE html
191
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
192
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
193
+ }
194
+
195
+ XHTML_FRAMESET_PREAMBLE = %{
196
+ <!DOCTYPE html
197
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
198
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
199
+ }
200
+
201
+ HEADER = XHTML_PREAMBLE + <<ENDHEADER
202
+ <html>
203
+ <head>
204
+ <title>%title%</title>
205
+ <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
206
+ <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
207
+
208
+ <script language="JavaScript" type="text/javascript">
209
+ // <![CDATA[
210
+
211
+ function toggleSource( id )
212
+ {
213
+ var elem
214
+ var link
215
+
216
+ if( document.getElementById )
217
+ {
218
+ elem = document.getElementById( id )
219
+ link = document.getElementById( "l_" + id )
220
+ }
221
+ else if ( document.all )
222
+ {
223
+ elem = eval( "document.all." + id )
224
+ link = eval( "document.all.l_" + id )
225
+ }
226
+ else
227
+ return false;
228
+
229
+ if( elem.style.display == "block" )
230
+ {
231
+ elem.style.display = "none"
232
+ link.innerHTML = "show source"
233
+ }
234
+ else
235
+ {
236
+ elem.style.display = "block"
237
+ link.innerHTML = "hide source"
238
+ }
239
+ }
240
+
241
+ function openCode( url )
242
+ {
243
+ window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
244
+ }
245
+ // ]]>
246
+ </script>
247
+ </head>
248
+
249
+ <body>
250
+ ENDHEADER
251
+
252
+ FILE_PAGE = <<HTML
253
+ <table border='0' cellpadding='0' cellspacing='0' width="100%" class='banner'>
254
+ <tr><td>
255
+ <table width="100%" border='0' cellpadding='0' cellspacing='0'><tr>
256
+ <td class="file-title" colspan="2"><span class="file-title-prefix">File</span><br />%short_name%</td>
257
+ <td align="right">
258
+ <table border='0' cellspacing="0" cellpadding="2">
259
+ <tr>
260
+ <td>Path:</td>
261
+ <td>%full_path%
262
+ IF:cvsurl
263
+ &nbsp;(<a href="%cvsurl%">CVS</a>)
264
+ ENDIF:cvsurl
265
+ </td>
266
+ </tr>
267
+ <tr>
268
+ <td>Modified:</td>
269
+ <td>%dtm_modified%</td>
270
+ </tr>
271
+ </table>
272
+ </td></tr>
273
+ </table>
274
+ </td></tr>
275
+ </table><br />
276
+ HTML
277
+
278
+ ###################################################################
279
+
280
+ CLASS_PAGE = <<HTML
281
+ <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
282
+ <td class="file-title"><span class="file-title-prefix">%classmod%</span><br />%full_name%</td>
283
+ <td align="right">
284
+ <table cellspacing="0" cellpadding="2">
285
+ <tr valign="top">
286
+ <td>In:</td>
287
+ <td>
288
+ START:infiles
289
+ HREF:full_path_url:full_path:
290
+ IF:cvsurl
291
+ &nbsp;(<a href="%cvsurl%">CVS</a>)
292
+ ENDIF:cvsurl
293
+ END:infiles
294
+ </td>
295
+ </tr>
296
+ IF:parent
297
+ <tr>
298
+ <td>Parent:</td>
299
+ <td>
300
+ IF:par_url
301
+ <a href="%par_url%">
302
+ ENDIF:par_url
303
+ %parent%
304
+ IF:par_url
305
+ </a>
306
+ ENDIF:par_url
307
+ </td>
308
+ </tr>
309
+ ENDIF:parent
310
+ </table>
311
+ </td>
312
+ </tr>
313
+ </table>
314
+ HTML
315
+
316
+ ###################################################################
317
+
318
+ METHOD_LIST = <<HTML
319
+ <div id="content">
320
+ IF:diagram
321
+ <table cellpadding='0' cellspacing='0' border='0' width="100%"><tr><td align="center">
322
+ %diagram%
323
+ </td></tr></table>
324
+ ENDIF:diagram
325
+
326
+ IF:description
327
+ <div class="description">%description%</div>
328
+ ENDIF:description
329
+
330
+ IF:requires
331
+ <div class="sectiontitle">Required Files</div>
332
+ <ul>
333
+ START:requires
334
+ <li>HREF:aref:name:</li>
335
+ END:requires
336
+ </ul>
337
+ ENDIF:requires
338
+
339
+ IF:toc
340
+ <div class="sectiontitle">Contents</div>
341
+ <ul>
342
+ START:toc
343
+ <li><a href="#%href%">%secname%</a></li>
344
+ END:toc
345
+ </ul>
346
+ ENDIF:toc
347
+
348
+ IF:methods
349
+ <div class="sectiontitle">Methods</div>
350
+ <ul>
351
+ START:methods
352
+ <li>HREF:aref:name:</li>
353
+ END:methods
354
+ </ul>
355
+ ENDIF:methods
356
+
357
+ IF:includes
358
+ <div class="sectiontitle">Included Modules</div>
359
+ <ul>
360
+ START:includes
361
+ <li>HREF:aref:name:</li>
362
+ END:includes
363
+ </ul>
364
+ ENDIF:includes
365
+
366
+ START:sections
367
+ IF:sectitle
368
+ <div class="sectiontitle"><a name="%secsequence%">%sectitle%</a></div>
369
+ IF:seccomment
370
+ <div class="description">
371
+ %seccomment%
372
+ </div>
373
+ ENDIF:seccomment
374
+ ENDIF:sectitle
375
+
376
+ IF:classlist
377
+ <div class="sectiontitle">Classes and Modules</div>
378
+ %classlist%
379
+ ENDIF:classlist
380
+
381
+ IF:constants
382
+ <div class="sectiontitle">Constants</div>
383
+ <table border='0' cellpadding='5'>
384
+ START:constants
385
+ <tr valign='top'>
386
+ <td class="attr-name">%name%</td>
387
+ <td>=</td>
388
+ <td class="attr-value">%value%</td>
389
+ </tr>
390
+ IF:desc
391
+ <tr valign='top'>
392
+ <td>&nbsp;</td>
393
+ <td colspan="2" class="attr-desc">%desc%</td>
394
+ </tr>
395
+ ENDIF:desc
396
+ END:constants
397
+ </table>
398
+ ENDIF:constants
399
+
400
+ IF:attributes
401
+ <div class="sectiontitle">Attributes</div>
402
+ <table border='0' cellpadding='5'>
403
+ START:attributes
404
+ <tr valign='top'>
405
+ <td class='attr-rw'>
406
+ IF:rw
407
+ [%rw%]
408
+ ENDIF:rw
409
+ </td>
410
+ <td class='attr-name'>%name%</td>
411
+ <td class='attr-desc'>%a_desc%</td>
412
+ </tr>
413
+ END:attributes
414
+ </table>
415
+ ENDIF:attributes
416
+
417
+ IF:method_list
418
+ START:method_list
419
+ IF:methods
420
+ <div class="sectiontitle">%type% %category% methods</div>
421
+ START:methods
422
+ <div class="method">
423
+ <div class="title">
424
+ IF:callseq
425
+ <a name="%aref%"></a><b>%callseq%</b>
426
+ ENDIF:callseq
427
+ IFNOT:callseq
428
+ <a name="%aref%"></a><b>%name%</b>%params%
429
+ ENDIF:callseq
430
+ IF:codeurl
431
+ [&nbsp;<a href="%codeurl%" target="SOURCE_CODE" onclick="javascript:openCode('%codeurl%'); return false;">source</a>&nbsp;]
432
+ ENDIF:codeurl
433
+ </div>
434
+ IF:m_desc
435
+ <div class="description">
436
+ %m_desc%
437
+ </div>
438
+ ENDIF:m_desc
439
+ IF:aka
440
+ <div class="aka">
441
+ This method is also aliased as
442
+ START:aka
443
+ <a href="%aref%">%name%</a>
444
+ END:aka
445
+ </div>
446
+ ENDIF:aka
447
+ IF:sourcecode
448
+ <div class="sourcecode">
449
+ <p class="source-link">[ <a href="javascript:toggleSource('%aref%_source')" id="l_%aref%_source">show source</a> ]</p>
450
+ <div id="%aref%_source" class="dyn-source">
451
+ <pre>
452
+ %sourcecode%
453
+ </pre>
454
+ </div>
455
+ </div>
456
+ ENDIF:sourcecode
457
+ </div>
458
+ END:methods
459
+ ENDIF:methods
460
+ END:method_list
461
+ ENDIF:method_list
462
+ END:sections
463
+ </div>
464
+ HTML
465
+
466
+ FOOTER = <<ENDFOOTER
467
+ </body>
468
+ </html>
469
+ ENDFOOTER
470
+
471
+ BODY = HEADER + <<ENDBODY
472
+ !INCLUDE! <!-- banner header -->
473
+
474
+ <div id="bodyContent">
475
+ #{METHOD_LIST}
476
+ </div>
477
+
478
+ #{FOOTER}
479
+ ENDBODY
480
+
481
+ ########################## Source code ##########################
482
+
483
+ SRC_PAGE = XHTML_PREAMBLE + <<HTML
484
+ <html>
485
+ <head><title>%title%</title>
486
+ <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
487
+ <style type="text/css">
488
+ .ruby-comment { color: green; font-style: italic }
489
+ .ruby-constant { color: #4433aa; font-weight: bold; }
490
+ .ruby-identifier { color: #222222; }
491
+ .ruby-ivar { color: #2233dd; }
492
+ .ruby-keyword { color: #3333FF; font-weight: bold }
493
+ .ruby-node { color: #777777; }
494
+ .ruby-operator { color: #111111; }
495
+ .ruby-regexp { color: #662222; }
496
+ .ruby-value { color: #662222; font-style: italic }
497
+ .kw { color: #3333FF; font-weight: bold }
498
+ .cmt { color: green; font-style: italic }
499
+ .str { color: #662222; font-style: italic }
500
+ .re { color: #662222; }
501
+ </style>
502
+ </head>
503
+ <body bgcolor="white">
504
+ <pre>%code%</pre>
505
+ </body>
506
+ </html>
507
+ HTML
508
+
509
+ ########################## Index ################################
510
+
511
+ FR_INDEX_BODY = <<HTML
512
+ !INCLUDE!
513
+ HTML
514
+
515
+ FILE_INDEX = XHTML_PREAMBLE + <<HTML
516
+ <html>
517
+ <head>
518
+ <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
519
+ <title>Index</title>
520
+ <style type="text/css">
521
+ <!--
522
+ body {
523
+ background-color: #EEE;
524
+ font-family: #{FONTS};
525
+ color: #000;
526
+ margin: 0px;
527
+ }
528
+ .banner {
529
+ background: #005;
530
+ color: #FFF;
531
+ padding: 0.2em;
532
+ font-size: small;
533
+ font-weight: bold;
534
+ text-align: center;
535
+ }
536
+ .entries {
537
+ margin: 0.25em 1em 0 1em;
538
+ font-size: x-small;
539
+ }
540
+ a {
541
+ color: #00F;
542
+ text-decoration: none;
543
+ white-space: nowrap;
544
+ }
545
+ a:hover {
546
+ color: #77F;
547
+ text-decoration: underline;
548
+ }
549
+ -->
550
+ </style>
551
+ <base target="docwin" />
552
+ </head>
553
+ <body>
554
+ <div class="banner">%list_title%</div>
555
+ <div class="entries">
556
+ START:entries
557
+ <a href="%href%">%name%</a><br />
558
+ END:entries
559
+ </div>
560
+ </body></html>
561
+ HTML
562
+
563
+ CLASS_INDEX = FILE_INDEX
564
+ METHOD_INDEX = FILE_INDEX
565
+
566
+ INDEX = XHTML_FRAMESET_PREAMBLE + <<HTML
567
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
568
+ <head>
569
+ <title>%title%</title>
570
+ <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
571
+ </head>
572
+
573
+ <frameset cols="20%,*">
574
+ <frameset rows="15%,35%,50%">
575
+ <frame src="fr_file_index.html" title="Files" name="Files" />
576
+ <frame src="fr_class_index.html" name="Classes" />
577
+ <frame src="fr_method_index.html" name="Methods" />
578
+ </frameset>
579
+ <frame src="%initial_page%" name="docwin" />
580
+ <noframes>
581
+ <body bgcolor="white">
582
+ Click <a href="html/index.html">here</a> for a non-frames
583
+ version of this page.
584
+ </body>
585
+ </noframes>
586
+ </frameset>
587
+
588
+ </html>
589
+ HTML
590
+
591
+ end
592
+ end
593
+