Parent

Generators::HtmlMethod

Attributes

context[R]
img_url[R]
source_code[R]
src_url[R]

Public Class Methods

all_methods() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 1043
def HtmlMethod.all_methods
    @@all_methods
end
new(context, html_class, options) click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 922
def initialize(context, html_class, options)
    @context    = context
    @html_class = html_class
    @options    = options
    @@m_seq       = @@m_seq.succ
    @m_seq        = @@m_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 = MERBGenerator.gen_url(path, 'source.png')
        #end
    end
    AllReferences.add(name, self)
end
reset() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 918
def HtmlMethod::reset
    @@all_methods = []
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 1047
def <=>(other)
    @context <=> other.context
end
add_line_numbers(src) click to toggle source

we rely on the fact that the first line of a source code listing has

# File xxxxx, line dddd
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 1094
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
aliases() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 1114
def aliases
    @context.aliases
end
aref() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 946
def aref
    @m_seq
end
call_seq() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 990
def call_seq
    cs = @context.call_seq
    if cs
        cs.gsub(/\n/, "<br />\n")
    else
        nil
    end
end
create_source_code_file(code_body) click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 1025
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(name),
            'code'      => code_body,
            'style_url' => style_url(file_path, @options.css),
            'charset'   => @options.charset
        }
        template.write_html_on(f, values)
    end
    file_path
end
description() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 978
def description
    markup(@context.comment)
end
document_self() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 1110
def document_self
    @context.document_self
end
find_symbol(symbol, method=nil) click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 1118
def find_symbol(symbol, method=nil)
    res = @context.parent.find_symbol(symbol, method)
    if res
        res = res.viewer
    end
    res
end
markup_code(tokens) click to toggle source

Given a sequence of source tokens, mark up the source code to make it look purty.

# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 1056
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)
    src
end
name() click to toggle source

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 lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 958
def name
    @context.name
end
params() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 999
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
parent_name() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 966
def parent_name
    if @context.parent.parent
        @context.parent.parent.full_name
    else
        nil
    end
end
path() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 974
def path
    @html_class.path
end
scope() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 950
def scope
    @html_class.full_name
end
section() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 962
def section
    @context.section
end
seq() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 942
def seq
    @m_seq
end
singleton() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 986
def singleton
    @context.singleton
end
visibility() click to toggle source
# File lib/generators/templates/application/merb_stack/doc/rdoc/generators/merb_generator.rb, line 982
def visibility
    @context.visibility
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.