Class Generators::HtmlClass
In: generators/html_generator.rb
Parent: ContextUser

Wrap a ClassModule context

Methods

Attributes

path  [R] 

Public Class methods

[Source]

     # File generators/html_generator.rb, line 633
633:     def initialize(context, html_file, prefix, options)
634:       super(context, options)
635: 
636:       @html_file = html_file
637:       @is_module = context.is_module?
638:       @values    = {}
639: 
640:       context.viewer = self
641: 
642:       if options.all_one_file
643:         @path = context.full_name
644:       else
645:         @path = http_url(context.full_name, prefix)
646:       end
647: 
648:       collect_methods
649: 
650:       AllReferences.add(name, self)
651:     end

Public Instance methods

[Source]

     # File generators/html_generator.rb, line 799
799:     def <=>(other)
800:       self.name <=> other.name
801:     end

[Source]

     # File generators/html_generator.rb, line 729
729:     def build_attribute_list(section)
730:       atts = @context.attributes.sort
731:       res = []
732:       atts.each do |att|
733:         next unless att.section == section
734:         if att.visibility == :public || att.visibility == :protected || @options.show_all
735:           entry = {
736:             "name"   => CGI.escapeHTML(att.name), 
737:             "rw"     => att.rw, 
738:             "a_desc" => markup(att.comment, true)
739:           }
740:           unless att.visibility == :public || att.visibility == :protected
741:             entry["rw"] << "-"
742:           end
743:           res << entry
744:         end
745:       end
746:       res
747:     end

[Source]

     # File generators/html_generator.rb, line 749
749:     def class_attribute_values
750:       h_name = CGI.escapeHTML(name)
751: 
752:       @values["classmod"]  = @is_module ? "Module" : "Class"
753:       @values["title"]     = "#{@values['classmod']}: #{h_name}"
754: 
755:       c = @context
756:       c = c.parent while c and !c.diagram
757:       if c && c.diagram
758:         @values["diagram"] = diagram_reference(c.diagram)
759:       end
760: 
761:       @values["full_name"] = h_name
762: 
763:       parent_class = @context.superclass
764: 
765:       if parent_class
766:         @values["parent"] = CGI.escapeHTML(parent_class)
767: 
768:         if parent_name
769:           lookup = parent_name + "::" + parent_class
770:         else
771:           lookup = parent_class
772:         end
773: 
774:         parent_url = AllReferences[lookup] || AllReferences[parent_class]
775: 
776:         if parent_url and parent_url.document_self
777:           @values["par_url"] = aref_to(parent_url.path)
778:         end
779:       end
780: 
781:       files = []
782:       @context.in_files.each do |f|
783:         res = {}
784:         full_path = CGI.escapeHTML(f.file_absolute_name)
785: 
786:         res["full_path"]     = full_path
787:         res["full_path_url"] = aref_to(f.viewer.path) if f.document_self
788: 
789:         if @options.webcvs
790:           res["cvsurl"] = cvs_url( @options.webcvs, full_path )
791:         end
792: 
793:         files << res
794:       end
795: 
796:       @values['infiles'] = files
797:     end

return the relative file name to store this class in, which is also its url

[Source]

     # File generators/html_generator.rb, line 655
655:     def http_url(full_name, prefix)
656:       path = full_name.dup
657:       if path['<<']
658:         path.gsub!(/<<\s*(\w*)/) { "from-#$1" }
659:       end
660:       File.join(prefix, path.split("::")) + ".html"
661:     end

[Source]

     # File generators/html_generator.rb, line 672
672:     def index_name
673:       name
674:     end

[Source]

     # File generators/html_generator.rb, line 664
664:     def name
665:       @context.full_name
666:     end

[Source]

     # File generators/html_generator.rb, line 668
668:     def parent_name
669:       @context.parent.full_name
670:     end

[Source]

     # File generators/html_generator.rb, line 684
684:     def value_hash
685:       class_attribute_values
686:       add_table_of_sections
687: 
688:       @values["charset"] = @options.charset
689:       @values["style_url"] = style_url(path, @options.css)
690: 
691:       d = markup(@context.comment)
692:       @values["description"] = d unless d.empty?
693: 
694:       ml = build_method_summary_list
695:       @values["methods"] = ml unless ml.empty?
696: 
697:       il = build_include_list(@context)
698:       @values["includes"] = il unless il.empty?
699: 
700:       @values["sections"] = @context.sections.map do |section|
701: 
702:         secdata = {
703:           "sectitle" => section.title,
704:           "secsequence" => section.sequence,
705:           "seccomment" => markup(section.comment)
706:         }
707: 
708:         al = build_alias_summary_list(section)
709:         secdata["aliases"] = al unless al.empty?
710:         
711:         co = build_constants_summary_list(section)
712:         secdata["constants"] = co unless co.empty?
713:         
714:         al = build_attribute_list(section)
715:         secdata["attributes"] = al unless al.empty?
716:         
717:         cl = build_class_list(0, @context, section)
718:         secdata["classlist"] = cl unless cl.empty?
719:         
720:         mdl = build_method_detail_list(section)
721:         secdata["method_list"] = mdl unless mdl.empty?
722: 
723:         secdata
724:       end
725: 
726:       @values
727:     end

[Source]

     # File generators/html_generator.rb, line 676
676:     def write_on(f)
677:       value_hash
678:       template = TemplatePage.new(RDoc::Page::BODY,
679:                                       RDoc::Page::CLASS_PAGE,
680:                                       RDoc::Page::METHOD_LIST)
681:       template.write_html_on(f, @values)
682:     end

[Validate]