In Files

  • rdoc/template.rb

Parent

Files

Class/Module Index [+]

Quicksearch

RDoc::TemplatePage

An ERb wrapper that allows nesting of one ERb template inside another.

This TemplatePage operates similarly to RDoc 1.x's TemplatePage, but uses ERb instead of a custom template language.

Converting from a RDoc 1.x template to an RDoc 2.x template is fairly easy.

  • %blah% becomes <%= values %>

  • !INCLUDE! becomes <%= template_include %>

  • HREF:aref:name becomes <%= href values, values %>

  • IF:blah becomes <% if values then %>

  • IFNOT:blah becomes <% unless values then %>

  • ENDIF:blah becomes <% end %>

  • START:blah becomes <% values.each do |blah| %>

  • END:blah becomes <% end %>

To make nested loops easier to convert, start by converting START statements to:

<% values["blah"].each do |blah| $stderr.puts blah.keys %>

So you can see what is being used inside which loop.

Public Class Methods

new(*templates) click to toggle source

Create a new TemplatePage that will use templates.

 
               # File rdoc/template.rb, line 34
def initialize(*templates)
  @templates = templates
end
            

Public Instance Methods

href(ref, name) click to toggle source

Returns “<a href="#{ref}">#{name}</a>”

 
               # File rdoc/template.rb, line 41
def href(ref, name)
  if ref then
    "<a href=\"#{ref}\">#{name}</a>"
  else
    name
  end
end
            
write_html_on(io, values) click to toggle source

Process the template using values, writing the result to io.

 
               # File rdoc/template.rb, line 52
def write_html_on(io, values)
  b = binding
  template_include = ""

  @templates.reverse_each do |template|
    template_include = ERB.new(template).result b
  end

  io.write template_include
end