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.
# File rdoc/generators/html_generator.rb, line 774
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
# File rdoc/generators/html_generator.rb, line 891
def <=>(other)
self.name <=> other.name
end
# File rdoc/generators/html_generator.rb, line 872
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
# File rdoc/generators/html_generator.rb, line 797
def filename_to_label
@context.file_relative_name.gsub(/%|\/|\?|\#/) {|s| '%' + ("%x" % s[0]) }
end
# File rdoc/generators/html_generator.rb, line 792
def http_url(file_dir)
File.join(file_dir, @context.file_relative_name.tr('.', '_')) +
".html"
end
# File rdoc/generators/html_generator.rb, line 801
def index_name
name
end
# File rdoc/generators/html_generator.rb, line 805
def parent_name
nil
end
# File rdoc/generators/html_generator.rb, line 809
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