erubis 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +45 -18
- data/README.txt +80 -0
- data/benchmark/erubybench-lib.rb +189 -0
- data/benchmark/erubybench.rb +364 -0
- data/benchmark/erubybench.rhtml +61 -0
- data/benchmark/erubybench.yaml +61 -0
- data/bin/erubis +4 -180
- data/contrib/erubis +2297 -0
- data/contrib/inline-require +151 -0
- data/doc-api/classes/Erubis.html +236 -0
- data/doc-api/classes/Erubis/ArrayBufferEnhancer.html +175 -0
- data/doc-api/classes/Erubis/ArrayBufferEruby.html +120 -0
- data/doc-api/classes/Erubis/ArrayEnhancer.html +174 -0
- data/doc-api/classes/Erubis/ArrayEruby.html +120 -0
- data/doc-api/classes/Erubis/BiPatternEnhancer.html +212 -0
- data/doc-api/classes/Erubis/BiPatternEruby.html +120 -0
- data/doc-api/classes/Erubis/CommandOptionError.html +113 -0
- data/doc-api/classes/Erubis/Context.html +249 -0
- data/doc-api/classes/Erubis/Ec.html +399 -0
- data/doc-api/classes/Erubis/Ejava.html +366 -0
- data/doc-api/classes/Erubis/Ejavascript.html +390 -0
- data/doc-api/classes/Erubis/Engine.html +711 -0
- data/doc-api/classes/Erubis/Eperl.html +350 -0
- data/doc-api/classes/Erubis/Ephp.html +308 -0
- data/doc-api/classes/Erubis/ErubisError.html +117 -0
- data/doc-api/classes/Erubis/Eruby.html +310 -0
- data/doc-api/classes/Erubis/EscapeEnhancer.html +167 -0
- data/doc-api/classes/Erubis/EscapedEc.html +120 -0
- data/doc-api/classes/Erubis/EscapedEjava.html +120 -0
- data/doc-api/classes/Erubis/EscapedEjavascript.html +120 -0
- data/doc-api/classes/Erubis/EscapedEperl.html +120 -0
- data/doc-api/classes/Erubis/EscapedEphp.html +120 -0
- data/doc-api/classes/Erubis/EscapedEruby.html +127 -0
- data/doc-api/classes/Erubis/EscapedEscheme.html +120 -0
- data/doc-api/classes/Erubis/Escheme.html +389 -0
- data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +264 -0
- data/doc-api/classes/Erubis/HeaderFooterEruby.html +120 -0
- data/doc-api/classes/Erubis/Main.html +318 -0
- data/doc-api/classes/Erubis/NoTextEnhancer.html +159 -0
- data/doc-api/classes/Erubis/NoTextEruby.html +120 -0
- data/doc-api/classes/Erubis/OptimizedEruby.html +445 -0
- data/doc-api/classes/Erubis/OptimizedXmlEruby.html +163 -0
- data/doc-api/classes/Erubis/PercentLineEnhancer.html +174 -0
- data/doc-api/classes/Erubis/PercentLineEruby.html +120 -0
- data/doc-api/classes/Erubis/PrintEnabledEnhancer.html +212 -0
- data/doc-api/classes/Erubis/PrintEnabledEruby.html +120 -0
- data/doc-api/classes/Erubis/PrintOutEnhancer.html +244 -0
- data/doc-api/classes/Erubis/PrintOutEruby.html +120 -0
- data/doc-api/classes/Erubis/PrintOutSimplifiedEruby.html +121 -0
- data/doc-api/classes/Erubis/SimplifiedEruby.html +120 -0
- data/doc-api/classes/Erubis/SimplifyEnhancer.html +185 -0
- data/doc-api/classes/Erubis/StdoutEnhancer.html +173 -0
- data/doc-api/classes/Erubis/StdoutEruby.html +120 -0
- data/doc-api/classes/Erubis/StdoutSimplifiedEruby.html +121 -0
- data/doc-api/classes/Erubis/StringBufferEnhancer.html +174 -0
- data/doc-api/classes/Erubis/StringBufferEruby.html +120 -0
- data/doc-api/classes/Erubis/StringIOEruby.html +120 -0
- data/doc-api/classes/Erubis/TinyEruby.html +305 -0
- data/doc-api/classes/Erubis/XmlEruby.html +130 -0
- data/doc-api/classes/Erubis/XmlHelper.html +193 -0
- data/doc-api/created.rid +1 -0
- data/doc-api/files/__/README_txt.html +214 -0
- data/doc-api/files/erubis/engine/ec_rb.html +115 -0
- data/doc-api/files/erubis/engine/ejava_rb.html +115 -0
- data/doc-api/files/erubis/engine/ejavascript_rb.html +115 -0
- data/doc-api/files/erubis/engine/enhanced_rb.html +115 -0
- data/doc-api/files/erubis/engine/eperl_rb.html +115 -0
- data/doc-api/files/erubis/engine/ephp_rb.html +115 -0
- data/doc-api/files/erubis/engine/eruby_rb.html +115 -0
- data/doc-api/files/erubis/engine/escheme_rb.html +115 -0
- data/doc-api/files/erubis/engine/optimized_rb.html +114 -0
- data/doc-api/files/erubis/engine_rb.html +114 -0
- data/doc-api/files/erubis/enhancer_rb.html +114 -0
- data/doc-api/files/erubis/helper_rb.html +107 -0
- data/doc-api/files/erubis/local-setting_rb.html +107 -0
- data/doc-api/files/erubis/main_rb.html +125 -0
- data/doc-api/files/erubis/tiny_rb.html +107 -0
- data/doc-api/files/erubis_rb.html +118 -0
- data/doc-api/fr_class_index.html +77 -0
- data/doc-api/fr_file_index.html +43 -0
- data/doc-api/fr_method_index.html +157 -0
- data/doc-api/index.html +24 -0
- data/doc-api/rdoc-style.css +208 -0
- data/doc/users-guide.html +1507 -375
- data/examples/Makefile +53 -0
- data/examples/example.ec +24 -0
- data/examples/example.ejava +41 -0
- data/examples/example.ejavascript +16 -0
- data/examples/example.eperl +16 -0
- data/examples/example.ephp +17 -0
- data/examples/example.eruby +15 -0
- data/examples/example.escheme +26 -0
- data/lib/erubis.rb +37 -269
- data/lib/erubis/engine.rb +260 -0
- data/lib/erubis/engine/ec.rb +106 -0
- data/lib/erubis/engine/ejava.rb +101 -0
- data/lib/erubis/engine/ejavascript.rb +104 -0
- data/lib/erubis/engine/enhanced.rb +102 -0
- data/lib/erubis/engine/eperl.rb +83 -0
- data/lib/erubis/engine/ephp.rb +84 -0
- data/lib/erubis/engine/eruby.rb +91 -0
- data/lib/erubis/engine/escheme.rb +96 -0
- data/lib/erubis/engine/optimized.rb +114 -0
- data/lib/erubis/enhancer.rb +487 -0
- data/lib/erubis/helper.rb +53 -0
- data/lib/erubis/local-setting.rb +10 -0
- data/lib/erubis/main.rb +368 -0
- data/lib/erubis/tiny.rb +65 -0
- data/test/assert-text-equal.rb +45 -0
- data/test/test-bin.rb +222 -45
- data/test/test-engines.rb +343 -0
- data/test/test-erubis.rb +836 -501
- data/test/test.rb +27 -0
- data/test/testutil.rb +86 -0
- metadata +131 -8
- data/README +0 -50
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Class: Erubis::Ejavascript</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Class</strong></td>
|
|
53
|
+
<td class="class-name-in-header">Erubis::Ejavascript</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../files/erubis/engine/ejavascript_rb.html">
|
|
59
|
+
erubis/engine/ejavascript.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
<tr class="top-aligned-row">
|
|
66
|
+
<td><strong>Parent:</strong></td>
|
|
67
|
+
<td>
|
|
68
|
+
<a href="Engine.html">
|
|
69
|
+
Engine
|
|
70
|
+
</a>
|
|
71
|
+
</td>
|
|
72
|
+
</tr>
|
|
73
|
+
</table>
|
|
74
|
+
</div>
|
|
75
|
+
<!-- banner header -->
|
|
76
|
+
|
|
77
|
+
<div id="bodyContent">
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
<div id="contextContent">
|
|
82
|
+
|
|
83
|
+
<div id="description">
|
|
84
|
+
<p>
|
|
85
|
+
engine for JavaScript
|
|
86
|
+
</p>
|
|
87
|
+
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
<div id="method-list">
|
|
94
|
+
<h3 class="section-bar">Methods</h3>
|
|
95
|
+
|
|
96
|
+
<div class="name-list">
|
|
97
|
+
<a href="#M000036">add_expr_debug</a>
|
|
98
|
+
<a href="#M000035">add_expr_escaped</a>
|
|
99
|
+
<a href="#M000034">add_expr_literal</a>
|
|
100
|
+
<a href="#M000031">add_indent</a>
|
|
101
|
+
<a href="#M000037">add_postamble</a>
|
|
102
|
+
<a href="#M000029">add_preamble</a>
|
|
103
|
+
<a href="#M000033">add_stmt</a>
|
|
104
|
+
<a href="#M000032">add_text</a>
|
|
105
|
+
<a href="#M000030">escape_text</a>
|
|
106
|
+
<a href="#M000028">new</a>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
<!-- if includes -->
|
|
114
|
+
|
|
115
|
+
<div id="section">
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
<!-- if method_list -->
|
|
125
|
+
<div id="methods">
|
|
126
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
127
|
+
|
|
128
|
+
<div id="method-M000028" class="method-detail">
|
|
129
|
+
<a name="M000028"></a>
|
|
130
|
+
|
|
131
|
+
<div class="method-heading">
|
|
132
|
+
<a href="#M000028" class="method-signature">
|
|
133
|
+
<span class="method-name">new</span><span class="method-args">(input, properties={})</span>
|
|
134
|
+
</a>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<div class="method-description">
|
|
138
|
+
<p><a class="source-toggle" href="#"
|
|
139
|
+
onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
|
|
140
|
+
<div class="method-source-code" id="M000028-source">
|
|
141
|
+
<pre>
|
|
142
|
+
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 26</span>
|
|
143
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">properties</span>={})
|
|
144
|
+
<span class="ruby-ivar">@indent</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:indent</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>
|
|
145
|
+
<span class="ruby-ivar">@buf</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:out</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'_buf'</span>
|
|
146
|
+
<span class="ruby-comment cmt">#@bufclass = properties[:outclass] || 'StringBuffer'</span>
|
|
147
|
+
<span class="ruby-keyword kw">super</span>
|
|
148
|
+
<span class="ruby-keyword kw">end</span>
|
|
149
|
+
</pre>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
|
|
154
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
155
|
+
|
|
156
|
+
<div id="method-M000036" class="method-detail">
|
|
157
|
+
<a name="M000036"></a>
|
|
158
|
+
|
|
159
|
+
<div class="method-heading">
|
|
160
|
+
<a href="#M000036" class="method-signature">
|
|
161
|
+
<span class="method-name">add_expr_debug</span><span class="method-args">(src, code)</span>
|
|
162
|
+
</a>
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
<div class="method-description">
|
|
166
|
+
<p><a class="source-toggle" href="#"
|
|
167
|
+
onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
|
|
168
|
+
<div class="method-source-code" id="M000036-source">
|
|
169
|
+
<pre>
|
|
170
|
+
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 80</span>
|
|
171
|
+
<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>)
|
|
172
|
+
<span class="ruby-identifier">add_indent</span>(<span class="ruby-identifier">src</span>, <span class="ruby-ivar">@indent</span>)
|
|
173
|
+
<span class="ruby-identifier">code</span>.<span class="ruby-identifier">strip!</span>
|
|
174
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"alert(\"*** debug: #{code}=\"+(#{code}));"</span>
|
|
175
|
+
<span class="ruby-keyword kw">end</span>
|
|
176
|
+
</pre>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<div id="method-M000035" class="method-detail">
|
|
182
|
+
<a name="M000035"></a>
|
|
183
|
+
|
|
184
|
+
<div class="method-heading">
|
|
185
|
+
<a href="#M000035" class="method-signature">
|
|
186
|
+
<span class="method-name">add_expr_escaped</span><span class="method-args">(src, code)</span>
|
|
187
|
+
</a>
|
|
188
|
+
</div>
|
|
189
|
+
|
|
190
|
+
<div class="method-description">
|
|
191
|
+
<p><a class="source-toggle" href="#"
|
|
192
|
+
onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
|
|
193
|
+
<div class="method-source-code" id="M000035-source">
|
|
194
|
+
<pre>
|
|
195
|
+
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 75</span>
|
|
196
|
+
<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>)
|
|
197
|
+
<span class="ruby-identifier">add_indent</span>(<span class="ruby-identifier">src</span>, <span class="ruby-ivar">@indent</span>)
|
|
198
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@buf</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'.push('</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">escaped_expr</span>(<span class="ruby-identifier">code</span>) <span class="ruby-operator"><<</span> <span class="ruby-value str">');'</span>
|
|
199
|
+
<span class="ruby-keyword kw">end</span>
|
|
200
|
+
</pre>
|
|
201
|
+
</div>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
|
|
205
|
+
<div id="method-M000034" class="method-detail">
|
|
206
|
+
<a name="M000034"></a>
|
|
207
|
+
|
|
208
|
+
<div class="method-heading">
|
|
209
|
+
<a href="#M000034" class="method-signature">
|
|
210
|
+
<span class="method-name">add_expr_literal</span><span class="method-args">(src, code)</span>
|
|
211
|
+
</a>
|
|
212
|
+
</div>
|
|
213
|
+
|
|
214
|
+
<div class="method-description">
|
|
215
|
+
<p><a class="source-toggle" href="#"
|
|
216
|
+
onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
|
|
217
|
+
<div class="method-source-code" id="M000034-source">
|
|
218
|
+
<pre>
|
|
219
|
+
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 70</span>
|
|
220
|
+
<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>)
|
|
221
|
+
<span class="ruby-identifier">add_indent</span>(<span class="ruby-identifier">src</span>, <span class="ruby-ivar">@indent</span>)
|
|
222
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@buf</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'.push('</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">strip</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">');'</span>
|
|
223
|
+
<span class="ruby-keyword kw">end</span>
|
|
224
|
+
</pre>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
</div>
|
|
228
|
+
|
|
229
|
+
<div id="method-M000031" class="method-detail">
|
|
230
|
+
<a name="M000031"></a>
|
|
231
|
+
|
|
232
|
+
<div class="method-heading">
|
|
233
|
+
<a href="#M000031" class="method-signature">
|
|
234
|
+
<span class="method-name">add_indent</span><span class="method-args">(src, indent)</span>
|
|
235
|
+
</a>
|
|
236
|
+
</div>
|
|
237
|
+
|
|
238
|
+
<div class="method-description">
|
|
239
|
+
<p><a class="source-toggle" href="#"
|
|
240
|
+
onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
|
|
241
|
+
<div class="method-source-code" id="M000031-source">
|
|
242
|
+
<pre>
|
|
243
|
+
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 49</span>
|
|
244
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_indent</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">indent</span>)
|
|
245
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">src</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">src</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?\n</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">indent</span> <span class="ruby-operator">:</span> <span class="ruby-value str">' '</span>)
|
|
246
|
+
<span class="ruby-keyword kw">end</span>
|
|
247
|
+
</pre>
|
|
248
|
+
</div>
|
|
249
|
+
</div>
|
|
250
|
+
</div>
|
|
251
|
+
|
|
252
|
+
<div id="method-M000037" class="method-detail">
|
|
253
|
+
<a name="M000037"></a>
|
|
254
|
+
|
|
255
|
+
<div class="method-heading">
|
|
256
|
+
<a href="#M000037" class="method-signature">
|
|
257
|
+
<span class="method-name">add_postamble</span><span class="method-args">(src)</span>
|
|
258
|
+
</a>
|
|
259
|
+
</div>
|
|
260
|
+
|
|
261
|
+
<div class="method-description">
|
|
262
|
+
<p><a class="source-toggle" href="#"
|
|
263
|
+
onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
|
|
264
|
+
<div class="method-source-code" id="M000037-source">
|
|
265
|
+
<pre>
|
|
266
|
+
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 86</span>
|
|
267
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_postamble</span>(<span class="ruby-identifier">src</span>)
|
|
268
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">src</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?;</span>
|
|
269
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@indent</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'document.write('</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@buf</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">".join(\"\"));\n"</span>
|
|
270
|
+
<span class="ruby-keyword kw">end</span>
|
|
271
|
+
</pre>
|
|
272
|
+
</div>
|
|
273
|
+
</div>
|
|
274
|
+
</div>
|
|
275
|
+
|
|
276
|
+
<div id="method-M000029" class="method-detail">
|
|
277
|
+
<a name="M000029"></a>
|
|
278
|
+
|
|
279
|
+
<div class="method-heading">
|
|
280
|
+
<a href="#M000029" class="method-signature">
|
|
281
|
+
<span class="method-name">add_preamble</span><span class="method-args">(src)</span>
|
|
282
|
+
</a>
|
|
283
|
+
</div>
|
|
284
|
+
|
|
285
|
+
<div class="method-description">
|
|
286
|
+
<p><a class="source-toggle" href="#"
|
|
287
|
+
onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
|
|
288
|
+
<div class="method-source-code" id="M000029-source">
|
|
289
|
+
<pre>
|
|
290
|
+
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 33</span>
|
|
291
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_preamble</span>(<span class="ruby-identifier">src</span>)
|
|
292
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{@indent}var #{@buf} = [];"</span>
|
|
293
|
+
<span class="ruby-keyword kw">end</span>
|
|
294
|
+
</pre>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
</div>
|
|
298
|
+
|
|
299
|
+
<div id="method-M000033" class="method-detail">
|
|
300
|
+
<a name="M000033"></a>
|
|
301
|
+
|
|
302
|
+
<div class="method-heading">
|
|
303
|
+
<a href="#M000033" class="method-signature">
|
|
304
|
+
<span class="method-name">add_stmt</span><span class="method-args">(src, code)</span>
|
|
305
|
+
</a>
|
|
306
|
+
</div>
|
|
307
|
+
|
|
308
|
+
<div class="method-description">
|
|
309
|
+
<p><a class="source-toggle" href="#"
|
|
310
|
+
onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
|
|
311
|
+
<div class="method-source-code" id="M000033-source">
|
|
312
|
+
<pre>
|
|
313
|
+
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 66</span>
|
|
314
|
+
<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>)
|
|
315
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">code</span>
|
|
316
|
+
<span class="ruby-keyword kw">end</span>
|
|
317
|
+
</pre>
|
|
318
|
+
</div>
|
|
319
|
+
</div>
|
|
320
|
+
</div>
|
|
321
|
+
|
|
322
|
+
<div id="method-M000032" class="method-detail">
|
|
323
|
+
<a name="M000032"></a>
|
|
324
|
+
|
|
325
|
+
<div class="method-heading">
|
|
326
|
+
<a href="#M000032" class="method-signature">
|
|
327
|
+
<span class="method-name">add_text</span><span class="method-args">(src, text)</span>
|
|
328
|
+
</a>
|
|
329
|
+
</div>
|
|
330
|
+
|
|
331
|
+
<div class="method-description">
|
|
332
|
+
<p><a class="source-toggle" href="#"
|
|
333
|
+
onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
|
|
334
|
+
<div class="method-source-code" id="M000032-source">
|
|
335
|
+
<pre>
|
|
336
|
+
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 53</span>
|
|
337
|
+
<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>)
|
|
338
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
|
|
339
|
+
<span class="ruby-identifier">add_indent</span>(<span class="ruby-identifier">src</span>, <span class="ruby-ivar">@indent</span>)
|
|
340
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@buf</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'.push("'</span>
|
|
341
|
+
<span class="ruby-identifier">s</span> = <span class="ruby-identifier">escape_text</span>(<span class="ruby-identifier">text</span>)
|
|
342
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?\n</span>
|
|
343
|
+
<span class="ruby-identifier">s</span>[<span class="ruby-value">-2</span>, <span class="ruby-value">2</span>] = <span class="ruby-value str">''</span>
|
|
344
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\");\n"</span>
|
|
345
|
+
<span class="ruby-keyword kw">else</span>
|
|
346
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\");"</span>
|
|
347
|
+
<span class="ruby-keyword kw">end</span>
|
|
348
|
+
<span class="ruby-keyword kw">end</span>
|
|
349
|
+
</pre>
|
|
350
|
+
</div>
|
|
351
|
+
</div>
|
|
352
|
+
</div>
|
|
353
|
+
|
|
354
|
+
<div id="method-M000030" class="method-detail">
|
|
355
|
+
<a name="M000030"></a>
|
|
356
|
+
|
|
357
|
+
<div class="method-heading">
|
|
358
|
+
<a href="#M000030" class="method-signature">
|
|
359
|
+
<span class="method-name">escape_text</span><span class="method-args">(text)</span>
|
|
360
|
+
</a>
|
|
361
|
+
</div>
|
|
362
|
+
|
|
363
|
+
<div class="method-description">
|
|
364
|
+
<p><a class="source-toggle" href="#"
|
|
365
|
+
onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
|
|
366
|
+
<div class="method-source-code" id="M000030-source">
|
|
367
|
+
<pre>
|
|
368
|
+
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 37</span>
|
|
369
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escape_text</span>(<span class="ruby-identifier">text</span>)
|
|
370
|
+
<span class="ruby-ivar">@@table_</span> <span class="ruby-operator">||=</span> { <span class="ruby-value str">"\r"</span>=<span class="ruby-operator">></span><span class="ruby-value str">"\\r"</span>, <span class="ruby-value str">"\n"</span>=<span class="ruby-operator">></span><span class="ruby-value str">"\\n\\\n"</span>, <span class="ruby-value str">"\t"</span>=<span class="ruby-operator">></span><span class="ruby-value str">"\\t"</span>, <span class="ruby-value str">'"'</span>=<span class="ruby-operator">></span><span class="ruby-value str">'\\"'</span>, <span class="ruby-value str">"\\"</span>=<span class="ruby-operator">></span><span class="ruby-value str">"\\\\"</span> }
|
|
371
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/[\r\n\t"\\]/</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@@table_</span>[<span class="ruby-identifier">m</span>] } <span class="ruby-operator">||</span> <span class="ruby-identifier">text</span>
|
|
372
|
+
<span class="ruby-keyword kw">end</span>
|
|
373
|
+
</pre>
|
|
374
|
+
</div>
|
|
375
|
+
</div>
|
|
376
|
+
</div>
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
</div>
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
</div>
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
<div id="validator-badges">
|
|
386
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
387
|
+
</div>
|
|
388
|
+
|
|
389
|
+
</body>
|
|
390
|
+
</html>
|
|
@@ -0,0 +1,711 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Class: Erubis::Engine</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Class</strong></td>
|
|
53
|
+
<td class="class-name-in-header">Erubis::Engine</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../files/erubis/engine_rb.html">
|
|
59
|
+
erubis/engine.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
<tr class="top-aligned-row">
|
|
66
|
+
<td><strong>Parent:</strong></td>
|
|
67
|
+
<td>
|
|
68
|
+
Object
|
|
69
|
+
</td>
|
|
70
|
+
</tr>
|
|
71
|
+
</table>
|
|
72
|
+
</div>
|
|
73
|
+
<!-- banner header -->
|
|
74
|
+
|
|
75
|
+
<div id="bodyContent">
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<div id="contextContent">
|
|
80
|
+
|
|
81
|
+
<div id="description">
|
|
82
|
+
<dl>
|
|
83
|
+
<dt>abstract</dt><dd>base engine class
|
|
84
|
+
|
|
85
|
+
</dd>
|
|
86
|
+
</dl>
|
|
87
|
+
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
<div id="method-list">
|
|
94
|
+
<h3 class="section-bar">Methods</h3>
|
|
95
|
+
|
|
96
|
+
<div class="name-list">
|
|
97
|
+
<a href="#M000071">add_expr</a>
|
|
98
|
+
<a href="#M000074">add_expr_debug</a>
|
|
99
|
+
<a href="#M000073">add_expr_escaped</a>
|
|
100
|
+
<a href="#M000072">add_expr_literal</a>
|
|
101
|
+
<a href="#M000075">add_postamble</a>
|
|
102
|
+
<a href="#M000068">add_preamble</a>
|
|
103
|
+
<a href="#M000070">add_stmt</a>
|
|
104
|
+
<a href="#M000069">add_text</a>
|
|
105
|
+
<a href="#M000064">compile</a>
|
|
106
|
+
<a href="#M000065">compile!</a>
|
|
107
|
+
<a href="#M000066">escape_text</a>
|
|
108
|
+
<a href="#M000067">escaped_expr</a>
|
|
109
|
+
<a href="#M000062">evaluate</a>
|
|
110
|
+
<a href="#M000060">load_file</a>
|
|
111
|
+
<a href="#M000059">new</a>
|
|
112
|
+
<a href="#M000063">pattern_regexp</a>
|
|
113
|
+
<a href="#M000061">result</a>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
<!-- if includes -->
|
|
121
|
+
|
|
122
|
+
<div id="section">
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
<div id="constants-list">
|
|
126
|
+
<h3 class="section-bar">Constants</h3>
|
|
127
|
+
|
|
128
|
+
<div class="name-list">
|
|
129
|
+
<table summary="Constants">
|
|
130
|
+
<tr class="top-aligned-row context-row">
|
|
131
|
+
<td class="context-item-name">DEFAULT_REGEXP</td>
|
|
132
|
+
<td>=</td>
|
|
133
|
+
<td class="context-item-value">/(.*?)(^[ \t]*)?<%(=+|\#)?(.*?)-?%>([ \t]*\r?\n)?/m</td>
|
|
134
|
+
</tr>
|
|
135
|
+
</table>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
<div id="attribute-list">
|
|
142
|
+
<h3 class="section-bar">Attributes</h3>
|
|
143
|
+
|
|
144
|
+
<div class="name-list">
|
|
145
|
+
<table>
|
|
146
|
+
<tr class="top-aligned-row context-row">
|
|
147
|
+
<td class="context-item-name">filename</td>
|
|
148
|
+
<td class="context-item-value"> [RW] </td>
|
|
149
|
+
<td class="context-item-desc"></td>
|
|
150
|
+
</tr>
|
|
151
|
+
<tr class="top-aligned-row context-row">
|
|
152
|
+
<td class="context-item-name">src</td>
|
|
153
|
+
<td class="context-item-value"> [R] </td>
|
|
154
|
+
<td class="context-item-desc"></td>
|
|
155
|
+
</tr>
|
|
156
|
+
</table>
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
<!-- if method_list -->
|
|
163
|
+
<div id="methods">
|
|
164
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
165
|
+
|
|
166
|
+
<div id="method-M000060" class="method-detail">
|
|
167
|
+
<a name="M000060"></a>
|
|
168
|
+
|
|
169
|
+
<div class="method-heading">
|
|
170
|
+
<a href="#M000060" class="method-signature">
|
|
171
|
+
<span class="method-name">load_file</span><span class="method-args">(filename, properties={})</span>
|
|
172
|
+
</a>
|
|
173
|
+
</div>
|
|
174
|
+
|
|
175
|
+
<div class="method-description">
|
|
176
|
+
<p>
|
|
177
|
+
load file and create engine object
|
|
178
|
+
</p>
|
|
179
|
+
<p><a class="source-toggle" href="#"
|
|
180
|
+
onclick="toggleCode('M000060-source');return false;">[Source]</a></p>
|
|
181
|
+
<div class="method-source-code" id="M000060-source">
|
|
182
|
+
<pre>
|
|
183
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 93</span>
|
|
184
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">load_file</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">properties</span>={})
|
|
185
|
+
<span class="ruby-identifier">input</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'rb'</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span> }
|
|
186
|
+
<span class="ruby-identifier">input</span>.<span class="ruby-identifier">untaint</span> <span class="ruby-comment cmt"># is it ok?</span>
|
|
187
|
+
<span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:filename</span>] = <span class="ruby-identifier">filename</span>
|
|
188
|
+
<span class="ruby-identifier">engine</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">properties</span>)
|
|
189
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">engine</span>
|
|
190
|
+
<span class="ruby-keyword kw">end</span>
|
|
191
|
+
</pre>
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<div id="method-M000059" class="method-detail">
|
|
197
|
+
<a name="M000059"></a>
|
|
198
|
+
|
|
199
|
+
<div class="method-heading">
|
|
200
|
+
<a href="#M000059" class="method-signature">
|
|
201
|
+
<span class="method-name">new</span><span class="method-args">(input, properties={})</span>
|
|
202
|
+
</a>
|
|
203
|
+
</div>
|
|
204
|
+
|
|
205
|
+
<div class="method-description">
|
|
206
|
+
<p><a class="source-toggle" href="#"
|
|
207
|
+
onclick="toggleCode('M000059-source');return false;">[Source]</a></p>
|
|
208
|
+
<div class="method-source-code" id="M000059-source">
|
|
209
|
+
<pre>
|
|
210
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 79</span>
|
|
211
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">properties</span>={})
|
|
212
|
+
<span class="ruby-comment cmt">#@input = input</span>
|
|
213
|
+
<span class="ruby-ivar">@pattern</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:pattern</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'<% %>'</span>
|
|
214
|
+
<span class="ruby-ivar">@filename</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:filename</span>]
|
|
215
|
+
<span class="ruby-ivar">@trim</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:trim</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">false</span>
|
|
216
|
+
<span class="ruby-ivar">@preamble</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:preamble</span>]
|
|
217
|
+
<span class="ruby-ivar">@postamble</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:postamble</span>]
|
|
218
|
+
<span class="ruby-ivar">@escape</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:escape</span>]
|
|
219
|
+
<span class="ruby-ivar">@src</span> = <span class="ruby-identifier">compile</span>(<span class="ruby-identifier">input</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">input</span>
|
|
220
|
+
<span class="ruby-keyword kw">end</span>
|
|
221
|
+
</pre>
|
|
222
|
+
</div>
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
|
|
226
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
227
|
+
|
|
228
|
+
<div id="method-M000064" class="method-detail">
|
|
229
|
+
<a name="M000064"></a>
|
|
230
|
+
|
|
231
|
+
<div class="method-heading">
|
|
232
|
+
<a href="#M000064" class="method-signature">
|
|
233
|
+
<span class="method-name">compile</span><span class="method-args">(input)</span>
|
|
234
|
+
</a>
|
|
235
|
+
</div>
|
|
236
|
+
|
|
237
|
+
<div class="method-description">
|
|
238
|
+
<p>
|
|
239
|
+
compile input string into target language
|
|
240
|
+
</p>
|
|
241
|
+
<p><a class="source-toggle" href="#"
|
|
242
|
+
onclick="toggleCode('M000064-source');return false;">[Source]</a></p>
|
|
243
|
+
<div class="method-source-code" id="M000064-source">
|
|
244
|
+
<pre>
|
|
245
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 132</span>
|
|
246
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">compile</span>(<span class="ruby-identifier">input</span>)
|
|
247
|
+
<span class="ruby-identifier">src</span> = <span class="ruby-value str">""</span>
|
|
248
|
+
<span class="ruby-ivar">@preamble</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-identifier">add_preamble</span>(<span class="ruby-identifier">src</span>) <span class="ruby-operator">:</span> (<span class="ruby-ivar">@preamble</span> <span class="ruby-operator">&&</span> (<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@preamble</span>))
|
|
249
|
+
<span class="ruby-identifier">regexp</span> = <span class="ruby-identifier">pattern_regexp</span>(<span class="ruby-ivar">@pattern</span>)
|
|
250
|
+
<span class="ruby-identifier">input</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">regexp</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">text</span>, <span class="ruby-identifier">lspace</span>, <span class="ruby-identifier">indicator</span>, <span class="ruby-identifier">code</span>, <span class="ruby-identifier">rspace</span><span class="ruby-operator">|</span>
|
|
251
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">text</span>)
|
|
252
|
+
<span class="ruby-comment cmt">## * when '<%= %>', do nothing</span>
|
|
253
|
+
<span class="ruby-comment cmt">## * when '<% %>' or '<%# %>', delete spaces iff only spaces are around '<% %>'</span>
|
|
254
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">indicator</span> <span class="ruby-comment cmt"># <% %></span>
|
|
255
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@trim</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">lspace</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">rspace</span>
|
|
256
|
+
<span class="ruby-identifier">add_stmt</span>(<span class="ruby-identifier">src</span>, <span class="ruby-node">"#{lspace}#{code}#{rspace}"</span>)
|
|
257
|
+
<span class="ruby-keyword kw">else</span>
|
|
258
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">lspace</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lspace</span>
|
|
259
|
+
<span class="ruby-identifier">add_stmt</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
|
260
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">rspace</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rspace</span>
|
|
261
|
+
<span class="ruby-keyword kw">end</span>
|
|
262
|
+
<span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">indicator</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?\#</span> <span class="ruby-comment cmt"># <%# %></span>
|
|
263
|
+
<span class="ruby-identifier">n</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">count</span>(<span class="ruby-value str">"\n"</span>) <span class="ruby-operator">+</span> (<span class="ruby-identifier">rspace</span> <span class="ruby-value">? </span><span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>)
|
|
264
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@trim</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">lspace</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">rspace</span>
|
|
265
|
+
<span class="ruby-identifier">add_stmt</span>(<span class="ruby-identifier">src</span>, <span class="ruby-value str">"\n"</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">n</span>)
|
|
266
|
+
<span class="ruby-keyword kw">else</span>
|
|
267
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">lspace</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lspace</span>
|
|
268
|
+
<span class="ruby-identifier">add_stmt</span>(<span class="ruby-identifier">src</span>, <span class="ruby-value str">"\n"</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">n</span>)
|
|
269
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">rspace</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lspace</span>
|
|
270
|
+
<span class="ruby-keyword kw">end</span>
|
|
271
|
+
<span class="ruby-comment cmt">#flag_trim = @trim && lspace && rspace</span>
|
|
272
|
+
<span class="ruby-comment cmt">#add_text(src, lspace) if !flag_trim && lspace</span>
|
|
273
|
+
<span class="ruby-comment cmt">#n = code.count("\n") + (rspace ? 1 : 0)</span>
|
|
274
|
+
<span class="ruby-comment cmt">#add_stmt(src, "\n" * n)</span>
|
|
275
|
+
<span class="ruby-comment cmt">#add_text(src, rspace) if !flag_trim && rspace</span>
|
|
276
|
+
<span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># <%= %></span>
|
|
277
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">lspace</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lspace</span>
|
|
278
|
+
<span class="ruby-identifier">add_expr</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>, <span class="ruby-identifier">indicator</span>)
|
|
279
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">rspace</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rspace</span>
|
|
280
|
+
<span class="ruby-keyword kw">end</span>
|
|
281
|
+
<span class="ruby-comment cmt">#if indicator && indicator[0] == ?=</span>
|
|
282
|
+
<span class="ruby-comment cmt"># flag_trim = false</span>
|
|
283
|
+
<span class="ruby-comment cmt">#else</span>
|
|
284
|
+
<span class="ruby-comment cmt"># flag_trim = @trim && lspace && rspace</span>
|
|
285
|
+
<span class="ruby-comment cmt">#end</span>
|
|
286
|
+
<span class="ruby-comment cmt">##flag_trim = @trim && !(indicator && indicator[0]==?=) && lspace && rspace</span>
|
|
287
|
+
<span class="ruby-comment cmt">#add_text(src, text)</span>
|
|
288
|
+
<span class="ruby-comment cmt">#add_text(src, lspace) if !flag_trim && lspace</span>
|
|
289
|
+
<span class="ruby-comment cmt">#if !indicator # <% %></span>
|
|
290
|
+
<span class="ruby-comment cmt"># code = "#{lspace}#{code}#{rspace}" if flag_trim</span>
|
|
291
|
+
<span class="ruby-comment cmt"># add_stmt(src, code)</span>
|
|
292
|
+
<span class="ruby-comment cmt">#elsif indicator[0] == ?\# # <%# %></span>
|
|
293
|
+
<span class="ruby-comment cmt"># n = code.count("\n") + (rspace ? 1 : 0)</span>
|
|
294
|
+
<span class="ruby-comment cmt"># add_stmt(src, "\n" * n)</span>
|
|
295
|
+
<span class="ruby-comment cmt">#else # <%= %></span>
|
|
296
|
+
<span class="ruby-comment cmt"># add_expr(src, code, indicator)</span>
|
|
297
|
+
<span class="ruby-comment cmt">#end</span>
|
|
298
|
+
<span class="ruby-comment cmt">#add_text(src, rspace) if !flag_trim && rspace</span>
|
|
299
|
+
<span class="ruby-keyword kw">end</span>
|
|
300
|
+
<span class="ruby-identifier">rest</span> = <span class="ruby-identifier">$'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">input</span> <span class="ruby-comment cmt"># add input when no matched</span>
|
|
301
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">rest</span>)
|
|
302
|
+
<span class="ruby-ivar">@postamble</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-identifier">add_postamble</span>(<span class="ruby-identifier">src</span>) <span class="ruby-operator">:</span> (<span class="ruby-ivar">@postamble</span> <span class="ruby-operator">&&</span> (<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@postamble</span>))
|
|
303
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">src</span>
|
|
304
|
+
<span class="ruby-keyword kw">end</span>
|
|
305
|
+
</pre>
|
|
306
|
+
</div>
|
|
307
|
+
</div>
|
|
308
|
+
</div>
|
|
309
|
+
|
|
310
|
+
<div id="method-M000065" class="method-detail">
|
|
311
|
+
<a name="M000065"></a>
|
|
312
|
+
|
|
313
|
+
<div class="method-heading">
|
|
314
|
+
<a href="#M000065" class="method-signature">
|
|
315
|
+
<span class="method-name">compile!</span><span class="method-args">(input)</span>
|
|
316
|
+
</a>
|
|
317
|
+
</div>
|
|
318
|
+
|
|
319
|
+
<div class="method-description">
|
|
320
|
+
<p>
|
|
321
|
+
compile input string and set it to @src
|
|
322
|
+
</p>
|
|
323
|
+
<p><a class="source-toggle" href="#"
|
|
324
|
+
onclick="toggleCode('M000065-source');return false;">[Source]</a></p>
|
|
325
|
+
<div class="method-source-code" id="M000065-source">
|
|
326
|
+
<pre>
|
|
327
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 193</span>
|
|
328
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">compile!</span>(<span class="ruby-identifier">input</span>)
|
|
329
|
+
<span class="ruby-ivar">@src</span> = <span class="ruby-identifier">compile</span>(<span class="ruby-identifier">input</span>)
|
|
330
|
+
<span class="ruby-keyword kw">end</span>
|
|
331
|
+
</pre>
|
|
332
|
+
</div>
|
|
333
|
+
</div>
|
|
334
|
+
</div>
|
|
335
|
+
|
|
336
|
+
<div id="method-M000062" class="method-detail">
|
|
337
|
+
<a name="M000062"></a>
|
|
338
|
+
|
|
339
|
+
<div class="method-heading">
|
|
340
|
+
<a href="#M000062" class="method-signature">
|
|
341
|
+
<span class="method-name">evaluate</span><span class="method-args">(context=Context.new)</span>
|
|
342
|
+
</a>
|
|
343
|
+
</div>
|
|
344
|
+
|
|
345
|
+
<div class="method-description">
|
|
346
|
+
<p>
|
|
347
|
+
call context.instance_eval(@src)
|
|
348
|
+
</p>
|
|
349
|
+
<p><a class="source-toggle" href="#"
|
|
350
|
+
onclick="toggleCode('M000062-source');return false;">[Source]</a></p>
|
|
351
|
+
<div class="method-source-code" id="M000062-source">
|
|
352
|
+
<pre>
|
|
353
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 113</span>
|
|
354
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">evaluate</span>(<span class="ruby-identifier">context</span>=<span class="ruby-constant">Context</span>.<span class="ruby-identifier">new</span>)
|
|
355
|
+
<span class="ruby-identifier">context</span> = <span class="ruby-constant">Context</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">context</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
|
|
356
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">context</span>.<span class="ruby-identifier">instance_eval</span>(<span class="ruby-ivar">@src</span>, (<span class="ruby-ivar">@filename</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'(erubis)'</span>))
|
|
357
|
+
<span class="ruby-keyword kw">end</span>
|
|
358
|
+
</pre>
|
|
359
|
+
</div>
|
|
360
|
+
</div>
|
|
361
|
+
</div>
|
|
362
|
+
|
|
363
|
+
<div id="method-M000061" class="method-detail">
|
|
364
|
+
<a name="M000061"></a>
|
|
365
|
+
|
|
366
|
+
<div class="method-heading">
|
|
367
|
+
<a href="#M000061" class="method-signature">
|
|
368
|
+
<span class="method-name">result</span><span class="method-args">(_binding_or_hash=TOPLEVEL_BINDING)</span>
|
|
369
|
+
</a>
|
|
370
|
+
</div>
|
|
371
|
+
|
|
372
|
+
<div class="method-description">
|
|
373
|
+
<p>
|
|
374
|
+
eval(@src) with binding
|
|
375
|
+
</p>
|
|
376
|
+
<p><a class="source-toggle" href="#"
|
|
377
|
+
onclick="toggleCode('M000061-source');return false;">[Source]</a></p>
|
|
378
|
+
<div class="method-source-code" id="M000061-source">
|
|
379
|
+
<pre>
|
|
380
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 102</span>
|
|
381
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">result</span>(<span class="ruby-identifier">_binding_or_hash</span>=<span class="ruby-constant">TOPLEVEL_BINDING</span>)
|
|
382
|
+
<span class="ruby-identifier">_arg</span> = <span class="ruby-identifier">_binding_or_hash</span>
|
|
383
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">_arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
|
|
384
|
+
<span class="ruby-comment cmt">## load _context data as local variables by eval</span>
|
|
385
|
+
<span class="ruby-identifier">eval</span> <span class="ruby-identifier">_arg</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value str">""</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span>, <span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{k.to_s} = _arg[#{k.inspect}];"</span> }
|
|
386
|
+
<span class="ruby-identifier">_arg</span> = <span class="ruby-identifier">binding</span>()
|
|
387
|
+
<span class="ruby-keyword kw">end</span>
|
|
388
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">eval</span>(<span class="ruby-ivar">@src</span>, <span class="ruby-identifier">_arg</span>, (<span class="ruby-ivar">@filename</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'(erubis)'</span>))
|
|
389
|
+
<span class="ruby-keyword kw">end</span>
|
|
390
|
+
</pre>
|
|
391
|
+
</div>
|
|
392
|
+
</div>
|
|
393
|
+
</div>
|
|
394
|
+
|
|
395
|
+
<h3 class="section-bar">Protected Instance methods</h3>
|
|
396
|
+
|
|
397
|
+
<div id="method-M000071" class="method-detail">
|
|
398
|
+
<a name="M000071"></a>
|
|
399
|
+
|
|
400
|
+
<div class="method-heading">
|
|
401
|
+
<a href="#M000071" class="method-signature">
|
|
402
|
+
<span class="method-name">add_expr</span><span class="method-args">(src, code, indicator)</span>
|
|
403
|
+
</a>
|
|
404
|
+
</div>
|
|
405
|
+
|
|
406
|
+
<div class="method-description">
|
|
407
|
+
<p>
|
|
408
|
+
add expression code to src
|
|
409
|
+
</p>
|
|
410
|
+
<p><a class="source-toggle" href="#"
|
|
411
|
+
onclick="toggleCode('M000071-source');return false;">[Source]</a></p>
|
|
412
|
+
<div class="method-source-code" id="M000071-source">
|
|
413
|
+
<pre>
|
|
414
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 226</span>
|
|
415
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_expr</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>, <span class="ruby-identifier">indicator</span>)
|
|
416
|
+
<span class="ruby-keyword kw">case</span> <span class="ruby-identifier">indicator</span>
|
|
417
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
|
|
418
|
+
<span class="ruby-identifier">add_expr_literal</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
|
419
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">'=='</span>
|
|
420
|
+
<span class="ruby-identifier">add_expr_escaped</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
|
421
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">'==='</span>
|
|
422
|
+
<span class="ruby-identifier">add_expr_debug</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
|
423
|
+
<span class="ruby-keyword kw">end</span>
|
|
424
|
+
<span class="ruby-keyword kw">end</span>
|
|
425
|
+
</pre>
|
|
426
|
+
</div>
|
|
427
|
+
</div>
|
|
428
|
+
</div>
|
|
429
|
+
|
|
430
|
+
<div id="method-M000074" class="method-detail">
|
|
431
|
+
<a name="M000074"></a>
|
|
432
|
+
|
|
433
|
+
<div class="method-heading">
|
|
434
|
+
<a href="#M000074" class="method-signature">
|
|
435
|
+
<span class="method-name">add_expr_debug</span><span class="method-args">(src, code)</span>
|
|
436
|
+
</a>
|
|
437
|
+
</div>
|
|
438
|
+
|
|
439
|
+
<div class="method-description">
|
|
440
|
+
<p>
|
|
441
|
+
.[empty] add expression code to src for debug. this is called by <a
|
|
442
|
+
href="Engine.html#M000071">add_expr</a>().
|
|
443
|
+
</p>
|
|
444
|
+
<p><a class="source-toggle" href="#"
|
|
445
|
+
onclick="toggleCode('M000074-source');return false;">[Source]</a></p>
|
|
446
|
+
<div class="method-source-code" id="M000074-source">
|
|
447
|
+
<pre>
|
|
448
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 248</span>
|
|
449
|
+
<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>)
|
|
450
|
+
<span class="ruby-comment cmt"># empty</span>
|
|
451
|
+
<span class="ruby-keyword kw">end</span>
|
|
452
|
+
</pre>
|
|
453
|
+
</div>
|
|
454
|
+
</div>
|
|
455
|
+
</div>
|
|
456
|
+
|
|
457
|
+
<div id="method-M000073" class="method-detail">
|
|
458
|
+
<a name="M000073"></a>
|
|
459
|
+
|
|
460
|
+
<div class="method-heading">
|
|
461
|
+
<a href="#M000073" class="method-signature">
|
|
462
|
+
<span class="method-name">add_expr_escaped</span><span class="method-args">(src, code)</span>
|
|
463
|
+
</a>
|
|
464
|
+
</div>
|
|
465
|
+
|
|
466
|
+
<div class="method-description">
|
|
467
|
+
<p>
|
|
468
|
+
.[abstract] add escaped expression code to src. this is called by <a
|
|
469
|
+
href="Engine.html#M000071">add_expr</a>().
|
|
470
|
+
</p>
|
|
471
|
+
<p><a class="source-toggle" href="#"
|
|
472
|
+
onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
|
|
473
|
+
<div class="method-source-code" id="M000073-source">
|
|
474
|
+
<pre>
|
|
475
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 243</span>
|
|
476
|
+
<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>)
|
|
477
|
+
<span class="ruby-identifier">not_implemented</span>
|
|
478
|
+
<span class="ruby-keyword kw">end</span>
|
|
479
|
+
</pre>
|
|
480
|
+
</div>
|
|
481
|
+
</div>
|
|
482
|
+
</div>
|
|
483
|
+
|
|
484
|
+
<div id="method-M000072" class="method-detail">
|
|
485
|
+
<a name="M000072"></a>
|
|
486
|
+
|
|
487
|
+
<div class="method-heading">
|
|
488
|
+
<a href="#M000072" class="method-signature">
|
|
489
|
+
<span class="method-name">add_expr_literal</span><span class="method-args">(src, code)</span>
|
|
490
|
+
</a>
|
|
491
|
+
</div>
|
|
492
|
+
|
|
493
|
+
<div class="method-description">
|
|
494
|
+
<p>
|
|
495
|
+
.[abstract] add expression literal code to src. this is called by <a
|
|
496
|
+
href="Engine.html#M000071">add_expr</a>().
|
|
497
|
+
</p>
|
|
498
|
+
<p><a class="source-toggle" href="#"
|
|
499
|
+
onclick="toggleCode('M000072-source');return false;">[Source]</a></p>
|
|
500
|
+
<div class="method-source-code" id="M000072-source">
|
|
501
|
+
<pre>
|
|
502
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 238</span>
|
|
503
|
+
<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>)
|
|
504
|
+
<span class="ruby-identifier">not_implemented</span>
|
|
505
|
+
<span class="ruby-keyword kw">end</span>
|
|
506
|
+
</pre>
|
|
507
|
+
</div>
|
|
508
|
+
</div>
|
|
509
|
+
</div>
|
|
510
|
+
|
|
511
|
+
<div id="method-M000075" class="method-detail">
|
|
512
|
+
<a name="M000075"></a>
|
|
513
|
+
|
|
514
|
+
<div class="method-heading">
|
|
515
|
+
<a href="#M000075" class="method-signature">
|
|
516
|
+
<span class="method-name">add_postamble</span><span class="method-args">(src)</span>
|
|
517
|
+
</a>
|
|
518
|
+
</div>
|
|
519
|
+
|
|
520
|
+
<div class="method-description">
|
|
521
|
+
<p>
|
|
522
|
+
.[empty] add @postamble to src
|
|
523
|
+
</p>
|
|
524
|
+
<p><a class="source-toggle" href="#"
|
|
525
|
+
onclick="toggleCode('M000075-source');return false;">[Source]</a></p>
|
|
526
|
+
<div class="method-source-code" id="M000075-source">
|
|
527
|
+
<pre>
|
|
528
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 253</span>
|
|
529
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_postamble</span>(<span class="ruby-identifier">src</span>)
|
|
530
|
+
<span class="ruby-comment cmt"># empty</span>
|
|
531
|
+
<span class="ruby-keyword kw">end</span>
|
|
532
|
+
</pre>
|
|
533
|
+
</div>
|
|
534
|
+
</div>
|
|
535
|
+
</div>
|
|
536
|
+
|
|
537
|
+
<div id="method-M000068" class="method-detail">
|
|
538
|
+
<a name="M000068"></a>
|
|
539
|
+
|
|
540
|
+
<div class="method-heading">
|
|
541
|
+
<a href="#M000068" class="method-signature">
|
|
542
|
+
<span class="method-name">add_preamble</span><span class="method-args">(src)</span>
|
|
543
|
+
</a>
|
|
544
|
+
</div>
|
|
545
|
+
|
|
546
|
+
<div class="method-description">
|
|
547
|
+
<p>
|
|
548
|
+
.[empty] add @preamble to src
|
|
549
|
+
</p>
|
|
550
|
+
<p><a class="source-toggle" href="#"
|
|
551
|
+
onclick="toggleCode('M000068-source');return false;">[Source]</a></p>
|
|
552
|
+
<div class="method-source-code" id="M000068-source">
|
|
553
|
+
<pre>
|
|
554
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 211</span>
|
|
555
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_preamble</span>(<span class="ruby-identifier">src</span>)
|
|
556
|
+
<span class="ruby-comment cmt"># empty</span>
|
|
557
|
+
<span class="ruby-keyword kw">end</span>
|
|
558
|
+
</pre>
|
|
559
|
+
</div>
|
|
560
|
+
</div>
|
|
561
|
+
</div>
|
|
562
|
+
|
|
563
|
+
<div id="method-M000070" class="method-detail">
|
|
564
|
+
<a name="M000070"></a>
|
|
565
|
+
|
|
566
|
+
<div class="method-heading">
|
|
567
|
+
<a href="#M000070" class="method-signature">
|
|
568
|
+
<span class="method-name">add_stmt</span><span class="method-args">(src, code)</span>
|
|
569
|
+
</a>
|
|
570
|
+
</div>
|
|
571
|
+
|
|
572
|
+
<div class="method-description">
|
|
573
|
+
<p>
|
|
574
|
+
.[abstract] add statement code to src
|
|
575
|
+
</p>
|
|
576
|
+
<p><a class="source-toggle" href="#"
|
|
577
|
+
onclick="toggleCode('M000070-source');return false;">[Source]</a></p>
|
|
578
|
+
<div class="method-source-code" id="M000070-source">
|
|
579
|
+
<pre>
|
|
580
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 221</span>
|
|
581
|
+
<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>)
|
|
582
|
+
<span class="ruby-identifier">not_implemented</span>
|
|
583
|
+
<span class="ruby-keyword kw">end</span>
|
|
584
|
+
</pre>
|
|
585
|
+
</div>
|
|
586
|
+
</div>
|
|
587
|
+
</div>
|
|
588
|
+
|
|
589
|
+
<div id="method-M000069" class="method-detail">
|
|
590
|
+
<a name="M000069"></a>
|
|
591
|
+
|
|
592
|
+
<div class="method-heading">
|
|
593
|
+
<a href="#M000069" class="method-signature">
|
|
594
|
+
<span class="method-name">add_text</span><span class="method-args">(src, text)</span>
|
|
595
|
+
</a>
|
|
596
|
+
</div>
|
|
597
|
+
|
|
598
|
+
<div class="method-description">
|
|
599
|
+
<p>
|
|
600
|
+
.[abstract] add text string to src
|
|
601
|
+
</p>
|
|
602
|
+
<p><a class="source-toggle" href="#"
|
|
603
|
+
onclick="toggleCode('M000069-source');return false;">[Source]</a></p>
|
|
604
|
+
<div class="method-source-code" id="M000069-source">
|
|
605
|
+
<pre>
|
|
606
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 216</span>
|
|
607
|
+
<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>)
|
|
608
|
+
<span class="ruby-identifier">not_implemented</span>
|
|
609
|
+
<span class="ruby-keyword kw">end</span>
|
|
610
|
+
</pre>
|
|
611
|
+
</div>
|
|
612
|
+
</div>
|
|
613
|
+
</div>
|
|
614
|
+
|
|
615
|
+
<div id="method-M000066" class="method-detail">
|
|
616
|
+
<a name="M000066"></a>
|
|
617
|
+
|
|
618
|
+
<div class="method-heading">
|
|
619
|
+
<a href="#M000066" class="method-signature">
|
|
620
|
+
<span class="method-name">escape_text</span><span class="method-args">(text)</span>
|
|
621
|
+
</a>
|
|
622
|
+
</div>
|
|
623
|
+
|
|
624
|
+
<div class="method-description">
|
|
625
|
+
<p>
|
|
626
|
+
escape text string
|
|
627
|
+
</p>
|
|
628
|
+
<p><a class="source-toggle" href="#"
|
|
629
|
+
onclick="toggleCode('M000066-source');return false;">[Source]</a></p>
|
|
630
|
+
<div class="method-source-code" id="M000066-source">
|
|
631
|
+
<pre>
|
|
632
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 200</span>
|
|
633
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escape_text</span>(<span class="ruby-identifier">text</span>)
|
|
634
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">text</span>
|
|
635
|
+
<span class="ruby-keyword kw">end</span>
|
|
636
|
+
</pre>
|
|
637
|
+
</div>
|
|
638
|
+
</div>
|
|
639
|
+
</div>
|
|
640
|
+
|
|
641
|
+
<div id="method-M000067" class="method-detail">
|
|
642
|
+
<a name="M000067"></a>
|
|
643
|
+
|
|
644
|
+
<div class="method-heading">
|
|
645
|
+
<a href="#M000067" class="method-signature">
|
|
646
|
+
<span class="method-name">escaped_expr</span><span class="method-args">(code)</span>
|
|
647
|
+
</a>
|
|
648
|
+
</div>
|
|
649
|
+
|
|
650
|
+
<div class="method-description">
|
|
651
|
+
<p>
|
|
652
|
+
return escaped expression code
|
|
653
|
+
</p>
|
|
654
|
+
<p><a class="source-toggle" href="#"
|
|
655
|
+
onclick="toggleCode('M000067-source');return false;">[Source]</a></p>
|
|
656
|
+
<div class="method-source-code" id="M000067-source">
|
|
657
|
+
<pre>
|
|
658
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 205</span>
|
|
659
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escaped_expr</span>(<span class="ruby-identifier">code</span>)
|
|
660
|
+
<span class="ruby-ivar">@escape</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">'escape'</span>
|
|
661
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-node">"#{@escape}(#{code.strip})"</span>
|
|
662
|
+
<span class="ruby-keyword kw">end</span>
|
|
663
|
+
</pre>
|
|
664
|
+
</div>
|
|
665
|
+
</div>
|
|
666
|
+
</div>
|
|
667
|
+
|
|
668
|
+
<div id="method-M000063" class="method-detail">
|
|
669
|
+
<a name="M000063"></a>
|
|
670
|
+
|
|
671
|
+
<div class="method-heading">
|
|
672
|
+
<a href="#M000063" class="method-signature">
|
|
673
|
+
<span class="method-name">pattern_regexp</span><span class="method-args">(pattern=@pattern)</span>
|
|
674
|
+
</a>
|
|
675
|
+
</div>
|
|
676
|
+
|
|
677
|
+
<div class="method-description">
|
|
678
|
+
<p>
|
|
679
|
+
return regexp of pattern to parse eRuby script
|
|
680
|
+
</p>
|
|
681
|
+
<p><a class="source-toggle" href="#"
|
|
682
|
+
onclick="toggleCode('M000063-source');return false;">[Source]</a></p>
|
|
683
|
+
<div class="method-source-code" id="M000063-source">
|
|
684
|
+
<pre>
|
|
685
|
+
<span class="ruby-comment cmt"># File erubis/engine.rb, line 121</span>
|
|
686
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pattern_regexp</span>(<span class="ruby-identifier">pattern</span>=<span class="ruby-ivar">@pattern</span>)
|
|
687
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pattern</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'<% %>'</span>
|
|
688
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-constant">DEFAULT_REGEXP</span>
|
|
689
|
+
<span class="ruby-keyword kw">else</span>
|
|
690
|
+
<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">postfix</span> = <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">split</span>()
|
|
691
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-node">/(.*?)(^[ \t]*)?#{prefix}(=+|\#)?(.*?)-?#{postfix}([ \t]*\r?\n)?/</span><span class="ruby-identifier">m</span>
|
|
692
|
+
<span class="ruby-keyword kw">end</span>
|
|
693
|
+
<span class="ruby-keyword kw">end</span>
|
|
694
|
+
</pre>
|
|
695
|
+
</div>
|
|
696
|
+
</div>
|
|
697
|
+
</div>
|
|
698
|
+
|
|
699
|
+
|
|
700
|
+
</div>
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
</div>
|
|
704
|
+
|
|
705
|
+
|
|
706
|
+
<div id="validator-badges">
|
|
707
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
708
|
+
</div>
|
|
709
|
+
|
|
710
|
+
</body>
|
|
711
|
+
</html>
|