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 819
819:     def initialize(context, options, file_dir)
820:       super(context, options)
821: 
822:       @values = {}
823: 
824:       if options.all_one_file
825:         @path = filename_to_label
826:       else
827:         @path = http_url(file_dir)
828:       end
829: 
830:       @name = @context.file_relative_name
831: 
832:       collect_methods
833:       AllReferences.add(name, self)
834:       context.viewer = self
835:     end

Public Instance methods

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Validate]