a5e08f7bcc
I installed the rails_xss plugin, for the main purpose of seeing what will break with Rails 3.0 (where the behaviour of the plugin is the default). I think I've fixed everything, but let me know if you see stuff that is HTML-escaped, which shouldn't be. As a side benefit, we now use Erubis, rather than ERB, to render templates. They tell me it's faster ...
416 lines
No EOL
14 KiB
HTML
416 lines
No EOL
14 KiB
HTML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!DOCTYPE html
|
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<title>Module: Erubis::Generator</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
<script type="text/javascript">
|
|
// <![CDATA[
|
|
|
|
function popupCode( url ) {
|
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
}
|
|
|
|
function toggleCode( id ) {
|
|
if ( document.getElementById )
|
|
elem = document.getElementById( id );
|
|
else if ( document.all )
|
|
elem = eval( "document.all." + id );
|
|
else
|
|
return false;
|
|
|
|
elemStyle = elem.style;
|
|
|
|
if ( elemStyle.display != "block" ) {
|
|
elemStyle.display = "block"
|
|
} else {
|
|
elemStyle.display = "none"
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
// Make codeblocks hidden by default
|
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
|
|
// ]]>
|
|
</script>
|
|
|
|
</head>
|
|
<body>
|
|
|
|
|
|
|
|
<div id="classHeader">
|
|
<table class="header-table">
|
|
<tr class="top-aligned-row">
|
|
<td><strong>Module</strong></td>
|
|
<td class="class-name-in-header">Erubis::Generator</td>
|
|
</tr>
|
|
<tr class="top-aligned-row">
|
|
<td><strong>In:</strong></td>
|
|
<td>
|
|
<a href="../../files/erubis/generator_rb.html">
|
|
erubis/generator.rb
|
|
</a>
|
|
<br />
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
</div>
|
|
<!-- banner header -->
|
|
|
|
<div id="bodyContent">
|
|
|
|
|
|
|
|
<div id="contextContent">
|
|
|
|
<div id="description">
|
|
<p>
|
|
code generator, called by <a href="Converter.html">Converter</a> module
|
|
</p>
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<div id="method-list">
|
|
<h3 class="section-bar">Methods</h3>
|
|
|
|
<div class="name-list">
|
|
<a href="#M000019">add_expr_debug</a>
|
|
<a href="#M000018">add_expr_escaped</a>
|
|
<a href="#M000017">add_expr_literal</a>
|
|
<a href="#M000020">add_postamble</a>
|
|
<a href="#M000014">add_preamble</a>
|
|
<a href="#M000016">add_stmt</a>
|
|
<a href="#M000015">add_text</a>
|
|
<a href="#M000012">escape_text</a>
|
|
<a href="#M000013">escaped_expr</a>
|
|
<a href="#M000011">init_generator</a>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<!-- if includes -->
|
|
|
|
<div id="section">
|
|
|
|
|
|
|
|
|
|
|
|
<div id="attribute-list">
|
|
<h3 class="section-bar">Attributes</h3>
|
|
|
|
<div class="name-list">
|
|
<table>
|
|
<tr class="top-aligned-row context-row">
|
|
<td class="context-item-name">escapefunc</td>
|
|
<td class="context-item-value"> [RW] </td>
|
|
<td class="context-item-desc"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- if method_list -->
|
|
<div id="methods">
|
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
|
|
<div id="method-M000019" class="method-detail">
|
|
<a name="M000019"></a>
|
|
|
|
<div class="method-heading">
|
|
<a href="#M000019" class="method-signature">
|
|
<span class="method-name">add_expr_debug</span><span class="method-args">(src, code)</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="method-description">
|
|
<p>
|
|
(abstract) add expression code to src for debug. this is called by
|
|
add_expr().
|
|
</p>
|
|
<p><a class="source-toggle" href="#"
|
|
onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
|
|
<div class="method-source-code" id="M000019-source">
|
|
<pre>
|
|
<span class="ruby-comment cmt"># File erubis/generator.rb, line 72</span>
|
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_expr_debug</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
|
<span class="ruby-identifier">not_implemented</span>
|
|
<span class="ruby-keyword kw">end</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="method-M000018" class="method-detail">
|
|
<a name="M000018"></a>
|
|
|
|
<div class="method-heading">
|
|
<a href="#M000018" class="method-signature">
|
|
<span class="method-name">add_expr_escaped</span><span class="method-args">(src, code)</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="method-description">
|
|
<p>
|
|
(abstract) add escaped expression code to src. this is called by
|
|
add_expr().
|
|
</p>
|
|
<p><a class="source-toggle" href="#"
|
|
onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
|
|
<div class="method-source-code" id="M000018-source">
|
|
<pre>
|
|
<span class="ruby-comment cmt"># File erubis/generator.rb, line 67</span>
|
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_expr_escaped</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
|
<span class="ruby-identifier">not_implemented</span>
|
|
<span class="ruby-keyword kw">end</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="method-M000017" class="method-detail">
|
|
<a name="M000017"></a>
|
|
|
|
<div class="method-heading">
|
|
<a href="#M000017" class="method-signature">
|
|
<span class="method-name">add_expr_literal</span><span class="method-args">(src, code)</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="method-description">
|
|
<p>
|
|
(abstract) add expression literal code to src. this is called by
|
|
add_expr().
|
|
</p>
|
|
<p><a class="source-toggle" href="#"
|
|
onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
|
|
<div class="method-source-code" id="M000017-source">
|
|
<pre>
|
|
<span class="ruby-comment cmt"># File erubis/generator.rb, line 62</span>
|
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_expr_literal</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
|
<span class="ruby-identifier">not_implemented</span>
|
|
<span class="ruby-keyword kw">end</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="method-M000020" class="method-detail">
|
|
<a name="M000020"></a>
|
|
|
|
<div class="method-heading">
|
|
<a href="#M000020" class="method-signature">
|
|
<span class="method-name">add_postamble</span><span class="method-args">(src)</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="method-description">
|
|
<p>
|
|
(abstract) add @postamble to src
|
|
</p>
|
|
<p><a class="source-toggle" href="#"
|
|
onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
|
|
<div class="method-source-code" id="M000020-source">
|
|
<pre>
|
|
<span class="ruby-comment cmt"># File erubis/generator.rb, line 77</span>
|
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_postamble</span>(<span class="ruby-identifier">src</span>)
|
|
<span class="ruby-identifier">not_implemented</span>
|
|
<span class="ruby-keyword kw">end</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="method-M000014" class="method-detail">
|
|
<a name="M000014"></a>
|
|
|
|
<div class="method-heading">
|
|
<a href="#M000014" class="method-signature">
|
|
<span class="method-name">add_preamble</span><span class="method-args">(src)</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="method-description">
|
|
<p>
|
|
(abstract) add @preamble to src
|
|
</p>
|
|
<p><a class="source-toggle" href="#"
|
|
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
|
<div class="method-source-code" id="M000014-source">
|
|
<pre>
|
|
<span class="ruby-comment cmt"># File erubis/generator.rb, line 47</span>
|
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_preamble</span>(<span class="ruby-identifier">src</span>)
|
|
<span class="ruby-identifier">not_implemented</span>
|
|
<span class="ruby-keyword kw">end</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="method-M000016" class="method-detail">
|
|
<a name="M000016"></a>
|
|
|
|
<div class="method-heading">
|
|
<a href="#M000016" class="method-signature">
|
|
<span class="method-name">add_stmt</span><span class="method-args">(src, code)</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="method-description">
|
|
<p>
|
|
(abstract) add statement code to src
|
|
</p>
|
|
<p><a class="source-toggle" href="#"
|
|
onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
|
|
<div class="method-source-code" id="M000016-source">
|
|
<pre>
|
|
<span class="ruby-comment cmt"># File erubis/generator.rb, line 57</span>
|
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_stmt</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
|
<span class="ruby-identifier">not_implemented</span>
|
|
<span class="ruby-keyword kw">end</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="method-M000015" class="method-detail">
|
|
<a name="M000015"></a>
|
|
|
|
<div class="method-heading">
|
|
<a href="#M000015" class="method-signature">
|
|
<span class="method-name">add_text</span><span class="method-args">(src, text)</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="method-description">
|
|
<p>
|
|
(abstract) add text string to src
|
|
</p>
|
|
<p><a class="source-toggle" href="#"
|
|
onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
|
|
<div class="method-source-code" id="M000015-source">
|
|
<pre>
|
|
<span class="ruby-comment cmt"># File erubis/generator.rb, line 52</span>
|
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">text</span>)
|
|
<span class="ruby-identifier">not_implemented</span>
|
|
<span class="ruby-keyword kw">end</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="method-M000012" class="method-detail">
|
|
<a name="M000012"></a>
|
|
|
|
<div class="method-heading">
|
|
<a href="#M000012" class="method-signature">
|
|
<span class="method-name">escape_text</span><span class="method-args">(text)</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="method-description">
|
|
<p>
|
|
(abstract) escape text string
|
|
</p>
|
|
<p>
|
|
ex.
|
|
</p>
|
|
<pre>
|
|
def escape_text(text)
|
|
return text.dump
|
|
# or return "'" + text.gsub(/['\\]/, '\\\\\&') + "'"
|
|
end
|
|
</pre>
|
|
<p><a class="source-toggle" href="#"
|
|
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
|
<div class="method-source-code" id="M000012-source">
|
|
<pre>
|
|
<span class="ruby-comment cmt"># File erubis/generator.rb, line 36</span>
|
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escape_text</span>(<span class="ruby-identifier">text</span>)
|
|
<span class="ruby-identifier">not_implemented</span>
|
|
<span class="ruby-keyword kw">end</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="method-M000013" class="method-detail">
|
|
<a name="M000013"></a>
|
|
|
|
<div class="method-heading">
|
|
<a href="#M000013" class="method-signature">
|
|
<span class="method-name">escaped_expr</span><span class="method-args">(code)</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="method-description">
|
|
<p>
|
|
return escaped expression code (ex. ‘h(…)’ or
|
|
‘htmlspecialchars(…)’)
|
|
</p>
|
|
<p><a class="source-toggle" href="#"
|
|
onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
|
|
<div class="method-source-code" id="M000013-source">
|
|
<pre>
|
|
<span class="ruby-comment cmt"># File erubis/generator.rb, line 41</span>
|
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escaped_expr</span>(<span class="ruby-identifier">code</span>)
|
|
<span class="ruby-identifier">code</span>.<span class="ruby-identifier">strip!</span>
|
|
<span class="ruby-keyword kw">return</span> <span class="ruby-node">"#{@escapefunc}(#{code})"</span>
|
|
<span class="ruby-keyword kw">end</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="method-M000011" class="method-detail">
|
|
<a name="M000011"></a>
|
|
|
|
<div class="method-heading">
|
|
<a href="#M000011" class="method-signature">
|
|
<span class="method-name">init_generator</span><span class="method-args">(properties={})</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="method-description">
|
|
<p><a class="source-toggle" href="#"
|
|
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
|
<div class="method-source-code" id="M000011-source">
|
|
<pre>
|
|
<span class="ruby-comment cmt"># File erubis/generator.rb, line 24</span>
|
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_generator</span>(<span class="ruby-identifier">properties</span>={})
|
|
<span class="ruby-ivar">@escapefunc</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:escapefunc</span>]
|
|
<span class="ruby-keyword kw">end</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div id="validator-badges">
|
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
</div>
|
|
|
|
</body>
|
|
</html> |