| Class | RDoc::Generator::Class |
| In: |
generator.rb
doc-tmp/rdoc/generator.rb |
| Parent: | Context |
Wrap a ClassModule context
# File doc-tmp/rdoc/generator.rb, line 520
520: def initialize(context, html_file, prefix, options)
521: super(context, options)
522:
523: @html_file = html_file
524: @is_module = context.is_module?
525: @values = {}
526:
527: context.viewer = self
528:
529: if options.all_one_file
530: @path = context.full_name
531: else
532: @path = http_url(context.full_name, prefix)
533: end
534:
535: collect_methods
536:
537: AllReferences.add(name, self)
538: end
# File generator.rb, line 520
520: def initialize(context, html_file, prefix, options)
521: super(context, options)
522:
523: @html_file = html_file
524: @is_module = context.is_module?
525: @values = {}
526:
527: context.viewer = self
528:
529: if options.all_one_file
530: @path = context.full_name
531: else
532: @path = http_url(context.full_name, prefix)
533: end
534:
535: collect_methods
536:
537: AllReferences.add(name, self)
538: end
# File doc-tmp/rdoc/generator.rb, line 691
691: def <=>(other)
692: self.name <=> other.name
693: end
# File doc-tmp/rdoc/generator.rb, line 620
620: def build_attribute_list(section)
621: atts = @context.attributes.sort
622: res = []
623: atts.each do |att|
624: next unless att.section == section
625: if att.visibility == :public || att.visibility == :protected || @options.show_all
626: entry = {
627: "name" => CGI.escapeHTML(att.name),
628: "rw" => att.rw,
629: "a_desc" => markup(att.comment, true)
630: }
631: unless att.visibility == :public || att.visibility == :protected
632: entry["rw"] << "-"
633: end
634: res << entry
635: end
636: end
637: res
638: end
# File generator.rb, line 620
620: def build_attribute_list(section)
621: atts = @context.attributes.sort
622: res = []
623: atts.each do |att|
624: next unless att.section == section
625: if att.visibility == :public || att.visibility == :protected || @options.show_all
626: entry = {
627: "name" => CGI.escapeHTML(att.name),
628: "rw" => att.rw,
629: "a_desc" => markup(att.comment, true)
630: }
631: unless att.visibility == :public || att.visibility == :protected
632: entry["rw"] << "-"
633: end
634: res << entry
635: end
636: end
637: res
638: end
# File generator.rb, line 640
640: def class_attribute_values
641: h_name = CGI.escapeHTML(name)
642:
643: @values["path"] = @path
644: @values["classmod"] = @is_module ? "Module" : "Class"
645: @values["title"] = "#{@values['classmod']}: #{h_name}"
646:
647: c = @context
648: c = c.parent while c and !c.diagram
649: if c && c.diagram
650: @values["diagram"] = diagram_reference(c.diagram)
651: end
652:
653: @values["full_name"] = h_name
654:
655: parent_class = @context.superclass
656:
657: if parent_class
658: @values["parent"] = CGI.escapeHTML(parent_class)
659:
660: if parent_name
661: lookup = parent_name + "::" + parent_class
662: else
663: lookup = parent_class
664: end
665:
666: parent_url = AllReferences[lookup] || AllReferences[parent_class]
667:
668: if parent_url and parent_url.document_self
669: @values["par_url"] = aref_to(parent_url.path)
670: end
671: end
672:
673: files = []
674: @context.in_files.each do |f|
675: res = {}
676: full_path = CGI.escapeHTML(f.file_absolute_name)
677:
678: res["full_path"] = full_path
679: res["full_path_url"] = aref_to(f.viewer.path) if f.document_self
680:
681: if @options.webcvs
682: res["cvsurl"] = cvs_url( @options.webcvs, full_path )
683: end
684:
685: files << res
686: end
687:
688: @values['infiles'] = files
689: end
# File doc-tmp/rdoc/generator.rb, line 640
640: def class_attribute_values
641: h_name = CGI.escapeHTML(name)
642:
643: @values["path"] = @path
644: @values["classmod"] = @is_module ? "Module" : "Class"
645: @values["title"] = "#{@values['classmod']}: #{h_name}"
646:
647: c = @context
648: c = c.parent while c and !c.diagram
649: if c && c.diagram
650: @values["diagram"] = diagram_reference(c.diagram)
651: end
652:
653: @values["full_name"] = h_name
654:
655: parent_class = @context.superclass
656:
657: if parent_class
658: @values["parent"] = CGI.escapeHTML(parent_class)
659:
660: if parent_name
661: lookup = parent_name + "::" + parent_class
662: else
663: lookup = parent_class
664: end
665:
666: parent_url = AllReferences[lookup] || AllReferences[parent_class]
667:
668: if parent_url and parent_url.document_self
669: @values["par_url"] = aref_to(parent_url.path)
670: end
671: end
672:
673: files = []
674: @context.in_files.each do |f|
675: res = {}
676: full_path = CGI.escapeHTML(f.file_absolute_name)
677:
678: res["full_path"] = full_path
679: res["full_path_url"] = aref_to(f.viewer.path) if f.document_self
680:
681: if @options.webcvs
682: res["cvsurl"] = cvs_url( @options.webcvs, full_path )
683: end
684:
685: files << res
686: end
687:
688: @values['infiles'] = files
689: end
Returns the relative file name to store this class in, which is also its url
# File generator.rb, line 544
544: def http_url(full_name, prefix)
545: path = full_name.dup
546:
547: path.gsub!(/<<\s*(\w*)/, 'from-\1') if path['<<']
548: suffix = ".html"
549: suffix = ".xhtml" if @options.template == "xhtml"
550:
551: ::File.join(prefix, path.split("::")) + suffix
552: end
Returns the relative file name to store this class in, which is also its url
# File doc-tmp/rdoc/generator.rb, line 544
544: def http_url(full_name, prefix)
545: path = full_name.dup
546:
547: path.gsub!(/<<\s*(\w*)/, 'from-\1') if path['<<']
548: suffix = ".html"
549: suffix = ".xhtml" if @options.template == "xhtml"
550:
551: ::File.join(prefix, path.split("::")) + suffix
552: end
# File doc-tmp/rdoc/generator.rb, line 558
558: def parent_name
559: @context.parent.full_name
560: end
# File doc-tmp/rdoc/generator.rb, line 574
574: def value_hash
575: class_attribute_values
576: add_table_of_sections
577:
578: @values["charset"] = @options.charset
579: @values["style_url"] = style_url(path, @options.css)
580: @values["mathml_xsl_url"] = style_url(path, "mathml.xsl")
581:
582: d = markup(@context.comment)
583: @values["description"] = d unless d.empty?
584:
585: ml = build_method_summary_list
586: @values["methods"] = ml unless ml.empty?
587:
588: il = build_include_list(@context)
589: @values["includes"] = il unless il.empty?
590:
591: @values["sections"] = @context.sections.map do |section|
592:
593: secdata = {
594: "sectitle" => section.title,
595: "secsequence" => section.sequence,
596: "seccomment" => markup(section.comment)
597: }
598:
599: al = build_alias_summary_list(section)
600: secdata["aliases"] = al unless al.empty?
601:
602: co = build_constants_summary_list(section)
603: secdata["constants"] = co unless co.empty?
604:
605: al = build_attribute_list(section)
606: secdata["attributes"] = al unless al.empty?
607:
608: cl = build_class_list(0, @context, section)
609: secdata["classlist"] = cl unless cl.empty?
610:
611: mdl = build_method_detail_list(section)
612: secdata["method_list"] = mdl unless mdl.empty?
613:
614: secdata
615: end
616:
617: @values
618: end
# File generator.rb, line 574
574: def value_hash
575: class_attribute_values
576: add_table_of_sections
577:
578: @values["charset"] = @options.charset
579: @values["style_url"] = style_url(path, @options.css)
580: @values["mathml_xsl_url"] = style_url(path, "mathml.xsl")
581:
582: d = markup(@context.comment)
583: @values["description"] = d unless d.empty?
584:
585: ml = build_method_summary_list
586: @values["methods"] = ml unless ml.empty?
587:
588: il = build_include_list(@context)
589: @values["includes"] = il unless il.empty?
590:
591: @values["sections"] = @context.sections.map do |section|
592:
593: secdata = {
594: "sectitle" => section.title,
595: "secsequence" => section.sequence,
596: "seccomment" => markup(section.comment)
597: }
598:
599: al = build_alias_summary_list(section)
600: secdata["aliases"] = al unless al.empty?
601:
602: co = build_constants_summary_list(section)
603: secdata["constants"] = co unless co.empty?
604:
605: al = build_attribute_list(section)
606: secdata["attributes"] = al unless al.empty?
607:
608: cl = build_class_list(0, @context, section)
609: secdata["classlist"] = cl unless cl.empty?
610:
611: mdl = build_method_detail_list(section)
612: secdata["method_list"] = mdl unless mdl.empty?
613:
614: secdata
615: end
616:
617: @values
618: end
# File generator.rb, line 566
566: def write_on(f)
567: value_hash
568: template = RDoc::TemplatePage.new(@template::BODY,
569: @template::CLASS_PAGE,
570: @template::METHOD_LIST)
571: template.write_html_on(f, @values)
572: end