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 634
634:     def initialize(context, html_file, prefix, options)
635:       super(context, options)
636: 
637:       @html_file = html_file
638:       @is_module = context.is_module?
639:       @values    = {}
640: 
641:       context.viewer = self
642: 
643:       if options.all_one_file
644:         @path = context.full_name
645:       else
646:         @path = http_url(context.full_name, prefix)
647:       end
648: 
649:       collect_methods
650: 
651:       AllReferences.add(name, self)
652:     end

Public Instance methods

[Source]

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

[Source]

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

[Source]

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

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Validate]