This class generates Kilmer-style templates. Right now, rdoc is shipped with two such templates:
kilmer
hefss
Kilmer-style templates use frames. The left side of the page has three frames stacked on top of each other: one lists files, one lists classes, and one lists methods. If source code is not inlined, an additional frame runs across the bottom of the page and will be used to display method source code. The central (and largest frame) display class and file pages.
The constructor of this class accepts a Hash containing stylistic attributes. Then, a get_BLAH instance method of this class returns a value for the template's BLAH constant. #get_BODY, for instance, returns the value of the template's BODY constant.
The heading that should be displayed before listing attributes.
If not supplied, this defaults to “Attributes”.
The contents of the stylesheet that should be used for the central frame (for the class and file pages).
This must be specified in the Hash passed to the constructor.
The heading that should be displayed before listing classes and modules.
If not supplied, this defaults to “Classes and Modules”.
This method constructs a KilmerFactory
instance, which can be used to build Kilmer-style template classes. The
style_attributes
argument is a Hash that contains the values
of the classes attributes (Symbols mapped to Strings).
A Hash describing the appearance of the Kilmer-style.
# File rdoc/generator/html/kilmerfactory.rb, line 76 def initialize(style_attributes) @central_css = style_attributes[:central_css] if(!@central_css) raise ArgumentError, "did not specify a value for :central_css" end @index_css = style_attributes[:index_css] if(!@index_css) raise ArgumentError, "did not specify a value for :index_css" end @method_list_heading = style_attributes[:method_list_heading] if(!@method_list_heading) @method_list_heading = "Methods" end @class_and_module_list_heading = style_attributes[:class_and_module_list_heading] if(!@class_and_module_list_heading) @class_and_module_list_heading = "Classes and Modules" end @attribute_list_heading = style_attributes[:attribute_list_heading] if(!@attribute_list_heading) @attribute_list_heading = "Attributes" end end
# File rdoc/generator/html/kilmerfactory.rb, line 407 def get_BLANK # This will be displayed in the source code frame before # any source code has been selected. return XHTML_STRICT_PREAMBLE + HTML_ELEMENT + %{ <head> <title>Source Code Frame <%= values["title_suffix"] %></title> <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> <link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" media="screen" /> </head> <body> </body> </html> } end
# File rdoc/generator/html/kilmerfactory.rb, line 239 def get_BODY return XHTML_STRICT_PREAMBLE + HTML_ELEMENT + %{ <head> <title><%= values["title"] %></title> <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> <link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" media="screen" /> <script type="text/javascript"> <!-- function popCode(url) { parent.frames.source.location = url } //--> </script> </head> <body> <div class="bodyContent"> <%= template_include %> <!-- banner header --> #{get_METHOD_LIST()} </div> </body> </html> } end
# File rdoc/generator/html/kilmerfactory.rb, line 371 def get_CLASS_INDEX return get_FILE_INDEX end
# File rdoc/generator/html/kilmerfactory.rb, line 290 def get_CLASS_PAGE return %{ <table width="100%" border="0" cellspacing="0"> <tr class="title-row"> <td class="big-title-font"> <%= values["classmod"] %><br /><%= values["full_name"] %> </td> <td align="right"> <table cellspacing="0" cellpadding="2"> <tr valign="top"> <td class="small-title-font">In:</td> <td class="small-title-font"> <% values["infiles"].each do |infiles| %> <%= href infiles["full_path_url"], infiles["full_path"] %> <% if infiles["cvsurl"] then %> (<a href="<%= infiles["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>) <% end %> <% end %><%# values["infiles"] %> </td> </tr> <% if values["parent"] then %> <tr> <td class="small-title-font">Parent:</td> <td class="small-title-font"> <% if values["par_url"] then %> <a href="<%= values["par_url"] %>" class="cyan"> <% end %> <%= values["parent"] %> <% if values["par_url"] then %> </a> <% end %> </td> </tr> <% end %> </table> </td> </tr> </table><br /> } end
# File rdoc/generator/html/kilmerfactory.rb, line 348 def get_FILE_INDEX return XHTML_STRICT_PREAMBLE + HTML_ELEMENT + %{ <head> <title><%= values["title"] %></title> <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> <style type="text/css"> <!-- #{@index_css} --> </style> <base target="docwin" /> </head> <body> <div class="index"> <div class="banner"><%= values["list_title"] %></div> <% values["entries"].each do |entries| %> <a href="<%= entries["href"] %>"><%= entries["name"] %></a><br /> <% end %><%# values["entries"] %> </div> </body></html> } end
# File rdoc/generator/html/kilmerfactory.rb, line 264 def get_FILE_PAGE return %{ <table width="100%"> <tr class="title-row"> <td><table width="100%"><tr> <td class="big-title-font" colspan="2">File<br /><%= values["short_name"] %></td> <td align="right"><table cellspacing="0" cellpadding="2"> <tr> <td class="small-title-font">Path:</td> <td class="small-title-font"><%= values["full_path"] %> <% if values["cvsurl"] then %> (<a href="<%= values["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>) <% end %> </td> </tr> <tr> <td class="small-title-font">Modified:</td> <td class="small-title-font"><%= values["dtm_modified"] %></td> </tr> </table> </td></tr></table></td> </tr> </table><br /> } end
# File rdoc/generator/html/kilmerfactory.rb, line 344 def get_FR_INDEX_BODY return %{<%= template_include %>} end
# File rdoc/generator/html/kilmerfactory.rb, line 379 def get_INDEX return XHTML_FRAME_PREAMBLE + HTML_ELEMENT + %{ <head> <title><%= values["title"] %></title> <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> </head> <frameset cols="20%,*"> <frameset rows="15%,35%,50%"> <frame src="fr_file_index.html" title="Files" name="Files" /> <frame src="fr_class_index.html" name="Classes" /> <frame src="fr_method_index.html" name="Methods" /> </frameset> <% if values["inline_source"] then %> <frame src="<%= values["initial_page"] %>" name="docwin" /> <% end %> <% unless values["inline_source"] then %> <frameset rows="80%,20%"> <frame src="<%= values["initial_page"] %>" name="docwin" /> <frame src="blank.html" name="source" /> </frameset> <% end %> </frameset> </html> } end
# File rdoc/generator/html/kilmerfactory.rb, line 375 def get_METHOD_INDEX return get_FILE_INDEX end
# File rdoc/generator/html/kilmerfactory.rb, line 107 def get_METHOD_LIST return %{ <% if values["diagram"] then %> <div id="diagram"> <table width="100%"><tr><td align="center"> <%= values["diagram"] %> </td></tr></table> </div> <% end %> <% if values["description"] then %> <div class="description"><%= values["description"] %></div> <% end %> <% if values["requires"] then %> <table cellpadding="5" width="100%"> <tr><td class="tablesubtitle">Required files</td></tr> </table><br /> <div class="name-list"> <% values["requires"].each do |requires| %> <%= href requires["aref"], requires["name"] %> <% end %><%# values["requires"] %> </div> <% end %> <% if values["methods"] then %> <table cellpadding="5" width="100%"> <tr><td class="tablesubtitle">#{@method_list_heading}</td></tr> </table><br /> <div class="name-list"> <% values["methods"].each do |methods| %> <%= href methods["aref"], methods["name"] %>, <% end %><%# values["methods"] %> </div> <% end %> <% if values["includes"] then %> <div class="tablesubsubtitle">Included modules</div><br /> <div class="name-list"> <% values["includes"].each do |includes| %> <span class="method-name"><%= href includes["aref"], includes["name"] %></span> <% end %><%# values["includes"] %> </div> <% end %> <% values["sections"].each do |sections| %> <div id="section"> <% if sections["sectitle"] then %> <h2 class="section-title"><a name="<%= sections["secsequence"] %>"><%= sections["sectitle"] %></a></h2> <% if sections["seccomment"] then %> <div class="section-comment"> <%= sections["seccomment"] %> </div> <% end %> <% end %> <% if sections["attributes"] then %> <table cellpadding="5" width="100%"> <tr><td class="tablesubtitle">#{@attribute_list_heading}</td></tr> </table><br /> <table cellspacing="5"> <% sections["attributes"].each do |attributes| %> <tr valign="top"> <% if attributes["rw"] then %> <td align="center" class="attr-rw"> [<%= attributes["rw"] %>] </td> <% end %> <% unless attributes["rw"] then %> <td></td> <% end %> <td class="attr-name"><%= attributes["name"] %></td> <td><%= attributes["a_desc"] %></td> </tr> <% end %><%# sections["attributes"] %> </table> <% end %> <% if sections["classlist"] then %> <table cellpadding="5" width="100%"> <tr><td class="tablesubtitle">#{@class_and_module_list_heading}</td></tr> </table><br /> <%= sections["classlist"] %><br /> <% end %> <% if sections["method_list"] then %> <% sections["method_list"].each do |method_list| %> <% if method_list["methods"] then %> <table cellpadding="5" width="100%"> <tr><td class="tablesubtitle"><%= method_list["type"] %> <%= method_list["category"] %> methods</td></tr> </table> <% method_list["methods"].each do |methods| %> <table width="100%" cellspacing="0" cellpadding="5" border="0"> <tr><td class="methodtitle"> <a name="<%= methods["aref"] %>"> <% if methods["callseq"] then %> <b><%= methods["callseq"] %></b> <% end %> <% unless methods["callseq"] then %> <b><%= methods["name"] %></b><%= methods["params"] %> <% end %> </a> <% if methods["codeurl"] then %> <a href="<%= methods["codeurl"] %>" target="source" class="srclink">src</a> <% end %> </td></tr> </table> <% if methods["m_desc"] then %> <div class="description"> <%= methods["m_desc"] %> </div> <% end %> <% if methods["aka"] then %> <div class="aka"> This method is also aliased as <% methods["aka"].each do |aka| %> <a href="<%= methods["aref"] %>"><%= methods["name"] %></a> <% end %><%# methods["aka"] %> </div> <% end %> <% if methods["sourcecode"] then %> <pre class="source"> <%= methods["sourcecode"] %> </pre> <% end %> <% end %><%# method_list["methods"] %> <% end %> <% end %><%# sections["method_list"] %> <% end %> <% end %><%# values["sections"] %> </div> } end
# File rdoc/generator/html/kilmerfactory.rb, line 331 def get_SRC_PAGE return XHTML_STRICT_PREAMBLE + HTML_ELEMENT + %{ <head><title><%= values["title"] %></title> <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> <link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" media="screen" /> </head> <body> <pre><%= values["code"] %></pre> </body> </html> } end