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

Handles the mapping of a file‘s information to HTML. In reality, a file corresponds to a TopLevel object, containing modules, classes, and top-level methods. In theory it could contain attributes and aliases, but we ignore these for now.

Methods

Attributes

name  [R] 
path  [R] 

Public Class methods

[Source]

     # File generators/html_generator.rb, line 818
818:     def initialize(context, options, file_dir)
819:       super(context, options)
820: 
821:       @values = {}
822: 
823:       if options.all_one_file
824:         @path = filename_to_label
825:       else
826:         @path = http_url(file_dir)
827:       end
828: 
829:       @name = @context.file_relative_name
830: 
831:       collect_methods
832:       AllReferences.add(name, self)
833:       context.viewer = self
834:     end

Public Instance methods

[Source]

     # File generators/html_generator.rb, line 935
935:     def <=>(other)
936:       self.name <=> other.name
937:     end

[Source]

     # File generators/html_generator.rb, line 916
916:     def file_attribute_values
917:       full_path = @context.file_absolute_name
918:       short_name = File.basename(full_path)
919:       
920:       @values["title"] = CGI.escapeHTML("File: #{short_name}")
921: 
922:       if @context.diagram
923:         @values["diagram"] = diagram_reference(@context.diagram)
924:       end
925: 
926:       @values["short_name"]   = CGI.escapeHTML(short_name)
927:       @values["full_path"]    = CGI.escapeHTML(full_path)
928:       @values["dtm_modified"] = @context.file_stat.mtime.to_s
929: 
930:       if @options.webcvs
931:         @values["cvsurl"] = cvs_url( @options.webcvs, @values["full_path"] )
932:       end
933:     end

[Source]

     # File generators/html_generator.rb, line 841
841:     def filename_to_label
842:       @context.file_relative_name.gsub(/%|\/|\?|\#/) {|s| '%' + ("%x" % s[0]) }
843:     end

[Source]

     # File generators/html_generator.rb, line 836
836:     def http_url(file_dir)
837:       File.join(file_dir, @context.file_relative_name.tr('.', '_')) +
838:         '.' + @options.template
839:     end

[Source]

     # File generators/html_generator.rb, line 845
845:     def index_name
846:       name
847:     end

[Source]

     # File generators/html_generator.rb, line 849
849:     def parent_name
850:       nil
851:     end

[Source]

     # File generators/html_generator.rb, line 853
853:     def value_hash
854:       file_attribute_values
855:       add_table_of_sections
856: 
857:       @values["charset"]   = @options.charset
858:       @values["href"]      = path
859:       @values["style_url"] = style_url(path, @options.css)
860: 
861:       if @context.comment
862:         d = markup(@context.comment)
863:         @values["description"] = d if d.size > 0
864:       end
865: 
866:       ml = build_method_summary_list
867:       @values["methods"] = ml unless ml.empty?
868: 
869:       il = build_include_list(@context)
870:       @values["includes"] = il unless il.empty?
871: 
872:       rl = build_requires_list(@context)
873:       @values["requires"] = rl unless rl.empty?
874: 
875:       if @options.promiscuous
876:         file_context = nil
877:       else
878:         file_context = @context
879:       end
880: 
881: 
882:       @values["sections"] = @context.sections.map do |section|
883: 
884:         secdata = {
885:           "sectitle" => section.title,
886:           "secsequence" => section.sequence,
887:           "seccomment" => markup(section.comment)
888:         }
889: 
890:         cl = build_class_list(0, @context, section, file_context)
891:         @values["classlist"] = cl unless cl.empty?
892: 
893:         mdl = build_method_detail_list(section)
894:         secdata["method_list"] = mdl unless mdl.empty?
895: 
896:         al = build_alias_summary_list(section)
897:         secdata["aliases"] = al unless al.empty?
898:         
899:         co = build_constants_summary_list(section)
900:         @values["constants"] = co unless co.empty?
901: 
902:         secdata
903:       end
904:       
905:       @values
906:     end

[Source]

     # File generators/html_generator.rb, line 908
908:     def write_on(f)
909:       value_hash
910:       template = TemplatePage.new(RDoc::Page::BODY,
911:                                   RDoc::Page::FILE_PAGE,
912:                                   RDoc::Page::METHOD_LIST)
913:       template.write_html_on(f, @values)
914:     end

[Validate]