| Class | Generators::HTMLGeneratorInOne |
| In: |
generators/html_generator.rb
|
| Parent: | HTMLGenerator |
# File generators/html_generator.rb, line 1492
1492: def build_class_list(from, html_file, class_dir)
1493: @classes << HtmlClass.new(from, html_file, class_dir, @options)
1494: from.each_classmodule do |mod|
1495: build_class_list(mod, html_file, class_dir)
1496: end
1497: end
Generate:
# File generators/html_generator.rb, line 1481
1481: def build_indices
1482:
1483: @toplevels.each do |toplevel|
1484: @files << HtmlFile.new(toplevel, @options, FILE_DIR)
1485: end
1486:
1487: RDoc::TopLevel.all_classes_and_modules.each do |cls|
1488: build_class_list(cls, @files[0], CLASS_DIR)
1489: end
1490: end
# File generators/html_generator.rb, line 1545
1545: def gen_an_index(collection, title)
1546: res = []
1547: collection.sort.each do |f|
1548: if f.document_self
1549: res << { "href" => f.path, "name" => f.index_name }
1550: end
1551: end
1552:
1553: return {
1554: "entries" => res,
1555: 'list_title' => title,
1556: 'index_url' => main_url,
1557: }
1558: end
# File generators/html_generator.rb, line 1536
1536: def gen_class_index
1537: gen_an_index(@classes, 'Classes')
1538: end
# File generators/html_generator.rb, line 1532
1532: def gen_file_index
1533: gen_an_index(@files, 'Files')
1534: end
# File generators/html_generator.rb, line 1524
1524: def gen_into(list)
1525: res = []
1526: list.each do |item|
1527: res << item.value_hash
1528: end
1529: res
1530: end
# File generators/html_generator.rb, line 1540
1540: def gen_method_index
1541: gen_an_index(HtmlMethod.all_methods, 'Methods')
1542: end
Build the initial indices and output objects based on an array of TopLevel objects containing the extracted information.
# File generators/html_generator.rb, line 1461
1461: def generate(info)
1462: @toplevels = info
1463: @files = []
1464: @classes = []
1465: @hyperlinks = {}
1466:
1467: build_indices
1468: generate_xml
1469: end
Generate all the HTML. For the one-file case, we generate all the information in to one big hash
# File generators/html_generator.rb, line 1503
1503: def generate_xml
1504: values = {
1505: 'charset' => @options.charset,
1506: 'files' => gen_into(@files),
1507: 'classes' => gen_into(@classes),
1508: 'title' => CGI.escapeHTML(@options.title),
1509: }
1510:
1511: # this method is defined in the template file
1512: write_extra_pages if defined? write_extra_pages
1513:
1514: template = TemplatePage.new(RDoc::Page::ONE_PAGE)
1515:
1516: if @options.op_name
1517: opfile = File.open(@options.op_name, "w")
1518: else
1519: opfile = $stdout
1520: end
1521: template.write_html_on(opfile, values)
1522: end