Class: RDoc::TemplatePage
- Inherits:
-
Object
- Object
- RDoc::TemplatePage
- Defined in:
- lib/rdoc/template.rb
Overview
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 %>
-
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.
Instance Method Summary collapse
-
#href(ref, name) ⇒ Object
Returns “<a href="#ref">#name</a>”.
-
#initialize(*templates) ⇒ TemplatePage
constructor
Create a new TemplatePage that will use
templates
. -
#write_html_on(io, values) ⇒ Object
Process the template using
values
, writing the result toio
.
Constructor Details
#initialize(*templates) ⇒ TemplatePage
Create a new TemplatePage that will use templates
.
34 35 36 |
# File 'lib/rdoc/template.rb', line 34 def initialize(*templates) @templates = templates end |
Instance Method Details
#href(ref, name) ⇒ Object
Returns “<a href="#ref">#name</a>”
41 42 43 44 45 46 47 |
# File 'lib/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) ⇒ Object
Process the template using values
, writing the result to io
.
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/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 |