Class | Generators::HtmlFile
In: | rdoc/generators/html_generator.rb
Parent: | ContextUser

Handles the mapping of a file’s information to HTML. In reality, a file corresponds to a `TopLevel` object, containing modules, classes, and top-level methods. In theory it could contain attributes and aliases, but we ignore these for now.

### Methods

<=> file_attribute_values filename_to_label http_url index_name new parent_name value_hash write_on

### Attributes

name | [R] |
path | [R] |

### Public Class methods

new(context, options, file_dir)

[Source]

    # File rdoc/generators/html_generator.rb, line 767
        def initialize(context, options, file_dir)
          super(context, options)

          @values = {}

          if options.all_one_file
            @path = filename_to_label
          else
            @path = http_url(file_dir)
          end

          @name = @context.file_relative_name

          collect_methods
          AllReferences.add(name, self)
          context.viewer = self
        end

### Public Instance methods

<=>(other)

[Source]

    # File rdoc/generators/html_generator.rb, line 884
        def <=>(other)
          self.name <=> other.name
        end

file_attribute_values()

[Source]

    # File rdoc/generators/html_generator.rb, line 865
        def file_attribute_values
          full_path = @context.file_absolute_name
          short_name = File.basename(full_path)

          @values["title"] = CGI.escapeHTML("File: #{short_name}")

          if @context.diagram
            @values["diagram"] = diagram_reference(@context.diagram)
          end

          @values["short_name"]   = CGI.escapeHTML(short_name)
          @values["full_path"]    = CGI.escapeHTML(full_path)
          @values["dtm_modified"] = @context.file_stat.mtime.to_s

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

filename_to_label()

[Source]

    # File rdoc/generators/html_generator.rb, line 790
        def filename_to_label
          @context.file_relative_name.gsub(/%|\/|\?|\#/) {|s| '%' + ("%x" % s[0]) }
        end

http_url(file_dir)

[Source]

    # File rdoc/generators/html_generator.rb, line 785
        def http_url(file_dir)
          File.join(file_dir, @context.file_relative_name.tr('.', '_')) +
            ".html"
        end

index_name()

[Source]

    # File rdoc/generators/html_generator.rb, line 794
        def index_name
          name
        end

parent_name()

[Source]

    # File rdoc/generators/html_generator.rb, line 798
        def parent_name
          nil
        end

value_hash()

[Source]

    # File rdoc/generators/html_generator.rb, line 802
        def value_hash
          file_attribute_values
          add_table_of_sections

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

          if @context.comment
            d = markup(@context.comment)
            @values["description"] = d if d.size > 0
          end

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

          il = build_include_list(@context)
          @values["includes"] = il unless il.empty?

          rl = build_requires_list(@context)
          @values["requires"] = rl unless rl.empty?

          if @options.promiscuous
            file_context = nil
          else
            file_context = @context
          end

          @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

write_on(f)

[Source]

    # File rdoc/generators/html_generator.rb, line 857
        def write_on(f)
          value_hash
          template = TemplatePage.new(RDoc::Page::BODY,
                                      RDoc::Page::FILE_PAGE,
                                      RDoc::Page::METHOD_LIST)
          template.write_html_on(f, @values)
        end

[Validate]