# File rdoc/generators/html_generator.rb, line 1044
def HtmlMethod.all_methods
@@all_methods
end
# File rdoc/generators/html_generator.rb, line 914
def initialize(context, html_class, options)
@context = context
@html_class = html_class
@options = options
@@seq = @@seq.succ
@seq = @@seq
@@all_methods << self
context.viewer = self
if (ts = @context.token_stream)
@source_code = markup_code(ts)
unless @options.inline_source
@src_url = create_source_code_file(@source_code)
@img_url = HTMLGenerator.gen_url(path, 'source.png')
end
end
AllReferences.add(name, self)
end
# File rdoc/generators/html_generator.rb, line 1048
def <=>(other)
@context <=> other.context
end
we rely on the fact that the first line of a source code listing has
# File xxxxx, line dddd
# File rdoc/generators/html_generator.rb, line 1095
def add_line_numbers(src)
if src =~ /\A.*, line (\d+)/
first = $1.to_i - 1
last = first + src.count("\n")
size = last.to_s.length
real_fmt = "%#{size}d: "
fmt = " " * (size+2)
src.gsub!(/^/) do
res = sprintf(fmt, first)
first += 1
fmt = real_fmt
res
end
end
end
# File rdoc/generators/html_generator.rb, line 1115
def aliases
@context.aliases
end
return a reference to outselves to be used as an href= the form depends on whether we’re all in one file or in multiple files
# File rdoc/generators/html_generator.rb, line 939
def as_href(from_path)
if @options.all_one_file
"#" + path
else
HTMLGenerator.gen_url(from_path, path)
end
end
# File rdoc/generators/html_generator.rb, line 991
def call_seq
cs = @context.call_seq
if cs
cs.gsub(/\n/, "<br />\n")
else
nil
end
end
# File rdoc/generators/html_generator.rb, line 1026
def create_source_code_file(code_body)
meth_path = @html_class.path.sub(/\.html$/, '.src')
File.makedirs(meth_path)
file_path = File.join(meth_path, @seq) + ".html"
template = TemplatePage.new(RDoc::Page::SRC_PAGE)
File.open(file_path, "w") do |f|
values = {
'title' => CGI.escapeHTML(index_name),
'code' => code_body,
'style_url' => style_url(file_path, @options.css),
'charset' => @options.charset
}
template.write_html_on(f, values)
end
HTMLGenerator.gen_url(path, file_path)
end
# File rdoc/generators/html_generator.rb, line 979
def description
markup(@context.comment)
end
# File rdoc/generators/html_generator.rb, line 1111
def document_self
@context.document_self
end
# File rdoc/generators/html_generator.rb, line 1119
def find_symbol(symbol, method=nil)
res = @context.parent.find_symbol(symbol, method)
if res
res = res.viewer
end
res
end
# File rdoc/generators/html_generator.rb, line 955
def index_name
"#{@context.name} (#{@html_class.name})"
end
Given a sequence of source tokens, mark up the source code to make it look purty.
# File rdoc/generators/html_generator.rb, line 1057
def markup_code(tokens)
src = ""
tokens.each do |t|
next unless t
# p t.class
# style = STYLE_MAP[t.class]
style = case t
when RubyToken::TkCONSTANT then "ruby-constant"
when RubyToken::TkKW then "ruby-keyword kw"
when RubyToken::TkIVAR then "ruby-ivar"
when RubyToken::TkOp then "ruby-operator"
when RubyToken::TkId then "ruby-identifier"
when RubyToken::TkNode then "ruby-node"
when RubyToken::TkCOMMENT then "ruby-comment cmt"
when RubyToken::TkREGEXP then "ruby-regexp re"
when RubyToken::TkSTRING then "ruby-value str"
when RubyToken::TkVal then "ruby-value"
else
nil
end
text = CGI.escapeHTML(t.text)
if style
src << "<span class=\"#{style}\">#{text}</span>"
else
src << text
end
end
add_line_numbers(src) if Options.instance.include_line_numbers
src
end
# File rdoc/generators/html_generator.rb, line 947
def name
@context.name
end
# File rdoc/generators/html_generator.rb, line 1000
def params
# params coming from a call-seq in 'C' will start with the
# method name
p = @context.params
if p !~ /^\w/
p = @context.params.gsub(/\s*\#.*/, '')
p = p.tr("\n", " ").squeeze(" ")
p = "(" + p + ")" unless p[0] == (
if (block = @context.block_params)
# If this method has explicit block parameters, remove any
# explicit &block
p.sub!(/,?\s*&\w+/, '')
block.gsub!(/\s*\#.*/, '')
block = block.tr("\n", " ").squeeze(" ")
if block[0] == (
block.sub!(/^\(/, '').sub!(/\)/, '')
end
p << " {|#{block.strip}| ...}"
end
end
CGI.escapeHTML(p)
end
# File rdoc/generators/html_generator.rb, line 959
def parent_name
if @context.parent.parent
@context.parent.parent.full_name
else
nil
end
end
# File rdoc/generators/html_generator.rb, line 971
def path
if @options.all_one_file
aref
else
@html_class.path + "#" + aref
end
end
# File rdoc/generators/html_generator.rb, line 951
def section
@context.section
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.