mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	1. Force --inline-source if --one-file given
2. Add new :section: directive which starts a new section in the output. The title following :section: is used as the section heading, and the remainder of the comment containing the section is used as introductory text. Subsequent methods, aliases, attributes, and classes will be documented in this section. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									aafc487d6a
								
							
						
					
					
						commit
						a80ba17d67
					
				
					 7 changed files with 481 additions and 322 deletions
				
			
		
							
								
								
									
										13
									
								
								ChangeLog
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								ChangeLog
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,3 +1,16 @@
 | 
			
		|||
Sat Nov 20 23:57:33 2004  Dave Thomas  <dave@pragprog.com>
 | 
			
		||||
 | 
			
		||||
	* lib/rdoc/README (et al): Add a new directive, :section:, and
 | 
			
		||||
	  change the output format to accomodate. :section: allows to to
 | 
			
		||||
	  group together methods, attributes, constants, etc under
 | 
			
		||||
	  headings in the output. If used, a table of contents is
 | 
			
		||||
	  generated.
 | 
			
		||||
 | 
			
		||||
Sat Nov 20 23:56:54 2004  Dave Thomas  <dave@pragprog.com>
 | 
			
		||||
 | 
			
		||||
	* lib/rdoc/options.rb (Options::parse): Force --inline-source if
 | 
			
		||||
	  --one-file option given
 | 
			
		||||
 | 
			
		||||
Sat Nov 20 23:25:12 2004  Minero Aoki  <aamine@loveruby.net>
 | 
			
		||||
 | 
			
		||||
	* io.c (rb_io_getline): f.gets("") did not work. [ruby-core:03771]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -422,6 +422,13 @@ this margin are formatted verbatim.
 | 
			
		|||
 | 
			
		||||
12. Comment blocks can contain other directives:
 | 
			
		||||
 | 
			
		||||
    [<tt>:section: title</tt>]
 | 
			
		||||
        Starts a new section in the output. The title following
 | 
			
		||||
	<tt>:section:</tt> is used as the section heading, and the
 | 
			
		||||
	remainder of the comment containing the section is used as
 | 
			
		||||
	introductory text. Subsequent methods, aliases, attributes,
 | 
			
		||||
	and classes will be documented in this section.
 | 
			
		||||
 | 
			
		||||
    [<tt>call-seq:</tt>]
 | 
			
		||||
        lines up to the next blank line in the comment are treated as
 | 
			
		||||
        the method's calling sequence, overriding the
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,6 +23,9 @@ module RDoc
 | 
			
		|||
 | 
			
		||||
    attr_accessor :done_documenting
 | 
			
		||||
 | 
			
		||||
    # Which section are we in
 | 
			
		||||
 | 
			
		||||
    attr_accessor :section
 | 
			
		||||
 | 
			
		||||
    # do we document ourselves?
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +114,25 @@ module RDoc
 | 
			
		|||
  class Context < CodeObject
 | 
			
		||||
    attr_reader   :name, :method_list, :attributes, :aliases, :constants
 | 
			
		||||
    attr_reader   :requires, :includes, :in_files, :visibility
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    attr_reader   :sections
 | 
			
		||||
 | 
			
		||||
    class Section
 | 
			
		||||
      attr_reader :title, :comment, :sequence
 | 
			
		||||
 | 
			
		||||
      @@sequence = "SEC00000"
 | 
			
		||||
 | 
			
		||||
      def initialize(title, comment)
 | 
			
		||||
        @title = title
 | 
			
		||||
        @@sequence.succ!
 | 
			
		||||
        @sequence = @@sequence.dup
 | 
			
		||||
        if comment
 | 
			
		||||
          @comment = comment.sub(/.*$/, '')
 | 
			
		||||
          @comment = nil if @comment.empty?
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def initialize
 | 
			
		||||
      super()
 | 
			
		||||
| 
						 | 
				
			
			@ -123,6 +144,9 @@ module RDoc
 | 
			
		|||
      @parent  = nil
 | 
			
		||||
      @visibility = :public
 | 
			
		||||
 | 
			
		||||
      @current_section = Section.new(nil, nil)
 | 
			
		||||
      @sections = [ @current_section ]
 | 
			
		||||
 | 
			
		||||
      initialize_methods_etc
 | 
			
		||||
      initialize_classes_and_modules
 | 
			
		||||
    end
 | 
			
		||||
| 
						 | 
				
			
			@ -236,6 +260,7 @@ module RDoc
 | 
			
		|||
#        collection[name] = cls if @document_self  && !@done_documenting
 | 
			
		||||
        collection[name] = cls if !@done_documenting
 | 
			
		||||
        cls.parent = self
 | 
			
		||||
        cls.section = @current_section
 | 
			
		||||
      end
 | 
			
		||||
      cls
 | 
			
		||||
    end
 | 
			
		||||
| 
						 | 
				
			
			@ -243,6 +268,7 @@ module RDoc
 | 
			
		|||
    def add_to(array, thing)
 | 
			
		||||
      array <<  thing if @document_self  && !@done_documenting
 | 
			
		||||
      thing.parent = self
 | 
			
		||||
      thing.section = @current_section
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # If a class's documentation is turned off after we've started
 | 
			
		||||
| 
						 | 
				
			
			@ -374,6 +400,13 @@ module RDoc
 | 
			
		|||
            find_module_named(symbol) 
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Handle sections
 | 
			
		||||
 | 
			
		||||
    def set_current_section(title, comment)
 | 
			
		||||
      @current_section = Section.new(title, comment)
 | 
			
		||||
      @sections << @current_section
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    private
 | 
			
		||||
 | 
			
		||||
    # Find a named method, or return nil
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -336,8 +336,10 @@ module Generators
 | 
			
		|||
 | 
			
		||||
    # Build a list of aliases for which we couldn't find a
 | 
			
		||||
    # corresponding method
 | 
			
		||||
    def build_alias_summary_list
 | 
			
		||||
      @context.aliases.map do |al|
 | 
			
		||||
    def build_alias_summary_list(section)
 | 
			
		||||
      values = []
 | 
			
		||||
      @context.aliases.each do |al|
 | 
			
		||||
        next unless al.section == section
 | 
			
		||||
        res = {
 | 
			
		||||
          'old_name' => al.old_name,
 | 
			
		||||
          'new_name' => al.new_name,
 | 
			
		||||
| 
						 | 
				
			
			@ -345,20 +347,24 @@ module Generators
 | 
			
		|||
        if al.comment && !al.comment.empty?
 | 
			
		||||
          res['desc'] = markup(al.comment, true)
 | 
			
		||||
        end
 | 
			
		||||
        res
 | 
			
		||||
        values << res
 | 
			
		||||
      end
 | 
			
		||||
      values
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    # Build a list of constants
 | 
			
		||||
    def build_constants_summary_list
 | 
			
		||||
      @context.constants.map do |co|
 | 
			
		||||
    def build_constants_summary_list(section)
 | 
			
		||||
      values = []
 | 
			
		||||
      @context.constants.each do |co|
 | 
			
		||||
        next unless co.section == section
 | 
			
		||||
        res = {
 | 
			
		||||
          'name'  => co.name,
 | 
			
		||||
          'value' => CGI.escapeHTML(co.value)
 | 
			
		||||
        }
 | 
			
		||||
        res['desc'] = markup(co.comment, true) if co.comment && !co.comment.empty?
 | 
			
		||||
        res
 | 
			
		||||
        values << res
 | 
			
		||||
      end
 | 
			
		||||
      values
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    def build_requires_list(context)
 | 
			
		||||
| 
						 | 
				
			
			@ -416,7 +422,7 @@ module Generators
 | 
			
		|||
    # methods, the other for instance methods. The inner arrays contain
 | 
			
		||||
    # a hash for each method
 | 
			
		||||
 | 
			
		||||
    def build_method_detail_list
 | 
			
		||||
    def build_method_detail_list(section)
 | 
			
		||||
      outer = []
 | 
			
		||||
 | 
			
		||||
      methods = @methods.sort
 | 
			
		||||
| 
						 | 
				
			
			@ -424,7 +430,10 @@ module Generators
 | 
			
		|||
        for vis in [ :public, :protected, :private ] 
 | 
			
		||||
          res = []
 | 
			
		||||
          methods.each do |m|
 | 
			
		||||
            if m.document_self and m.visibility == vis and m.singleton == singleton
 | 
			
		||||
            if m.section == section and
 | 
			
		||||
                m.document_self and 
 | 
			
		||||
                m.visibility == vis and 
 | 
			
		||||
                m.singleton == singleton
 | 
			
		||||
              row = {}
 | 
			
		||||
              if m.call_seq
 | 
			
		||||
                row["callseq"] = m.call_seq.gsub(/->/, '→')
 | 
			
		||||
| 
						 | 
				
			
			@ -478,11 +487,12 @@ module Generators
 | 
			
		|||
    # Build the structured list of classes and modules contained
 | 
			
		||||
    # in this context. 
 | 
			
		||||
 | 
			
		||||
    def build_class_list(level, from, infile=nil)
 | 
			
		||||
    def build_class_list(level, from, section, infile=nil)
 | 
			
		||||
      res = ""
 | 
			
		||||
      prefix = "  ::" * level;
 | 
			
		||||
 | 
			
		||||
      from.modules.sort.each do |mod|
 | 
			
		||||
        next unless mod.section == section
 | 
			
		||||
        next if infile && !mod.defined_in?(infile)
 | 
			
		||||
        if mod.document_self
 | 
			
		||||
          res << 
 | 
			
		||||
| 
						 | 
				
			
			@ -490,11 +500,12 @@ module Generators
 | 
			
		|||
            "Module " <<
 | 
			
		||||
            href(url(mod.viewer.path), "link", mod.full_name) <<
 | 
			
		||||
            "<br />\n" <<
 | 
			
		||||
            build_class_list(level + 1, mod, infile)
 | 
			
		||||
            build_class_list(level + 1, mod, section, infile)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      from.classes.sort.each do |cls|
 | 
			
		||||
        next unless cls.section == section
 | 
			
		||||
        next if infile && !cls.defined_in?(infile)
 | 
			
		||||
        if cls.document_self
 | 
			
		||||
          res      <<
 | 
			
		||||
| 
						 | 
				
			
			@ -502,7 +513,7 @@ module Generators
 | 
			
		|||
            "Class " <<
 | 
			
		||||
            href(url(cls.viewer.path), "link", cls.full_name) <<
 | 
			
		||||
            "<br />\n" <<
 | 
			
		||||
            build_class_list(level + 1, cls, infile)
 | 
			
		||||
            build_class_list(level + 1, cls, section, infile)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -541,6 +552,24 @@ module Generators
 | 
			
		|||
      end
 | 
			
		||||
      res
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # create table of contents if we contain sections
 | 
			
		||||
      
 | 
			
		||||
    def add_table_of_sections
 | 
			
		||||
      toc = []
 | 
			
		||||
      @context.sections.each do |section|
 | 
			
		||||
        if section.title
 | 
			
		||||
          toc << {
 | 
			
		||||
            'secname' => section.title,
 | 
			
		||||
            'href'    => section.sequence
 | 
			
		||||
          }
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      
 | 
			
		||||
      @values['toc'] = toc unless toc.empty?
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  #####################################################################
 | 
			
		||||
| 
						 | 
				
			
			@ -604,6 +633,7 @@ module Generators
 | 
			
		|||
 | 
			
		||||
    def value_hash
 | 
			
		||||
      class_attribute_values
 | 
			
		||||
      add_table_of_sections
 | 
			
		||||
 | 
			
		||||
      @values["charset"] = @options.charset
 | 
			
		||||
      @values["style_url"] = style_url(path, @options.css)
 | 
			
		||||
| 
						 | 
				
			
			@ -614,30 +644,43 @@ module Generators
 | 
			
		|||
      ml = build_method_summary_list
 | 
			
		||||
      @values["methods"] = ml unless ml.empty?
 | 
			
		||||
 | 
			
		||||
      al = build_alias_summary_list
 | 
			
		||||
      @values["aliases"] = al unless al.empty?
 | 
			
		||||
 | 
			
		||||
      co = build_constants_summary_list
 | 
			
		||||
      @values["constants"] = co unless co.empty?
 | 
			
		||||
 | 
			
		||||
      il = build_include_list(@context)
 | 
			
		||||
      @values["includes"] = il unless il.empty?
 | 
			
		||||
 | 
			
		||||
      al = build_attribute_list
 | 
			
		||||
      @values["attributes"] = al unless al.empty?
 | 
			
		||||
      
 | 
			
		||||
      cl = build_class_list(0, @context)
 | 
			
		||||
      @values["classlist"] = cl unless cl.empty?
 | 
			
		||||
      @values["sections"] = @context.sections.map do |section|
 | 
			
		||||
 | 
			
		||||
        secdata = {
 | 
			
		||||
          "sectitle" => section.title,
 | 
			
		||||
          "secsequence" => section.sequence,
 | 
			
		||||
          "seccomment" => markup(section.comment)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        al = build_alias_summary_list(section)
 | 
			
		||||
        secdata["aliases"] = al unless al.empty?
 | 
			
		||||
        
 | 
			
		||||
        co = build_constants_summary_list(section)
 | 
			
		||||
        secdata["constants"] = co unless co.empty?
 | 
			
		||||
        
 | 
			
		||||
        al = build_attribute_list(section)
 | 
			
		||||
        secdata["attributes"] = al unless al.empty?
 | 
			
		||||
        
 | 
			
		||||
        cl = build_class_list(0, @context, section)
 | 
			
		||||
        secdata["classlist"] = cl unless cl.empty?
 | 
			
		||||
        
 | 
			
		||||
        mdl = build_method_detail_list(section)
 | 
			
		||||
        secdata["method_list"] = mdl unless mdl.empty?
 | 
			
		||||
 | 
			
		||||
        secdata
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      mdl = build_method_detail_list
 | 
			
		||||
      @values["method_list"] = mdl unless mdl.empty?
 | 
			
		||||
      @values
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def build_attribute_list
 | 
			
		||||
    def build_attribute_list(section)
 | 
			
		||||
      atts = @context.attributes.sort
 | 
			
		||||
      res = []
 | 
			
		||||
      atts.each do |att|
 | 
			
		||||
        next unless att.section == section
 | 
			
		||||
        if att.visibility == :public || @options.show_all
 | 
			
		||||
          entry = {
 | 
			
		||||
            "name"   => CGI.escapeHTML(att.name), 
 | 
			
		||||
| 
						 | 
				
			
			@ -701,7 +744,6 @@ module Generators
 | 
			
		|||
      end
 | 
			
		||||
 | 
			
		||||
      @values['infiles'] = files
 | 
			
		||||
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def <=>(other)
 | 
			
		||||
| 
						 | 
				
			
			@ -759,6 +801,7 @@ module Generators
 | 
			
		|||
 | 
			
		||||
    def value_hash
 | 
			
		||||
      file_attribute_values
 | 
			
		||||
      add_table_of_sections
 | 
			
		||||
 | 
			
		||||
      @values["charset"]   = @options.charset
 | 
			
		||||
      @values["href"]      = path
 | 
			
		||||
| 
						 | 
				
			
			@ -778,23 +821,36 @@ module Generators
 | 
			
		|||
      rl = build_requires_list(@context)
 | 
			
		||||
      @values["requires"] = rl unless rl.empty?
 | 
			
		||||
 | 
			
		||||
      co = build_constants_summary_list
 | 
			
		||||
      @values["constants"] = co unless co.empty?
 | 
			
		||||
 | 
			
		||||
      al = build_alias_summary_list
 | 
			
		||||
      @values["aliases"] = al unless al.empty?
 | 
			
		||||
 | 
			
		||||
      if @options.promiscuous
 | 
			
		||||
        file_context = nil
 | 
			
		||||
      else
 | 
			
		||||
        file_context = @context
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      cl = build_class_list(0, @context, file_context)
 | 
			
		||||
      @values["classlist"] = cl unless cl.empty?
 | 
			
		||||
 | 
			
		||||
      mdl = build_method_detail_list
 | 
			
		||||
      @values["method_list"] = mdl unless mdl.empty?
 | 
			
		||||
      @values["sections"] = @context.sections.map do |section|
 | 
			
		||||
 | 
			
		||||
        secdata = {
 | 
			
		||||
          "sectitle" => section.title,
 | 
			
		||||
          "secsequence" => section.sequence,
 | 
			
		||||
          "seccomment" => markup(section.comment)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        cl = build_class_list(0, @context, section, file_context)
 | 
			
		||||
        @values["classlist"] = cl unless cl.empty?
 | 
			
		||||
 | 
			
		||||
        mdl = build_method_detail_list(section)
 | 
			
		||||
        secdata["method_list"] = mdl unless mdl.empty?
 | 
			
		||||
 | 
			
		||||
        al = build_alias_summary_list(section)
 | 
			
		||||
        secdata["aliases"] = al unless al.empty?
 | 
			
		||||
        
 | 
			
		||||
        co = build_constants_summary_list(section)
 | 
			
		||||
        @values["constants"] = co unless co.empty?
 | 
			
		||||
 | 
			
		||||
        secdata
 | 
			
		||||
      end
 | 
			
		||||
      
 | 
			
		||||
      @values
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			@ -885,6 +941,10 @@ module Generators
 | 
			
		|||
      @context.name
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def section
 | 
			
		||||
      @context.section
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def index_name
 | 
			
		||||
      "#{@context.name} (#{@html_class.name})"
 | 
			
		||||
    end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,19 +20,22 @@
 | 
			
		|||
#
 | 
			
		||||
 | 
			
		||||
module RDoc
 | 
			
		||||
	module Page
 | 
			
		||||
  module Page
 | 
			
		||||
 | 
			
		||||
		FONTS = "Verdana,Arial,Helvetica,sans-serif"
 | 
			
		||||
    FONTS = "Verdana,Arial,Helvetica,sans-serif"
 | 
			
		||||
 | 
			
		||||
STYLE = %{
 | 
			
		||||
body {
 | 
			
		||||
    font-family: Verdana,Arial,Helvetica,sans-serif;
 | 
			
		||||
    font-size:   90%;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    margin-left: 40px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    background: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
 | 
			
		||||
h1 { font-size: 120%; }
 | 
			
		||||
h1 { font-size: 150%; }
 | 
			
		||||
h2,h3,h4 { margin-top: 1em; }
 | 
			
		||||
 | 
			
		||||
a { background: #eef; color: #039; text-decoration: none; }
 | 
			
		||||
| 
						 | 
				
			
			@ -40,61 +43,75 @@ a:hover { background: #039; color: #eef; }
 | 
			
		|||
 | 
			
		||||
/* Override the base stylesheet's Anchor inside a table cell */
 | 
			
		||||
td > a {
 | 
			
		||||
	background: transparent;
 | 
			
		||||
	color: #039;
 | 
			
		||||
	text-decoration: none;
 | 
			
		||||
  background: transparent;
 | 
			
		||||
  color: #039;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* and inside a section title */
 | 
			
		||||
.section-title > a {
 | 
			
		||||
  background: transparent;
 | 
			
		||||
  color: #eee;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* === Structural elements =================================== */
 | 
			
		||||
 | 
			
		||||
div#index {
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    margin-left: -40px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    font-size: 0.9em;
 | 
			
		||||
    font-size: 90%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
div#index a {
 | 
			
		||||
    margin-left: 0.7em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div#classHeader {
 | 
			
		||||
div#index .section-bar {
 | 
			
		||||
   margin-left: 0px;
 | 
			
		||||
   padding-left: 0.7em;
 | 
			
		||||
   background: #ccc;
 | 
			
		||||
   font-size: small;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
div#classHeader, div#fileHeader {
 | 
			
		||||
    width: auto;
 | 
			
		||||
    background: #039;
 | 
			
		||||
    color: white;
 | 
			
		||||
    padding: 0.5em 1.5em 0.5em 1.5em;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    margin-left: -40px;
 | 
			
		||||
    border-bottom: 3px solid #006;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div#classHeader a {
 | 
			
		||||
div#classHeader a, div#fileHeader a {
 | 
			
		||||
    background: inherit;
 | 
			
		||||
    color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div#classHeader td {
 | 
			
		||||
div#classHeader td, div#fileHeader td {
 | 
			
		||||
    background: inherit;
 | 
			
		||||
    color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
div#fileHeader {
 | 
			
		||||
    width: auto;
 | 
			
		||||
    background: #039;
 | 
			
		||||
    color: white;
 | 
			
		||||
    padding: 0.5em 1.5em 0.5em 1.5em;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    border-bottom: 3px solid #006;
 | 
			
		||||
    background: #057;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div#fileHeader a {
 | 
			
		||||
    background: inherit;
 | 
			
		||||
    color: white;
 | 
			
		||||
div#classHeader {
 | 
			
		||||
    background: #048;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div#fileHeader td {
 | 
			
		||||
    background: inherit;
 | 
			
		||||
    color: white;
 | 
			
		||||
 | 
			
		||||
.class-name-in-header {
 | 
			
		||||
  font-size:  180%;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
div#bodyContent {
 | 
			
		||||
    padding: 0 1.5em 0 1.5em;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -105,7 +122,7 @@ div#description {
 | 
			
		|||
    border: 1px dotted #999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div#description h1,h2,h3,h4,h5,h6 {
 | 
			
		||||
div#description h1,h3,h3,h4,h5,h6 {
 | 
			
		||||
    color: black;
 | 
			
		||||
    background: transparent;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -137,35 +154,51 @@ table.header-table {
 | 
			
		|||
    color: #DEDEDE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.section-bar {
 | 
			
		||||
.xxsection-bar {
 | 
			
		||||
    background: #eee;
 | 
			
		||||
    color: #333;
 | 
			
		||||
    padding: 3px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.section-bar {
 | 
			
		||||
   color: #333;
 | 
			
		||||
   border-bottom: 1px solid #999;
 | 
			
		||||
    margin-left: -20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.section-title {
 | 
			
		||||
    background: #79a;
 | 
			
		||||
    color: #eee;
 | 
			
		||||
    padding: 3px;
 | 
			
		||||
    margin-top: 2em;
 | 
			
		||||
    margin-left: -30px;
 | 
			
		||||
    border: 1px solid #999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.top-aligned-row { vertical-align: vertical-align: top }
 | 
			
		||||
.top-aligned-row {  vertical-align: top }
 | 
			
		||||
.bottom-aligned-row { vertical-align: bottom }
 | 
			
		||||
 | 
			
		||||
/* --- Context section classes ----------------------- */
 | 
			
		||||
 | 
			
		||||
.context-row { }
 | 
			
		||||
.context-item-name { font-family: monospace; font-weight: bold; color: black; }
 | 
			
		||||
.context-item-value { font-size: x-small; color: #448; }
 | 
			
		||||
.context-item-desc { background: #efefef; }
 | 
			
		||||
.context-item-value { font-size: small; color: #448; }
 | 
			
		||||
.context-item-desc { color: #333; padding-left: 2em; }
 | 
			
		||||
 | 
			
		||||
/* --- Method classes -------------------------- */
 | 
			
		||||
.method-detail {
 | 
			
		||||
    background: #EFEFEF;
 | 
			
		||||
    background: #efefef;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin-top: 0.5em;
 | 
			
		||||
    margin-bottom: 0.5em;
 | 
			
		||||
    border: 1px dotted #DDD;
 | 
			
		||||
    margin-bottom: 1em;
 | 
			
		||||
    border: 1px dotted #ccc;
 | 
			
		||||
}
 | 
			
		||||
.method-heading {
 | 
			
		||||
	color: black;
 | 
			
		||||
	background: #AAA;
 | 
			
		||||
	border-bottom: 1px solid #666;
 | 
			
		||||
	padding: 0.2em 0.5em 0 0.5em;
 | 
			
		||||
  color: black;
 | 
			
		||||
  background: #ccc;
 | 
			
		||||
  border-bottom: 1px solid #666;
 | 
			
		||||
  padding: 0.2em 0.5em 0 0.5em;
 | 
			
		||||
}
 | 
			
		||||
.method-signature { color: black; background: inherit; }
 | 
			
		||||
.method-name { font-weight: bold; }
 | 
			
		||||
| 
						 | 
				
			
			@ -178,7 +211,7 @@ a.source-toggle { font-size: 90%; }
 | 
			
		|||
div.method-source-code {
 | 
			
		||||
    background: #262626;
 | 
			
		||||
    color: #ffdead;
 | 
			
		||||
	margin: 1em;
 | 
			
		||||
    margin: 1em;
 | 
			
		||||
    padding: 0.5em;
 | 
			
		||||
    border: 1px dashed #999;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
| 
						 | 
				
			
			@ -190,20 +223,20 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
 | 
			
		|||
 | 
			
		||||
.standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
 | 
			
		||||
 | 
			
		||||
.ruby-constant	{ color: #7fffd4; background: transparent; }
 | 
			
		||||
.ruby-keyword	{ color: #00ffff; background: transparent; }
 | 
			
		||||
.ruby-ivar		{ color: #eedd82; background: transparent; }
 | 
			
		||||
.ruby-operator	{ color: #00ffee; background: transparent; }
 | 
			
		||||
.ruby-constant  { color: #7fffd4; background: transparent; }
 | 
			
		||||
.ruby-keyword { color: #00ffff; background: transparent; }
 | 
			
		||||
.ruby-ivar    { color: #eedd82; background: transparent; }
 | 
			
		||||
.ruby-operator  { color: #00ffee; background: transparent; }
 | 
			
		||||
.ruby-identifier { color: #ffdead; background: transparent; }
 | 
			
		||||
.ruby-node		{ color: #ffa07a; background: transparent; }
 | 
			
		||||
.ruby-comment	{ color: #b22222; font-weight: bold; background: transparent; }
 | 
			
		||||
.ruby-regexp	{ color: #ffa07a; background: transparent; }
 | 
			
		||||
.ruby-value		{ color: #7fffd4; background: transparent; }
 | 
			
		||||
.ruby-node    { color: #ffa07a; background: transparent; }
 | 
			
		||||
.ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
 | 
			
		||||
.ruby-regexp  { color: #ffa07a; background: transparent; }
 | 
			
		||||
.ruby-value   { color: #7fffd4; background: transparent; }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
###	H E A D E R   T E M P L A T E  
 | 
			
		||||
### H E A D E R   T E M P L A T E  
 | 
			
		||||
#####################################################################
 | 
			
		||||
 | 
			
		||||
XHTML_PREAMBLE = %{<?xml version="1.0" encoding="%charset%"?>
 | 
			
		||||
| 
						 | 
				
			
			@ -215,41 +248,41 @@ XHTML_PREAMBLE = %{<?xml version="1.0" encoding="%charset%"?>
 | 
			
		|||
HEADER = XHTML_PREAMBLE + %{
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
	<title>%title%</title>
 | 
			
		||||
	<meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
 | 
			
		||||
	<meta http-equiv="Content-Script-Type" content="text/javascript" />
 | 
			
		||||
	<link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
 | 
			
		||||
	<script type="text/javascript">
 | 
			
		||||
	// <![CDATA[
 | 
			
		||||
  <title>%title%</title>
 | 
			
		||||
  <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
 | 
			
		||||
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
 | 
			
		||||
  <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
 | 
			
		||||
  <script type="text/javascript">
 | 
			
		||||
  // <![CDATA[
 | 
			
		||||
 | 
			
		||||
	function popupCode( url ) {
 | 
			
		||||
		window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
 | 
			
		||||
	}
 | 
			
		||||
  function popupCode( url ) {
 | 
			
		||||
    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
	function toggleCode( id ) {
 | 
			
		||||
		if ( document.getElementById )
 | 
			
		||||
			elem = document.getElementById( id );
 | 
			
		||||
		else if ( document.all )
 | 
			
		||||
			elem = eval( "document.all." + id );
 | 
			
		||||
		else
 | 
			
		||||
			return false;
 | 
			
		||||
  function toggleCode( id ) {
 | 
			
		||||
    if ( document.getElementById )
 | 
			
		||||
      elem = document.getElementById( id );
 | 
			
		||||
    else if ( document.all )
 | 
			
		||||
      elem = eval( "document.all." + id );
 | 
			
		||||
    else
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
		elemStyle = elem.style;
 | 
			
		||||
		
 | 
			
		||||
		if ( elemStyle.display != "block" ) {
 | 
			
		||||
			elemStyle.display = "block"
 | 
			
		||||
		} else {
 | 
			
		||||
			elemStyle.display = "none"
 | 
			
		||||
		}
 | 
			
		||||
    elemStyle = elem.style;
 | 
			
		||||
    
 | 
			
		||||
    if ( elemStyle.display != "block" ) {
 | 
			
		||||
      elemStyle.display = "block"
 | 
			
		||||
    } else {
 | 
			
		||||
      elemStyle.display = "none"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	// Make codeblocks hidden by default
 | 
			
		||||
	document.writeln( "<style type=\\"text/css\\">div.method-source-code { display: none }</style>" )
 | 
			
		||||
	
 | 
			
		||||
	// ]]>
 | 
			
		||||
	</script>
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  // Make codeblocks hidden by default
 | 
			
		||||
  document.writeln( "<style type=\\"text/css\\">div.method-source-code { display: none }</style>" )
 | 
			
		||||
  
 | 
			
		||||
  // ]]>
 | 
			
		||||
  </script>
 | 
			
		||||
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
| 
						 | 
				
			
			@ -257,129 +290,15 @@ HEADER = XHTML_PREAMBLE + %{
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
###	C O N T E X T   C O N T E N T   T E M P L A T E
 | 
			
		||||
### C O N T E X T   C O N T E N T   T E M P L A T E
 | 
			
		||||
#####################################################################
 | 
			
		||||
 | 
			
		||||
CONTEXT_CONTENT = %{
 | 
			
		||||
	<div id="contextContent">
 | 
			
		||||
IF:diagram
 | 
			
		||||
		<div id="diagram">
 | 
			
		||||
			%diagram%
 | 
			
		||||
		</div>
 | 
			
		||||
ENDIF:diagram
 | 
			
		||||
 | 
			
		||||
IF:description
 | 
			
		||||
		<div id="description">
 | 
			
		||||
			%description%
 | 
			
		||||
		</div>
 | 
			
		||||
ENDIF:description
 | 
			
		||||
 | 
			
		||||
IF:requires
 | 
			
		||||
		<div id="requires-list">
 | 
			
		||||
			<h2 class="section-bar">Required files</h2>
 | 
			
		||||
 | 
			
		||||
			<div class="name-list">
 | 
			
		||||
START:requires
 | 
			
		||||
			HREF:aref:name:  
 | 
			
		||||
END:requires
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
ENDIF:requires
 | 
			
		||||
 | 
			
		||||
IF:methods
 | 
			
		||||
		<div id="method-list">
 | 
			
		||||
			<h2 class="section-bar">Methods</h2>
 | 
			
		||||
 | 
			
		||||
			<div class="name-list">
 | 
			
		||||
START:methods
 | 
			
		||||
			HREF:aref:name:  
 | 
			
		||||
END:methods
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
ENDIF:methods
 | 
			
		||||
 | 
			
		||||
IF:constants
 | 
			
		||||
		<div id="constants-list">
 | 
			
		||||
			<h2 class="section-bar">Constants</h2>
 | 
			
		||||
 | 
			
		||||
			<div class="name-list">
 | 
			
		||||
				<table summary="Constants">
 | 
			
		||||
START:constants
 | 
			
		||||
				<tr class="top-aligned-row context-row">
 | 
			
		||||
					<td class="context-item-name">%name%</td>
 | 
			
		||||
					<td>=</td>
 | 
			
		||||
					<td class="context-item-value">%value%</td>
 | 
			
		||||
				</tr>
 | 
			
		||||
IF:desc
 | 
			
		||||
				<tr class="top-aligned-row context-row">
 | 
			
		||||
					<td> </td>
 | 
			
		||||
					<td colspan="2" class="context-item-desc">%desc%</td>
 | 
			
		||||
				</tr>
 | 
			
		||||
ENDIF:desc
 | 
			
		||||
END:constants
 | 
			
		||||
				</table>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
ENDIF:constants
 | 
			
		||||
 | 
			
		||||
IF:aliases
 | 
			
		||||
		<div id="aliases-list">
 | 
			
		||||
			<h2 class="section-bar">External Aliases</h2>
 | 
			
		||||
 | 
			
		||||
			<div class="name-list">
 | 
			
		||||
                        <table summary="aliases">
 | 
			
		||||
START:aliases
 | 
			
		||||
				<tr class="top-aligned-row context-row">
 | 
			
		||||
					<td class="context-item-name">%old_name%</td>
 | 
			
		||||
					<td>-></td>
 | 
			
		||||
					<td class="context-item-value">%new_name%</td>
 | 
			
		||||
				</tr>
 | 
			
		||||
IF:desc
 | 
			
		||||
			<tr class="top-aligned-row context-row">
 | 
			
		||||
				<td> </td>
 | 
			
		||||
				<td colspan="2" class="context-item-desc">%desc%</td>
 | 
			
		||||
			</tr>
 | 
			
		||||
ENDIF:desc
 | 
			
		||||
END:aliases
 | 
			
		||||
                        </table>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
ENDIF:aliases
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
IF:attributes
 | 
			
		||||
		<div id="attribute-list">
 | 
			
		||||
			<h2 class="section-bar">Attributes</h2>
 | 
			
		||||
 | 
			
		||||
			<div class="name-list">
 | 
			
		||||
				<table>
 | 
			
		||||
START:attributes
 | 
			
		||||
				<tr class="top-aligned-row context-row">
 | 
			
		||||
					<td class="context-item-name">%name%</td>
 | 
			
		||||
					<td class="context-item-value"> [%rw%] </td>
 | 
			
		||||
					<td class="context-item-desc">%a_desc%</td>
 | 
			
		||||
				</tr>
 | 
			
		||||
END:attributes
 | 
			
		||||
				</table>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
ENDIF:attributes
 | 
			
		||||
			
 | 
			
		||||
IF:classlist
 | 
			
		||||
		<div id="class-list">
 | 
			
		||||
			<h2 class="section-bar">Classes and Modules</h2>
 | 
			
		||||
 | 
			
		||||
			%classlist%
 | 
			
		||||
		</div>
 | 
			
		||||
ENDIF:classlist
 | 
			
		||||
 | 
			
		||||
	</div>
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
###	F O O T E R   T E M P L A T E
 | 
			
		||||
### F O O T E R   T E M P L A T E
 | 
			
		||||
#####################################################################
 | 
			
		||||
FOOTER = %{
 | 
			
		||||
<div id="validator-badges">
 | 
			
		||||
| 
						 | 
				
			
			@ -392,38 +311,41 @@ FOOTER = %{
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
###	F I L E   P A G E   H E A D E R   T E M P L A T E
 | 
			
		||||
### F I L E   P A G E   H E A D E R   T E M P L A T E
 | 
			
		||||
#####################################################################
 | 
			
		||||
 | 
			
		||||
FILE_PAGE = %{
 | 
			
		||||
	<div id="fileHeader">
 | 
			
		||||
		<h1>%short_name%</h1>
 | 
			
		||||
		<table class="header-table">
 | 
			
		||||
		<tr class="top-aligned-row">
 | 
			
		||||
			<td><strong>Path:</strong></td>
 | 
			
		||||
			<td>%full_path%
 | 
			
		||||
  <div id="fileHeader">
 | 
			
		||||
    <h1>%short_name%</h1>
 | 
			
		||||
    <table class="header-table">
 | 
			
		||||
    <tr class="top-aligned-row">
 | 
			
		||||
      <td><strong>Path:</strong></td>
 | 
			
		||||
      <td>%full_path%
 | 
			
		||||
IF:cvsurl
 | 
			
		||||
				 (<a href="%cvsurl%">CVS</a>)
 | 
			
		||||
         (<a href="%cvsurl%">CVS</a>)
 | 
			
		||||
ENDIF:cvsurl
 | 
			
		||||
			</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		<tr class="top-aligned-row">
 | 
			
		||||
			<td><strong>Last Update:</strong></td>
 | 
			
		||||
			<td>%dtm_modified%</td>
 | 
			
		||||
		</tr>
 | 
			
		||||
		</table>
 | 
			
		||||
	</div>
 | 
			
		||||
      </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr class="top-aligned-row">
 | 
			
		||||
      <td><strong>Last Update:</strong></td>
 | 
			
		||||
      <td>%dtm_modified%</td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
  </div>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
###	C L A S S   P A G E   H E A D E R   T E M P L A T E
 | 
			
		||||
### C L A S S   P A G E   H E A D E R   T E M P L A T E
 | 
			
		||||
#####################################################################
 | 
			
		||||
 | 
			
		||||
CLASS_PAGE = %{
 | 
			
		||||
    <div id="classHeader">
 | 
			
		||||
        <h1>%full_name% <sup class="type-note">(%classmod%)</sup></h1>
 | 
			
		||||
        <table class="header-table">
 | 
			
		||||
        <tr class="top-aligned-row">
 | 
			
		||||
          <td><strong>%classmod%</strong></td>
 | 
			
		||||
          <td class="class-name-in-header">%full_name%</td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr class="top-aligned-row">
 | 
			
		||||
            <td><strong>In:</strong></td>
 | 
			
		||||
            <td>
 | 
			
		||||
| 
						 | 
				
			
			@ -436,9 +358,9 @@ IF:full_path_url
 | 
			
		|||
                </a>
 | 
			
		||||
ENDIF:full_path_url
 | 
			
		||||
IF:cvsurl
 | 
			
		||||
				 (<a href="%cvsurl%">CVS</a>)
 | 
			
		||||
         (<a href="%cvsurl%">CVS</a>)
 | 
			
		||||
ENDIF:cvsurl
 | 
			
		||||
				<br />
 | 
			
		||||
        <br />
 | 
			
		||||
END:infiles
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
| 
						 | 
				
			
			@ -463,121 +385,258 @@ ENDIF:parent
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
###	M E T H O D   L I S T   T E M P L A T E
 | 
			
		||||
### M E T H O D   L I S T   T E M P L A T E
 | 
			
		||||
#####################################################################
 | 
			
		||||
 | 
			
		||||
METHOD_LIST = %{
 | 
			
		||||
 | 
			
		||||
		<!-- if includes -->
 | 
			
		||||
IF:includes
 | 
			
		||||
		<div id="includes">
 | 
			
		||||
			<h2 class="section-bar">Included Modules</h2>
 | 
			
		||||
  <div id="contextContent">
 | 
			
		||||
IF:diagram
 | 
			
		||||
    <div id="diagram">
 | 
			
		||||
      %diagram%
 | 
			
		||||
    </div>
 | 
			
		||||
ENDIF:diagram
 | 
			
		||||
 | 
			
		||||
			<div id="includes-list">
 | 
			
		||||
IF:description
 | 
			
		||||
    <div id="description">
 | 
			
		||||
      %description%
 | 
			
		||||
    </div>
 | 
			
		||||
ENDIF:description
 | 
			
		||||
 | 
			
		||||
IF:requires
 | 
			
		||||
    <div id="requires-list">
 | 
			
		||||
      <h3 class="section-bar">Required files</h3>
 | 
			
		||||
 | 
			
		||||
      <div class="name-list">
 | 
			
		||||
START:requires
 | 
			
		||||
      HREF:aref:name:  
 | 
			
		||||
END:requires
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
ENDIF:requires
 | 
			
		||||
 | 
			
		||||
IF:toc
 | 
			
		||||
    <div id="contents-list">
 | 
			
		||||
      <h3 class="section-bar">Contents</h3>
 | 
			
		||||
      <ul>
 | 
			
		||||
START:toc
 | 
			
		||||
      <li><a href="#%href%">%secname%</a></li>
 | 
			
		||||
END:toc
 | 
			
		||||
     </ul>
 | 
			
		||||
ENDIF:toc
 | 
			
		||||
   </div>
 | 
			
		||||
 | 
			
		||||
IF:methods
 | 
			
		||||
    <div id="method-list">
 | 
			
		||||
      <h3 class="section-bar">Methods</h3>
 | 
			
		||||
 | 
			
		||||
      <div class="name-list">
 | 
			
		||||
START:methods
 | 
			
		||||
      HREF:aref:name:  
 | 
			
		||||
END:methods
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
ENDIF:methods
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <!-- if includes -->
 | 
			
		||||
IF:includes
 | 
			
		||||
    <div id="includes">
 | 
			
		||||
      <h3 class="section-bar">Included Modules</h3>
 | 
			
		||||
 | 
			
		||||
      <div id="includes-list">
 | 
			
		||||
START:includes
 | 
			
		||||
		    <span class="include-name">HREF:aref:name:</span>
 | 
			
		||||
        <span class="include-name">HREF:aref:name:</span>
 | 
			
		||||
END:includes
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
ENDIF:includes
 | 
			
		||||
 | 
			
		||||
START:sections
 | 
			
		||||
    <div id="section">
 | 
			
		||||
IF:sectitle
 | 
			
		||||
      <h2 class="section-title"><a name="%secsequence%">%sectitle%</a></h2>
 | 
			
		||||
IF:seccomment
 | 
			
		||||
      <div class="section-comment">
 | 
			
		||||
        %seccomment%
 | 
			
		||||
      </div>      
 | 
			
		||||
ENDIF:seccomment
 | 
			
		||||
ENDIF:sectitle
 | 
			
		||||
 | 
			
		||||
		<!-- if method_list -->
 | 
			
		||||
IF:classlist
 | 
			
		||||
    <div id="class-list">
 | 
			
		||||
      <h3 class="section-bar">Classes and Modules</h3>
 | 
			
		||||
 | 
			
		||||
      %classlist%
 | 
			
		||||
    </div>
 | 
			
		||||
ENDIF:classlist
 | 
			
		||||
 | 
			
		||||
IF:constants
 | 
			
		||||
    <div id="constants-list">
 | 
			
		||||
      <h3 class="section-bar">Constants</h3>
 | 
			
		||||
 | 
			
		||||
      <div class="name-list">
 | 
			
		||||
        <table summary="Constants">
 | 
			
		||||
START:constants
 | 
			
		||||
        <tr class="top-aligned-row context-row">
 | 
			
		||||
          <td class="context-item-name">%name%</td>
 | 
			
		||||
          <td>=</td>
 | 
			
		||||
          <td class="context-item-value">%value%</td>
 | 
			
		||||
IF:desc
 | 
			
		||||
          <td width="3em"> </td>
 | 
			
		||||
          <td class="context-item-desc">%desc%</td>
 | 
			
		||||
ENDIF:desc
 | 
			
		||||
        </tr>
 | 
			
		||||
END:constants
 | 
			
		||||
        </table>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
ENDIF:constants
 | 
			
		||||
 | 
			
		||||
IF:aliases
 | 
			
		||||
    <div id="aliases-list">
 | 
			
		||||
      <h3 class="section-bar">External Aliases</h3>
 | 
			
		||||
 | 
			
		||||
      <div class="name-list">
 | 
			
		||||
                        <table summary="aliases">
 | 
			
		||||
START:aliases
 | 
			
		||||
        <tr class="top-aligned-row context-row">
 | 
			
		||||
          <td class="context-item-name">%old_name%</td>
 | 
			
		||||
          <td>-></td>
 | 
			
		||||
          <td class="context-item-value">%new_name%</td>
 | 
			
		||||
        </tr>
 | 
			
		||||
IF:desc
 | 
			
		||||
      <tr class="top-aligned-row context-row">
 | 
			
		||||
        <td> </td>
 | 
			
		||||
        <td colspan="2" class="context-item-desc">%desc%</td>
 | 
			
		||||
      </tr>
 | 
			
		||||
ENDIF:desc
 | 
			
		||||
END:aliases
 | 
			
		||||
                        </table>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
ENDIF:aliases
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
IF:attributes
 | 
			
		||||
    <div id="attribute-list">
 | 
			
		||||
      <h3 class="section-bar">Attributes</h3>
 | 
			
		||||
 | 
			
		||||
      <div class="name-list">
 | 
			
		||||
        <table>
 | 
			
		||||
START:attributes
 | 
			
		||||
        <tr class="top-aligned-row context-row">
 | 
			
		||||
          <td class="context-item-name">%name%</td>
 | 
			
		||||
          <td class="context-item-value"> [%rw%] </td>
 | 
			
		||||
          <td class="context-item-desc">%a_desc%</td>
 | 
			
		||||
        </tr>
 | 
			
		||||
END:attributes
 | 
			
		||||
        </table>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
ENDIF:attributes
 | 
			
		||||
      
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <!-- if method_list -->
 | 
			
		||||
IF:method_list
 | 
			
		||||
		<div id="methods">
 | 
			
		||||
    <div id="methods">
 | 
			
		||||
START:method_list
 | 
			
		||||
IF:methods
 | 
			
		||||
			<h2 class="section-bar">%type% %category% methods</h2>
 | 
			
		||||
      <h3 class="section-bar">%type% %category% methods</h3>
 | 
			
		||||
 | 
			
		||||
START:methods
 | 
			
		||||
			<div id="method-%aref%" class="method-detail">
 | 
			
		||||
				<a name="%aref%"></a>
 | 
			
		||||
      <div id="method-%aref%" class="method-detail">
 | 
			
		||||
        <a name="%aref%"></a>
 | 
			
		||||
 | 
			
		||||
				<div class="method-heading">
 | 
			
		||||
        <div class="method-heading">
 | 
			
		||||
IF:codeurl
 | 
			
		||||
					<a href="%codeurl%" target="Code" class="method-signature"
 | 
			
		||||
						onclick="popupCode('%codeurl%');return false;">
 | 
			
		||||
          <a href="%codeurl%" target="Code" class="method-signature"
 | 
			
		||||
            onclick="popupCode('%codeurl%');return false;">
 | 
			
		||||
ENDIF:codeurl
 | 
			
		||||
IF:sourcecode
 | 
			
		||||
					<a href="#%aref%" class="method-signature">
 | 
			
		||||
          <a href="#%aref%" class="method-signature">
 | 
			
		||||
ENDIF:sourcecode
 | 
			
		||||
IF:callseq
 | 
			
		||||
					<span class="method-name">%callseq%</span>
 | 
			
		||||
          <span class="method-name">%callseq%</span>
 | 
			
		||||
ENDIF:callseq
 | 
			
		||||
IFNOT:callseq
 | 
			
		||||
					<span class="method-name">%name%</span><span class="method-args">%params%</span>
 | 
			
		||||
          <span class="method-name">%name%</span><span class="method-args">%params%</span>
 | 
			
		||||
ENDIF:callseq
 | 
			
		||||
IF:codeurl
 | 
			
		||||
					</a>
 | 
			
		||||
          </a>
 | 
			
		||||
ENDIF:codeurl
 | 
			
		||||
IF:sourcecode
 | 
			
		||||
					</a>
 | 
			
		||||
          </a>
 | 
			
		||||
ENDIF:sourcecode
 | 
			
		||||
				</div>
 | 
			
		||||
			
 | 
			
		||||
				<div class="method-description">
 | 
			
		||||
        </div>
 | 
			
		||||
      
 | 
			
		||||
        <div class="method-description">
 | 
			
		||||
IF:m_desc
 | 
			
		||||
					%m_desc%
 | 
			
		||||
          %m_desc%
 | 
			
		||||
ENDIF:m_desc
 | 
			
		||||
IF:sourcecode
 | 
			
		||||
					<p><a class="source-toggle" href="#"
 | 
			
		||||
					  onclick="toggleCode('%aref%-source');return false;">[Source]</a></p>
 | 
			
		||||
					<div class="method-source-code" id="%aref%-source">
 | 
			
		||||
          <p><a class="source-toggle" href="#"
 | 
			
		||||
            onclick="toggleCode('%aref%-source');return false;">[Source]</a></p>
 | 
			
		||||
          <div class="method-source-code" id="%aref%-source">
 | 
			
		||||
<pre>
 | 
			
		||||
%sourcecode%
 | 
			
		||||
</pre>
 | 
			
		||||
					</div>
 | 
			
		||||
          </div>
 | 
			
		||||
ENDIF:sourcecode
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
END:methods
 | 
			
		||||
ENDIF:methods
 | 
			
		||||
END:method_list
 | 
			
		||||
 | 
			
		||||
		</div>
 | 
			
		||||
    </div>
 | 
			
		||||
ENDIF:method_list
 | 
			
		||||
END:sections
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
###	B O D Y   T E M P L A T E
 | 
			
		||||
### B O D Y   T E M P L A T E
 | 
			
		||||
#####################################################################
 | 
			
		||||
 | 
			
		||||
BODY = HEADER + %{
 | 
			
		||||
 | 
			
		||||
!INCLUDE!  <!-- banner header -->
 | 
			
		||||
 | 
			
		||||
	<div id="bodyContent">
 | 
			
		||||
  <div id="bodyContent">
 | 
			
		||||
 | 
			
		||||
} + CONTEXT_CONTENT + METHOD_LIST + %{
 | 
			
		||||
} +  METHOD_LIST + %{
 | 
			
		||||
 | 
			
		||||
	</div>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
} + FOOTER
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
###	S O U R C E   C O D E   T E M P L A T E
 | 
			
		||||
### S O U R C E   C O D E   T E M P L A T E
 | 
			
		||||
#####################################################################
 | 
			
		||||
 | 
			
		||||
SRC_PAGE = XHTML_PREAMBLE + %{
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
	<title>%title%</title>
 | 
			
		||||
	<meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
 | 
			
		||||
	<link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
 | 
			
		||||
  <title>%title%</title>
 | 
			
		||||
  <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
 | 
			
		||||
  <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
 | 
			
		||||
</head>
 | 
			
		||||
<body class="standalone-code">
 | 
			
		||||
	<pre>%code%</pre>
 | 
			
		||||
  <pre>%code%</pre>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
###	I N D E X   F I L E   T E M P L A T E S
 | 
			
		||||
### I N D E X   F I L E   T E M P L A T E S
 | 
			
		||||
#####################################################################
 | 
			
		||||
 | 
			
		||||
FR_INDEX_BODY = %{
 | 
			
		||||
| 
						 | 
				
			
			@ -592,19 +651,19 @@ FILE_INDEX = XHTML_PREAMBLE + %{
 | 
			
		|||
  -->
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
	<title>%list_title%</title>
 | 
			
		||||
	<meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
 | 
			
		||||
	<link rel="stylesheet" href="%style_url%" type="text/css" />
 | 
			
		||||
	<base target="docwin" />
 | 
			
		||||
  <title>%list_title%</title>
 | 
			
		||||
  <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
 | 
			
		||||
  <link rel="stylesheet" href="%style_url%" type="text/css" />
 | 
			
		||||
  <base target="docwin" />
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
<div id="index">
 | 
			
		||||
	<h1 class="section-bar">%list_title%</h1>
 | 
			
		||||
	<div id="index-entries">
 | 
			
		||||
  <h1 class="section-bar">%list_title%</h1>
 | 
			
		||||
  <div id="index-entries">
 | 
			
		||||
START:entries
 | 
			
		||||
		<a href="%href%">%name%</a><br />
 | 
			
		||||
    <a href="%href%">%name%</a><br />
 | 
			
		||||
END:entries
 | 
			
		||||
	</div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			@ -625,8 +684,8 @@ INDEX = %{<?xml version="1.0" encoding="%charset%"?>
 | 
			
		|||
  -->
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
	<title>%title%</title>
 | 
			
		||||
	<meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
 | 
			
		||||
  <title>%title%</title>
 | 
			
		||||
  <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
 | 
			
		||||
</head>
 | 
			
		||||
<frameset rows="20%, 80%">
 | 
			
		||||
    <frameset cols="25%,35%,45%">
 | 
			
		||||
| 
						 | 
				
			
			@ -641,7 +700,7 @@ INDEX = %{<?xml version="1.0" encoding="%charset%"?>
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	end # module Page
 | 
			
		||||
  end # module Page
 | 
			
		||||
end # class RDoc
 | 
			
		||||
 | 
			
		||||
require 'rdoc/generators/template/html/one_page_html'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -391,7 +391,7 @@ class Options
 | 
			
		|||
        when "--line-numbers"  then @include_line_numbers = true
 | 
			
		||||
        when "--main"          then @main_page     = arg
 | 
			
		||||
        when "--merge"         then @merge         = true
 | 
			
		||||
        when "--one-file"      then @all_one_file  = true
 | 
			
		||||
        when "--one-file"      then @all_one_file  = @inline_source = true
 | 
			
		||||
        when "--op"            then @op_dir        = arg
 | 
			
		||||
        when "--opname"        then @op_name       = arg
 | 
			
		||||
        when "--promiscuous"   then @promiscuous   = true
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1580,23 +1580,6 @@ module RDoc
 | 
			
		|||
        
 | 
			
		||||
        non_comment_seen = true unless tk.kind_of?(TkCOMMENT)
 | 
			
		||||
        
 | 
			
		||||
#         $stderr.puts "===== #{tk.inspect}"
 | 
			
		||||
#         blank_line_seen = true
 | 
			
		||||
#         while tk.kind_of?(TkNL)
 | 
			
		||||
#           skip_tkspace(false)
 | 
			
		||||
#           if peek_tk.kind_of?(TkCOMMENT)
 | 
			
		||||
#             if blank_line_seen
 | 
			
		||||
#               comment = ''
 | 
			
		||||
#               blank_line_seen = false
 | 
			
		||||
#             end
 | 
			
		||||
#             tk = get_tk
 | 
			
		||||
#             comment << tk.text << "\n"
 | 
			
		||||
#           else
 | 
			
		||||
#             blank_line_seen = true
 | 
			
		||||
#           end
 | 
			
		||||
#           tk = get_tk
 | 
			
		||||
#         end
 | 
			
		||||
 | 
			
		||||
	case tk
 | 
			
		||||
 | 
			
		||||
        when TkNL
 | 
			
		||||
| 
						 | 
				
			
			@ -2326,6 +2309,10 @@ module RDoc
 | 
			
		|||
          options.title = param
 | 
			
		||||
          ""
 | 
			
		||||
 | 
			
		||||
        when "section"
 | 
			
		||||
          context.set_current_section(param, comment)
 | 
			
		||||
          comment.clear
 | 
			
		||||
          ""
 | 
			
		||||
        else
 | 
			
		||||
          warn "Unrecognized directive '#{directive}'"
 | 
			
		||||
          break
 | 
			
		||||
| 
						 | 
				
			
			@ -2548,7 +2535,7 @@ module RDoc
 | 
			
		|||
	    break
 | 
			
		||||
	  when TkCOMMA
 | 
			
		||||
	  else
 | 
			
		||||
	    warn("unexpected token: '#{tk.inspect}'")
 | 
			
		||||
	    warn("unexpected token: '#{tk2.inspect}'") if $DEBBUG
 | 
			
		||||
	    break
 | 
			
		||||
	  end
 | 
			
		||||
	end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue