From 0dc342de848a642ecce8db697b8fecd83a63e117 Mon Sep 17 00:00:00 2001 From: yugui Date: Mon, 25 Aug 2008 15:02:05 +0000 Subject: added tag v1_9_0_4 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- trunk/lib/rdoc/template.rb | 64 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 trunk/lib/rdoc/template.rb (limited to 'trunk/lib/rdoc/template.rb') diff --git a/trunk/lib/rdoc/template.rb b/trunk/lib/rdoc/template.rb new file mode 100644 index 0000000000..53d0e3ce68 --- /dev/null +++ b/trunk/lib/rdoc/template.rb @@ -0,0 +1,64 @@ +require 'erb' + +module RDoc; end + +## +# 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["blah"] %> +# * !INCLUDE! becomes <%= template_include %> +# * HREF:aref:name becomes <%= href values["aref"], values["name"] %> +# * IF:blah becomes <% if values["blah"] then %> +# * IFNOT:blah becomes <% unless values["blah"] then %> +# * ENDIF:blah becomes <% end %> +# * START:blah becomes <% values["blah"].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. + +class RDoc::TemplatePage + + ## + # Create a new TemplatePage that will use +templates+. + + def initialize(*templates) + @templates = templates + end + + ## + # Returns "#{name}" + + def href(ref, name) + if ref then + "#{name}" + else + name + end + end + + ## + # Process the template using +values+, writing the result to +io+. + + 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 + +end + -- cgit v1.2.3