Generators may need to return specific subclasses depending on the options they are passed. Because of this we create them using a factory
# File rdoc/generators/html_generator.rb, line 1160
def HTMLGenerator.for(options)
AllReferences::reset
HtmlMethod::reset
if options.all_one_file
HTMLGeneratorInOne.new(options)
else
HTMLGenerator.new(options)
end
end
convert a target url to one that is relative to a given path
# File rdoc/generators/html_generator.rb, line 1138
def HTMLGenerator.gen_url(path, target)
from = File.dirname(path)
to, to_file = File.split(target)
from = from.split("/")
to = to.split("/")
while from.size > 0 and to.size > 0 and from[0] == to[0]
from.shift
to.shift
end
from.fill("..")
from.concat(to)
from << to_file
File.join(*from)
end
Build the initial indices and output objects based on an array of TopLevel objects containing the extracted information.
# File rdoc/generators/html_generator.rb, line 1189
def generate(toplevels)
@toplevels = toplevels
@files = []
@classes = []
write_style_sheet
gen_sub_directories()
build_indices
generate_html
end