Class Generators::HTMLGeneratorInOne
In: lib/rdoc/generators/html_generator.rb
Parent: HTMLGenerator

Methods

Public Class methods

[Source]

      # File lib/rdoc/generators/html_generator.rb, line 1400
1400:     def initialize(*args)
1401:       super
1402:     end

Public Instance methods

[Source]

      # File lib/rdoc/generators/html_generator.rb, line 1440
1440:     def build_class_list(from, html_file, class_dir)
1441:       @classes << HtmlClass.new(from, html_file, class_dir, @options)
1442:       from.each_classmodule do |mod|
1443:         build_class_list(mod, html_file, class_dir)
1444:       end
1445:     end

Generate:

  • a list of HtmlFile objects for each TopLevel object.
  • a list of HtmlClass objects for each first level class or module in the TopLevel objects
  • a complete list of all hyperlinkable terms (file, class, module, and method names)

[Source]

      # File lib/rdoc/generators/html_generator.rb, line 1429
1429:     def build_indices
1430: 
1431:       @toplevels.each do |toplevel|
1432:         @files << HtmlFile.new(toplevel, @options, FILE_DIR)
1433:       end
1434: 
1435:       RDoc::TopLevel.all_classes_and_modules.each do |cls|
1436:         build_class_list(cls, @files[0], CLASS_DIR)
1437:       end
1438:     end

[Source]

      # File lib/rdoc/generators/html_generator.rb, line 1493
1493:     def gen_an_index(collection, title)
1494:       res = []
1495:       collection.sort.each do |f|
1496:         if f.document_self
1497:           res << { "href" => f.path, "name" => f.index_name }
1498:         end
1499:       end
1500: 
1501:       return {
1502:         "entries" => res,
1503:         'list_title' => title,
1504:         'index_url'  => main_url,
1505:       }
1506:     end

[Source]

      # File lib/rdoc/generators/html_generator.rb, line 1484
1484:     def gen_class_index
1485:       gen_an_index(@classes, 'Classes')
1486:     end

[Source]

      # File lib/rdoc/generators/html_generator.rb, line 1480
1480:     def gen_file_index
1481:       gen_an_index(@files, 'Files')
1482:     end

[Source]

      # File lib/rdoc/generators/html_generator.rb, line 1472
1472:     def gen_into(list)
1473:       res = []
1474:       list.each do |item|
1475:         res << item.value_hash
1476:       end
1477:       res
1478:     end

[Source]

      # File lib/rdoc/generators/html_generator.rb, line 1488
1488:     def gen_method_index
1489:       gen_an_index(HtmlMethod.all_methods, 'Methods')
1490:     end

Build the initial indices and output objects based on an array of TopLevel objects containing the extracted information.

[Source]

      # File lib/rdoc/generators/html_generator.rb, line 1409
1409:     def generate(info)
1410:       @toplevels  = info
1411:       @files      = []
1412:       @classes    = []
1413:       @hyperlinks = {}
1414: 
1415:       build_indices
1416:       generate_xml
1417:     end

Generate all the HTML. For the one-file case, we generate all the information in to one big hash

[Source]

      # File lib/rdoc/generators/html_generator.rb, line 1451
1451:     def generate_xml
1452:       values = { 
1453:         'charset' => @options.charset,
1454:         'files'   => gen_into(@files),
1455:         'classes' => gen_into(@classes),
1456:         'title'        => CGI.escapeHTML(@options.title),
1457:       }
1458:       
1459:       # this method is defined in the template file
1460:       write_extra_pages if defined? write_extra_pages
1461: 
1462:       template = TemplatePage.new(RDoc::Page::ONE_PAGE)
1463: 
1464:       if @options.op_name
1465:         opfile = File.open(@options.op_name, "w")
1466:       else
1467:         opfile = $stdout
1468:       end
1469:       template.write_html_on(opfile, values)
1470:     end

[Validate]