In Files

  • rdoc/generators/html_generator.rb

Files

Class/Module Index [+]

Quicksearch

Generators::HtmlClass

Wrap a ClassModule context

Attributes

path[R]

Public Class Methods

new(context, html_file, prefix, options) click to toggle source
 
               # File rdoc/generators/html_generator.rb, line 590
def initialize(context, html_file, prefix, options)
  super(context, options)

  @html_file = html_file
  @is_module = context.is_module?
  @values    = {}

  context.viewer = self

  if options.all_one_file
    @path = context.full_name
  else
    @path = http_url(context.full_name, prefix)
  end

  collect_methods

  AllReferences.add(name, self)
end
            

Public Instance Methods

<=>(other) click to toggle source
 
               # File rdoc/generators/html_generator.rb, line 756
def <=>(other)
  self.name <=> other.name
end
            
build_attribute_list(section) click to toggle source
 
               # File rdoc/generators/html_generator.rb, line 686
def build_attribute_list(section)
  atts = @context.attributes.sort
  res = []
  atts.each do |att|
    next unless att.section == section
    if att.visibility == :public || att.visibility == :protected || @options.show_all
      entry = {
        "name"   => CGI.escapeHTML(att.name), 
        "rw"     => att.rw, 
        "a_desc" => markup(att.comment, true)
      }
      unless att.visibility == :public || att.visibility == :protected
        entry["rw"] << "-"
      end
      res << entry
    end
  end
  res
end
            
class_attribute_values() click to toggle source
 
               # File rdoc/generators/html_generator.rb, line 706
def class_attribute_values
  h_name = CGI.escapeHTML(name)

  @values["classmod"]  = @is_module ? "Module" : "Class"
  @values["title"]     = "#{@values['classmod']}: #{h_name}"

  c = @context
  c = c.parent while c and !c.diagram
  if c && c.diagram
    @values["diagram"] = diagram_reference(c.diagram)
  end

  @values["full_name"] = h_name

  parent_class = @context.superclass

  if parent_class
    @values["parent"] = CGI.escapeHTML(parent_class)

    if parent_name
      lookup = parent_name + "::" + parent_class
    else
      lookup = parent_class
    end

    parent_url = AllReferences[lookup] || AllReferences[parent_class]

    if parent_url and parent_url.document_self
      @values["par_url"] = aref_to(parent_url.path)
    end
  end

  files = []
  @context.in_files.each do |f|
    res = {}
    full_path = CGI.escapeHTML(f.file_absolute_name)

    res["full_path"]     = full_path
    res["full_path_url"] = aref_to(f.viewer.path) if f.document_self

    if @options.webcvs
      res["cvsurl"] = cvs_url( @options.webcvs, full_path )
    end

    files << res
  end

  @values['infiles'] = files
end
            
http_url(full_name, prefix) click to toggle source

return the relative file name to store this class in, which is also its url

 
               # File rdoc/generators/html_generator.rb, line 612
def http_url(full_name, prefix)
  path = full_name.dup
  if path['<<']
    path.gsub!(/<<\s*(\w*)/) { "from-#$1" }
  end
  File.join(prefix, path.split("::")) + ".html"
end
            
index_name() click to toggle source
 
               # File rdoc/generators/html_generator.rb, line 629
def index_name
  name
end
            
name() click to toggle source
 
               # File rdoc/generators/html_generator.rb, line 621
def name
  @context.full_name
end
            
parent_name() click to toggle source
 
               # File rdoc/generators/html_generator.rb, line 625
def parent_name
  @context.parent.full_name
end
            
value_hash() click to toggle source
 
               # File rdoc/generators/html_generator.rb, line 641
def value_hash
  class_attribute_values
  add_table_of_sections

  @values["charset"] = @options.charset
  @values["style_url"] = style_url(path, @options.css)

  d = markup(@context.comment)
  @values["description"] = d unless d.empty?

  ml = build_method_summary_list
  @values["methods"] = ml unless ml.empty?

  il = build_include_list(@context)
  @values["includes"] = il unless il.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

  @values
end
            
write_on(f) click to toggle source
 
               # File rdoc/generators/html_generator.rb, line 633
def write_on(f)
  value_hash
  template = TemplatePage.new(RDoc::Page::BODY,
                                  RDoc::Page::CLASS_PAGE,
                                  RDoc::Page::METHOD_LIST)
  template.write_html_on(f, @values)
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus