erubis 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/{ChangeLog → CHANGES} +139 -6
- data/MIT-LICENSE +20 -0
- data/README.txt +20 -5
- data/benchmark/erubybench.rb +465 -229
- data/benchmark/erubybench.rhtml +39 -15
- data/benchmark/erubybench.yaml +126 -46
- data/bin/erubis +2 -2
- data/bin/notext +3 -3
- data/contrib/action_view_base_rb.patch +23 -0
- data/contrib/erubis +466 -308
- data/contrib/inline-require +2 -2
- data/doc-api/classes/ERB.html +101 -0
- data/doc-api/classes/Erubis.html +59 -6
- data/doc-api/classes/Erubis/ArrayEnhancer.html +12 -12
- data/doc-api/classes/Erubis/Basic/Converter.html +61 -57
- data/doc-api/classes/Erubis/BiPatternEnhancer.html +14 -14
- data/doc-api/classes/Erubis/CGenerator.html +60 -60
- data/doc-api/classes/Erubis/Context.html +125 -29
- data/doc-api/classes/Erubis/Converter.html +73 -22
- data/doc-api/classes/Erubis/Engine.html +55 -39
- data/doc-api/classes/Erubis/EscapeEnhancer.html +6 -6
- data/doc-api/classes/Erubis/Evaluator.html +19 -19
- data/doc-api/classes/Erubis/Generator.html +16 -10
- data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +14 -14
- data/doc-api/classes/Erubis/{Helper.html → Helpers.html} +5 -6
- data/doc-api/classes/Erubis/Helpers/RailsHelper.html +296 -0
- data/doc-api/classes/Erubis/JavaGenerator.html +54 -54
- data/doc-api/classes/Erubis/JavascriptGenerator.html +60 -60
- data/doc-api/classes/Erubis/Main.html +42 -30
- data/doc-api/classes/Erubis/NoCodeEnhancer.html +5 -5
- data/doc-api/classes/Erubis/NoTextEnhancer.html +7 -7
- data/doc-api/classes/Erubis/OptimizedEruby.html +6 -6
- data/doc-api/classes/Erubis/OptimizedGenerator.html +72 -72
- data/doc-api/classes/Erubis/OptimizedXmlEruby.html +6 -6
- data/doc-api/classes/Erubis/PI/Converter.html +28 -81
- data/doc-api/classes/Erubis/PI/Ec.html +6 -6
- data/doc-api/classes/Erubis/PI/Ejava.html +6 -6
- data/doc-api/classes/Erubis/PI/Ejavascript.html +6 -6
- data/doc-api/classes/Erubis/PI/Eperl.html +6 -6
- data/doc-api/classes/Erubis/PI/Ephp.html +6 -6
- data/doc-api/classes/Erubis/PI/Eruby.html +7 -7
- data/doc-api/classes/Erubis/PI/Escheme.html +6 -6
- data/doc-api/classes/Erubis/PI/TinyEruby.html +66 -79
- data/doc-api/classes/Erubis/PercentLineEnhancer.html +8 -8
- data/doc-api/classes/Erubis/PerlGenerator.html +54 -54
- data/doc-api/classes/Erubis/PhpGenerator.html +54 -54
- data/doc-api/classes/Erubis/PrintEnabledEnhancer.html +21 -21
- data/doc-api/classes/Erubis/PrintOutEnhancer.html +30 -30
- data/doc-api/classes/Erubis/RubyEvaluator.html +12 -12
- data/doc-api/classes/Erubis/RubyGenerator.html +9 -9
- data/doc-api/classes/Erubis/SimplifyEnhancer.html +7 -6
- data/doc-api/classes/Erubis/StdoutEnhancer.html +12 -12
- data/doc-api/classes/Erubis/StringBufferEnhancer.html +13 -13
- data/doc-api/classes/Erubis/TinyEruby.html +56 -68
- data/doc-api/classes/Erubis/XmlHelper.html +20 -23
- data/doc-api/created.rid +1 -1
- data/doc-api/files/{__/README_txt.html → README_txt.html} +35 -20
- data/doc-api/files/erubis/context_rb.html +2 -2
- data/doc-api/files/erubis/converter_rb.html +2 -2
- data/doc-api/files/erubis/engine/ec_rb.html +2 -2
- data/doc-api/files/erubis/engine/ejava_rb.html +2 -2
- data/doc-api/files/erubis/engine/ejavascript_rb.html +2 -2
- data/doc-api/files/erubis/engine/enhanced_rb.html +2 -2
- data/doc-api/files/erubis/engine/eperl_rb.html +2 -2
- data/doc-api/files/erubis/engine/ephp_rb.html +2 -2
- data/doc-api/files/erubis/engine/eruby_rb.html +2 -3
- data/doc-api/files/erubis/engine/escheme_rb.html +2 -2
- data/doc-api/files/erubis/engine/optimized_rb.html +2 -2
- data/doc-api/files/erubis/engine_rb.html +2 -2
- data/doc-api/files/erubis/enhancer_rb.html +2 -2
- data/doc-api/files/erubis/error_rb.html +2 -2
- data/doc-api/files/erubis/evaluator_rb.html +2 -2
- data/doc-api/files/erubis/generator_rb.html +2 -2
- data/doc-api/files/erubis/helper_rb.html +2 -2
- data/doc-api/files/erubis/{helper/rails_rb.html → helpers/rails_helper_rb.html} +6 -31
- data/doc-api/files/erubis/local-setting_rb.html +2 -2
- data/doc-api/files/erubis/main_rb.html +4 -2
- data/doc-api/files/erubis/tiny_rb.html +2 -2
- data/doc-api/files/erubis_rb.html +2 -2
- data/doc-api/fr_class_index.html +3 -3
- data/doc-api/fr_file_index.html +2 -2
- data/doc-api/fr_method_index.html +142 -147
- data/doc-api/index.html +1 -1
- data/doc/users-guide.html +387 -218
- data/lib/erubis.rb +21 -25
- data/lib/erubis/context.rb +34 -4
- data/lib/erubis/converter.rb +159 -115
- data/lib/erubis/engine.rb +29 -12
- data/lib/erubis/engine/ec.rb +2 -2
- data/lib/erubis/engine/ejava.rb +2 -2
- data/lib/erubis/engine/ejavascript.rb +2 -2
- data/lib/erubis/engine/enhanced.rb +2 -2
- data/lib/erubis/engine/eperl.rb +2 -2
- data/lib/erubis/engine/ephp.rb +2 -2
- data/lib/erubis/engine/eruby.rb +5 -6
- data/lib/erubis/engine/escheme.rb +2 -2
- data/lib/erubis/engine/optimized.rb +2 -2
- data/lib/erubis/enhancer.rb +33 -7
- data/lib/erubis/error.rb +2 -2
- data/lib/erubis/evaluator.rb +2 -2
- data/lib/erubis/generator.rb +6 -3
- data/lib/erubis/helper.rb +6 -23
- data/lib/erubis/helpers/rails_helper.rb +202 -0
- data/lib/erubis/local-setting.rb +4 -4
- data/lib/erubis/main.rb +90 -35
- data/lib/erubis/tiny.rb +57 -52
- data/test/assert-text-equal.rb +2 -2
- data/test/test-engines.rb +5 -5
- data/test/test-erubis.rb +173 -63
- data/test/test-main.rb +135 -27
- data/test/test-notext.rb +2 -2
- data/test/test.rb +2 -2
- data/test/testutil.rb +2 -2
- metadata +16 -16
- data/LGPL +0 -504
- data/doc-api/classes/Erubis/Helper/CachedRailsTemplate.html +0 -198
- data/doc-api/classes/Erubis/Helper/RailsTemplate.html +0 -366
- data/lib/erubis/helper/rails.rb +0 -159
@@ -95,7 +95,7 @@ code
|
|
95
95
|
<h3 class="section-bar">Methods</h3>
|
96
96
|
|
97
97
|
<div class="name-list">
|
98
|
-
<a href="#
|
98
|
+
<a href="#M000173">add_expr_debug</a>
|
99
99
|
</div>
|
100
100
|
</div>
|
101
101
|
|
@@ -124,19 +124,19 @@ code
|
|
124
124
|
<div id="methods">
|
125
125
|
<h3 class="section-bar">Public Instance methods</h3>
|
126
126
|
|
127
|
-
<div id="method-
|
128
|
-
<a name="
|
127
|
+
<div id="method-M000173" class="method-detail">
|
128
|
+
<a name="M000173"></a>
|
129
129
|
|
130
130
|
<div class="method-heading">
|
131
|
-
<a href="#
|
131
|
+
<a href="#M000173" class="method-signature">
|
132
132
|
<span class="method-name">add_expr_debug</span><span class="method-args">(src, code)</span>
|
133
133
|
</a>
|
134
134
|
</div>
|
135
135
|
|
136
136
|
<div class="method-description">
|
137
137
|
<p><a class="source-toggle" href="#"
|
138
|
-
onclick="toggleCode('
|
139
|
-
<div class="method-source-code" id="
|
138
|
+
onclick="toggleCode('M000173-source');return false;">[Source]</a></p>
|
139
|
+
<div class="method-source-code" id="M000173-source">
|
140
140
|
<pre>
|
141
141
|
<span class="ruby-comment cmt"># File erubis/engine/optimized.rb, line 121</span>
|
142
142
|
<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>)
|
@@ -91,8 +91,6 @@ this class converts ’<?rb … ?>’ and
|
|
91
91
|
<a href="#M000038">convert</a>
|
92
92
|
<a href="#M000039">convert_input</a>
|
93
93
|
<a href="#M000037">init_converter</a>
|
94
|
-
<a href="#M000041">parse_exprs</a>
|
95
|
-
<a href="#M000040">parse_stmts</a>
|
96
94
|
</div>
|
97
95
|
</div>
|
98
96
|
|
@@ -153,7 +151,7 @@ this class converts ’<?rb … ?>’ and
|
|
153
151
|
onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
|
154
152
|
<div class="method-source-code" id="M000038-source">
|
155
153
|
<pre>
|
156
|
-
<span class="ruby-comment cmt"># File erubis/converter.rb, line
|
154
|
+
<span class="ruby-comment cmt"># File erubis/converter.rb, line 219</span>
|
157
155
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert</span>(<span class="ruby-identifier">input</span>)
|
158
156
|
<span class="ruby-identifier">code</span> = <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">input</span>)
|
159
157
|
<span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@header</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@footer</span> <span class="ruby-operator">?</span> <span class="ruby-node">"#{@header}#{code}#{@footer}"</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">code</span>
|
@@ -177,12 +175,12 @@ this class converts ’<?rb … ?>’ and
|
|
177
175
|
onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
|
178
176
|
<div class="method-source-code" id="M000037-source">
|
179
177
|
<pre>
|
180
|
-
<span class="ruby-comment cmt"># File erubis/converter.rb, line
|
178
|
+
<span class="ruby-comment cmt"># File erubis/converter.rb, line 210</span>
|
181
179
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_converter</span>(<span class="ruby-identifier">properties</span>={})
|
182
180
|
<span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">properties</span>)
|
183
|
-
<span class="ruby-ivar">@trim</span> = <span class="ruby-
|
181
|
+
<span class="ruby-ivar">@trim</span> = <span class="ruby-identifier">properties</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">:trim</span>, <span class="ruby-keyword kw">true</span>)
|
184
182
|
<span class="ruby-ivar">@pi</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:pi</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:pi</span>]
|
185
|
-
<span class="ruby-ivar">@embchar</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:embchar</span>]
|
183
|
+
<span class="ruby-ivar">@embchar</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:embchar</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'@'</span>
|
186
184
|
<span class="ruby-ivar">@pattern</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:pattern</span>]
|
187
185
|
<span class="ruby-ivar">@pattern</span> = <span class="ruby-value str">'<% %>'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-comment cmt">#|| @pattern == true</span>
|
188
186
|
<span class="ruby-keyword kw">end</span>
|
@@ -207,96 +205,45 @@ this class converts ’<?rb … ?>’ and
|
|
207
205
|
onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
|
208
206
|
<div class="method-source-code" id="M000039-source">
|
209
207
|
<pre>
|
210
|
-
<span class="ruby-comment cmt"># File erubis/converter.rb, line
|
208
|
+
<span class="ruby-comment cmt"># File erubis/converter.rb, line 226</span>
|
211
209
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert_input</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">input</span>)
|
212
|
-
<span class="ruby-
|
213
|
-
|
214
|
-
<span class="ruby-keyword kw">end</span>
|
215
|
-
</pre>
|
216
|
-
</div>
|
217
|
-
</div>
|
218
|
-
</div>
|
219
|
-
|
220
|
-
<div id="method-M000041" class="method-detail">
|
221
|
-
<a name="M000041"></a>
|
222
|
-
|
223
|
-
<div class="method-heading">
|
224
|
-
<a href="#M000041" class="method-signature">
|
225
|
-
<span class="method-name">parse_exprs</span><span class="method-args">(codebuf, input)</span>
|
226
|
-
</a>
|
227
|
-
</div>
|
228
|
-
|
229
|
-
<div class="method-description">
|
230
|
-
<p><a class="source-toggle" href="#"
|
231
|
-
onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
|
232
|
-
<div class="method-source-code" id="M000041-source">
|
233
|
-
<pre>
|
234
|
-
<span class="ruby-comment cmt"># File erubis/converter.rb, line 216</span>
|
235
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_exprs</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">input</span>)
|
236
|
-
<span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@expr_pattern</span>
|
210
|
+
<span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@regexp</span>
|
211
|
+
<span class="ruby-ivar">@pi</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">'e'</span>
|
237
212
|
<span class="ruby-identifier">ch</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-ivar">@embchar</span>)
|
238
213
|
<span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@pattern</span>
|
239
214
|
<span class="ruby-identifier">left</span>, <span class="ruby-identifier">right</span> = <span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">' '</span>)
|
240
|
-
<span class="ruby-ivar">@
|
215
|
+
<span class="ruby-ivar">@regexp</span> = <span class="ruby-node">/<\?#{@pi}(?:-(\w+))?(\s.*?)\?>([ \t]*\r?\n)?|#{ch}(!*)?\{(.*?)\}#{ch}|#{left}(=+)(.*?)#{right}/</span><span class="ruby-identifier">m</span>
|
241
216
|
<span class="ruby-keyword kw">else</span>
|
242
|
-
<span class="ruby-ivar">@
|
217
|
+
<span class="ruby-ivar">@regexp</span> = <span class="ruby-node">/<\?#{@pi}(?:-(\w+))?(\s.*?)\?>([ \t]*\r?\n)?|#{ch}(!*)?\{(.*?)\}#{ch}/</span><span class="ruby-identifier">m</span>
|
243
218
|
<span class="ruby-keyword kw">end</span>
|
244
219
|
<span class="ruby-keyword kw">end</span>
|
220
|
+
<span class="ruby-comment cmt">#</span>
|
221
|
+
<span class="ruby-identifier">is_bol</span> = <span class="ruby-keyword kw">true</span>
|
245
222
|
<span class="ruby-identifier">pos</span> = <span class="ruby-value">0</span>
|
246
|
-
<span class="ruby-identifier">input</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-ivar">@
|
247
|
-
|
248
|
-
<span class="ruby-identifier">code</span> = <span class="ruby-identifier">code1</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">code2</span>
|
223
|
+
<span class="ruby-identifier">input</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-ivar">@regexp</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pi_arg</span>, <span class="ruby-identifier">stmt</span>, <span class="ruby-identifier">rspace</span>,
|
224
|
+
<span class="ruby-identifier">indicator1</span>, <span class="ruby-identifier">expr1</span>, <span class="ruby-identifier">indicator2</span>, <span class="ruby-identifier">expr2</span><span class="ruby-operator">|</span>
|
249
225
|
<span class="ruby-identifier">match</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">last_match</span>
|
250
|
-
<span class="ruby-identifier">
|
251
|
-
<span class="ruby-identifier">text</span> = <span class="ruby-identifier">input</span>[<span class="ruby-identifier">pos</span>, <span class="ruby-identifier">
|
226
|
+
<span class="ruby-identifier">len</span> = <span class="ruby-identifier">match</span>.<span class="ruby-identifier">begin</span>(<span class="ruby-value">0</span>) <span class="ruby-operator">-</span> <span class="ruby-identifier">pos</span>
|
227
|
+
<span class="ruby-identifier">text</span> = <span class="ruby-identifier">input</span>[<span class="ruby-identifier">pos</span>, <span class="ruby-identifier">len</span>]
|
252
228
|
<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">match</span>.<span class="ruby-identifier">end</span>(<span class="ruby-value">0</span>)
|
229
|
+
<span class="ruby-identifier">lspace</span> = <span class="ruby-identifier">stmt</span> <span class="ruby-value">? </span><span class="ruby-identifier">detect_spaces_at_bol</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">is_bol</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
230
|
+
<span class="ruby-identifier">is_bol</span> = <span class="ruby-identifier">stmt</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">rspace</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span>
|
253
231
|
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">text</span>) <span class="ruby-comment cmt"># unless text.empty?</span>
|
254
|
-
<span class="ruby-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
</
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
<div id="method-M000040" class="method-detail">
|
265
|
-
<a name="M000040"></a>
|
266
|
-
|
267
|
-
<div class="method-heading">
|
268
|
-
<a href="#M000040" class="method-signature">
|
269
|
-
<span class="method-name">parse_stmts</span><span class="method-args">(codebuf, input)</span>
|
270
|
-
</a>
|
271
|
-
</div>
|
272
|
-
|
273
|
-
<div class="method-description">
|
274
|
-
<p><a class="source-toggle" href="#"
|
275
|
-
onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
|
276
|
-
<div class="method-source-code" id="M000040-source">
|
277
|
-
<pre>
|
278
|
-
<span class="ruby-comment cmt"># File erubis/converter.rb, line 193</span>
|
279
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_stmts</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">input</span>)
|
280
|
-
<span class="ruby-comment cmt">#regexp = pattern_regexp(@pattern)</span>
|
281
|
-
<span class="ruby-ivar">@pi</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">'e'</span>
|
282
|
-
<span class="ruby-ivar">@stmt_pattern</span> <span class="ruby-operator">||=</span> <span class="ruby-node">/(^[ \t]*)?<\?#{@pi}(?:-(\w+))?(\s.*?)\?>([ \t]*\r?\n)?/</span><span class="ruby-identifier">m</span>
|
283
|
-
<span class="ruby-identifier">pos</span> = <span class="ruby-value">0</span>
|
284
|
-
<span class="ruby-identifier">input</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-ivar">@stmt_pattern</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lspace</span>, <span class="ruby-identifier">pi_arg</span>, <span class="ruby-identifier">code</span>, <span class="ruby-identifier">rspace</span><span class="ruby-operator">|</span>
|
285
|
-
<span class="ruby-identifier">match</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">last_match</span>
|
286
|
-
<span class="ruby-identifier">index</span> = <span class="ruby-identifier">match</span>.<span class="ruby-identifier">begin</span>(<span class="ruby-value">0</span>)
|
287
|
-
<span class="ruby-identifier">text</span> = <span class="ruby-identifier">input</span>[<span class="ruby-identifier">pos</span>, <span class="ruby-identifier">index</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">pos</span>]
|
288
|
-
<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">match</span>.<span class="ruby-identifier">end</span>(<span class="ruby-value">0</span>)
|
289
|
-
<span class="ruby-identifier">parse_exprs</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">text</span>) <span class="ruby-comment cmt"># unless text.empty?</span>
|
290
|
-
<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>
|
291
|
-
<span class="ruby-identifier">add_pi_stmt</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-node">"#{lspace}#{code}#{rspace}"</span>, <span class="ruby-identifier">pi_arg</span>)
|
232
|
+
<span class="ruby-comment cmt">#</span>
|
233
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stmt</span>
|
234
|
+
<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>
|
235
|
+
<span class="ruby-identifier">add_pi_stmt</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-node">"#{lspace}#{stmt}#{rspace}"</span>, <span class="ruby-identifier">pi_arg</span>)
|
236
|
+
<span class="ruby-keyword kw">else</span>
|
237
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">lspace</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lspace</span>
|
238
|
+
<span class="ruby-identifier">add_pi_stmt</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">stmt</span>, <span class="ruby-identifier">pi_arg</span>)
|
239
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">rspace</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rspace</span>
|
240
|
+
<span class="ruby-keyword kw">end</span>
|
292
241
|
<span class="ruby-keyword kw">else</span>
|
293
|
-
<span class="ruby-identifier">
|
294
|
-
<span class="ruby-identifier">add_pi_stmt</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">code</span>, <span class="ruby-identifier">pi_arg</span>)
|
295
|
-
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">rspace</span>)
|
242
|
+
<span class="ruby-identifier">add_pi_expr</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">expr1</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">expr2</span>, <span class="ruby-identifier">indicator1</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">indicator2</span>)
|
296
243
|
<span class="ruby-keyword kw">end</span>
|
297
244
|
<span class="ruby-keyword kw">end</span>
|
298
245
|
<span class="ruby-identifier">rest</span> = <span class="ruby-identifier">$'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">input</span>
|
299
|
-
<span class="ruby-identifier">
|
246
|
+
<span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">rest</span>)
|
300
247
|
<span class="ruby-keyword kw">end</span>
|
301
248
|
</pre>
|
302
249
|
</div>
|
@@ -98,7 +98,7 @@ end
|
|
98
98
|
<h3 class="section-bar">Methods</h3>
|
99
99
|
|
100
100
|
<div class="name-list">
|
101
|
-
<a href="#
|
101
|
+
<a href="#M000048">init_converter</a>
|
102
102
|
</div>
|
103
103
|
</div>
|
104
104
|
|
@@ -127,19 +127,19 @@ end
|
|
127
127
|
<div id="methods">
|
128
128
|
<h3 class="section-bar">Public Instance methods</h3>
|
129
129
|
|
130
|
-
<div id="method-
|
131
|
-
<a name="
|
130
|
+
<div id="method-M000048" class="method-detail">
|
131
|
+
<a name="M000048"></a>
|
132
132
|
|
133
133
|
<div class="method-heading">
|
134
|
-
<a href="#
|
134
|
+
<a href="#M000048" class="method-signature">
|
135
135
|
<span class="method-name">init_converter</span><span class="method-args">(properties={})</span>
|
136
136
|
</a>
|
137
137
|
</div>
|
138
138
|
|
139
139
|
<div class="method-description">
|
140
140
|
<p><a class="source-toggle" href="#"
|
141
|
-
onclick="toggleCode('
|
142
|
-
<div class="method-source-code" id="
|
141
|
+
onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
|
142
|
+
<div class="method-source-code" id="M000048-source">
|
143
143
|
<pre>
|
144
144
|
<span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 110</span>
|
145
145
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_converter</span>(<span class="ruby-identifier">properties</span>={})
|
@@ -98,7 +98,7 @@ end
|
|
98
98
|
<h3 class="section-bar">Methods</h3>
|
99
99
|
|
100
100
|
<div class="name-list">
|
101
|
-
<a href="#
|
101
|
+
<a href="#M000041">init_converter</a>
|
102
102
|
</div>
|
103
103
|
</div>
|
104
104
|
|
@@ -127,19 +127,19 @@ end
|
|
127
127
|
<div id="methods">
|
128
128
|
<h3 class="section-bar">Public Instance methods</h3>
|
129
129
|
|
130
|
-
<div id="method-
|
131
|
-
<a name="
|
130
|
+
<div id="method-M000041" class="method-detail">
|
131
|
+
<a name="M000041"></a>
|
132
132
|
|
133
133
|
<div class="method-heading">
|
134
|
-
<a href="#
|
134
|
+
<a href="#M000041" class="method-signature">
|
135
135
|
<span class="method-name">init_converter</span><span class="method-args">(properties={})</span>
|
136
136
|
</a>
|
137
137
|
</div>
|
138
138
|
|
139
139
|
<div class="method-description">
|
140
140
|
<p><a class="source-toggle" href="#"
|
141
|
-
onclick="toggleCode('
|
142
|
-
<div class="method-source-code" id="
|
141
|
+
onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
|
142
|
+
<div class="method-source-code" id="M000041-source">
|
143
143
|
<pre>
|
144
144
|
<span class="ruby-comment cmt"># File erubis/engine/ejava.rb, line 104</span>
|
145
145
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_converter</span>(<span class="ruby-identifier">properties</span>={})
|
@@ -98,7 +98,7 @@ end
|
|
98
98
|
<h3 class="section-bar">Methods</h3>
|
99
99
|
|
100
100
|
<div class="name-list">
|
101
|
-
<a href="#
|
101
|
+
<a href="#M000040">init_converter</a>
|
102
102
|
</div>
|
103
103
|
</div>
|
104
104
|
|
@@ -127,19 +127,19 @@ end
|
|
127
127
|
<div id="methods">
|
128
128
|
<h3 class="section-bar">Public Instance methods</h3>
|
129
129
|
|
130
|
-
<div id="method-
|
131
|
-
<a name="
|
130
|
+
<div id="method-M000040" class="method-detail">
|
131
|
+
<a name="M000040"></a>
|
132
132
|
|
133
133
|
<div class="method-heading">
|
134
|
-
<a href="#
|
134
|
+
<a href="#M000040" class="method-signature">
|
135
135
|
<span class="method-name">init_converter</span><span class="method-args">(properties={})</span>
|
136
136
|
</a>
|
137
137
|
</div>
|
138
138
|
|
139
139
|
<div class="method-description">
|
140
140
|
<p><a class="source-toggle" href="#"
|
141
|
-
onclick="toggleCode('
|
142
|
-
<div class="method-source-code" id="
|
141
|
+
onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
|
142
|
+
<div class="method-source-code" id="M000040-source">
|
143
143
|
<pre>
|
144
144
|
<span class="ruby-comment cmt"># File erubis/engine/ejavascript.rb, line 106</span>
|
145
145
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_converter</span>(<span class="ruby-identifier">properties</span>={})
|
@@ -98,7 +98,7 @@ end
|
|
98
98
|
<h3 class="section-bar">Methods</h3>
|
99
99
|
|
100
100
|
<div class="name-list">
|
101
|
-
<a href="#
|
101
|
+
<a href="#M000047">init_converter</a>
|
102
102
|
</div>
|
103
103
|
</div>
|
104
104
|
|
@@ -127,19 +127,19 @@ end
|
|
127
127
|
<div id="methods">
|
128
128
|
<h3 class="section-bar">Public Instance methods</h3>
|
129
129
|
|
130
|
-
<div id="method-
|
131
|
-
<a name="
|
130
|
+
<div id="method-M000047" class="method-detail">
|
131
|
+
<a name="M000047"></a>
|
132
132
|
|
133
133
|
<div class="method-heading">
|
134
|
-
<a href="#
|
134
|
+
<a href="#M000047" class="method-signature">
|
135
135
|
<span class="method-name">init_converter</span><span class="method-args">(properties={})</span>
|
136
136
|
</a>
|
137
137
|
</div>
|
138
138
|
|
139
139
|
<div class="method-description">
|
140
140
|
<p><a class="source-toggle" href="#"
|
141
|
-
onclick="toggleCode('
|
142
|
-
<div class="method-source-code" id="
|
141
|
+
onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
|
142
|
+
<div class="method-source-code" id="M000047-source">
|
143
143
|
<pre>
|
144
144
|
<span class="ruby-comment cmt"># File erubis/engine/eperl.rb, line 88</span>
|
145
145
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_converter</span>(<span class="ruby-identifier">properties</span>={})
|
@@ -98,7 +98,7 @@ end
|
|
98
98
|
<h3 class="section-bar">Methods</h3>
|
99
99
|
|
100
100
|
<div class="name-list">
|
101
|
-
<a href="#
|
101
|
+
<a href="#M000042">init_converter</a>
|
102
102
|
</div>
|
103
103
|
</div>
|
104
104
|
|
@@ -127,19 +127,19 @@ end
|
|
127
127
|
<div id="methods">
|
128
128
|
<h3 class="section-bar">Public Instance methods</h3>
|
129
129
|
|
130
|
-
<div id="method-
|
131
|
-
<a name="
|
130
|
+
<div id="method-M000042" class="method-detail">
|
131
|
+
<a name="M000042"></a>
|
132
132
|
|
133
133
|
<div class="method-heading">
|
134
|
-
<a href="#
|
134
|
+
<a href="#M000042" class="method-signature">
|
135
135
|
<span class="method-name">init_converter</span><span class="method-args">(properties={})</span>
|
136
136
|
</a>
|
137
137
|
</div>
|
138
138
|
|
139
139
|
<div class="method-description">
|
140
140
|
<p><a class="source-toggle" href="#"
|
141
|
-
onclick="toggleCode('
|
142
|
-
<div class="method-source-code" id="
|
141
|
+
onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
|
142
|
+
<div class="method-source-code" id="M000042-source">
|
143
143
|
<pre>
|
144
144
|
<span class="ruby-comment cmt"># File erubis/engine/ephp.rb, line 92</span>
|
145
145
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_converter</span>(<span class="ruby-identifier">properties</span>={})
|
@@ -86,7 +86,7 @@
|
|
86
86
|
<h3 class="section-bar">Methods</h3>
|
87
87
|
|
88
88
|
<div class="name-list">
|
89
|
-
<a href="#
|
89
|
+
<a href="#M000049">init_converter</a>
|
90
90
|
</div>
|
91
91
|
</div>
|
92
92
|
|
@@ -116,21 +116,21 @@
|
|
116
116
|
<div id="methods">
|
117
117
|
<h3 class="section-bar">Public Instance methods</h3>
|
118
118
|
|
119
|
-
<div id="method-
|
120
|
-
<a name="
|
119
|
+
<div id="method-M000049" class="method-detail">
|
120
|
+
<a name="M000049"></a>
|
121
121
|
|
122
122
|
<div class="method-heading">
|
123
|
-
<a href="#
|
123
|
+
<a href="#M000049" class="method-signature">
|
124
124
|
<span class="method-name">init_converter</span><span class="method-args">(properties={})</span>
|
125
125
|
</a>
|
126
126
|
</div>
|
127
127
|
|
128
128
|
<div class="method-description">
|
129
129
|
<p><a class="source-toggle" href="#"
|
130
|
-
onclick="toggleCode('
|
131
|
-
<div class="method-source-code" id="
|
130
|
+
onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
|
131
|
+
<div class="method-source-code" id="M000049-source">
|
132
132
|
<pre>
|
133
|
-
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line
|
133
|
+
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line 109</span>
|
134
134
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_converter</span>(<span class="ruby-identifier">properties</span>={})
|
135
135
|
<span class="ruby-ivar">@pi</span> = <span class="ruby-value str">'rb'</span>
|
136
136
|
<span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">properties</span>)
|
@@ -98,7 +98,7 @@ end
|
|
98
98
|
<h3 class="section-bar">Methods</h3>
|
99
99
|
|
100
100
|
<div class="name-list">
|
101
|
-
<a href="#
|
101
|
+
<a href="#M000050">init_converter</a>
|
102
102
|
</div>
|
103
103
|
</div>
|
104
104
|
|
@@ -127,19 +127,19 @@ end
|
|
127
127
|
<div id="methods">
|
128
128
|
<h3 class="section-bar">Public Instance methods</h3>
|
129
129
|
|
130
|
-
<div id="method-
|
131
|
-
<a name="
|
130
|
+
<div id="method-M000050" class="method-detail">
|
131
|
+
<a name="M000050"></a>
|
132
132
|
|
133
133
|
<div class="method-heading">
|
134
|
-
<a href="#
|
134
|
+
<a href="#M000050" class="method-signature">
|
135
135
|
<span class="method-name">init_converter</span><span class="method-args">(properties={})</span>
|
136
136
|
</a>
|
137
137
|
</div>
|
138
138
|
|
139
139
|
<div class="method-description">
|
140
140
|
<p><a class="source-toggle" href="#"
|
141
|
-
onclick="toggleCode('
|
142
|
-
<div class="method-source-code" id="
|
141
|
+
onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
|
142
|
+
<div class="method-source-code" id="M000050-source">
|
143
143
|
<pre>
|
144
144
|
<span class="ruby-comment cmt"># File erubis/engine/escheme.rb, line 107</span>
|
145
145
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_converter</span>(<span class="ruby-identifier">properties</span>={})
|
@@ -86,11 +86,10 @@
|
|
86
86
|
<h3 class="section-bar">Methods</h3>
|
87
87
|
|
88
88
|
<div class="name-list">
|
89
|
-
<a href="#
|
90
|
-
<a href="#
|
91
|
-
<a href="#
|
92
|
-
<a href="#M000045">
|
93
|
-
<a href="#M000048">result</a>
|
89
|
+
<a href="#M000044">convert</a>
|
90
|
+
<a href="#M000046">evaluate</a>
|
91
|
+
<a href="#M000043">new</a>
|
92
|
+
<a href="#M000045">result</a>
|
94
93
|
</div>
|
95
94
|
</div>
|
96
95
|
|
@@ -110,7 +109,7 @@
|
|
110
109
|
<tr class="top-aligned-row context-row">
|
111
110
|
<td class="context-item-name">EMBEDDED_PATTERN</td>
|
112
111
|
<td>=</td>
|
113
|
-
<td class="context-item-value">/(^[ \t]*)?<\?rb(\s.*?)\?>([ \t]*\r?\n)
|
112
|
+
<td class="context-item-value">/(^[ \t]*)?<\?rb(\s.*?)\?>([ \t]*\r?\n)?|@(!+)?\{(.*?)\}@/m</td>
|
114
113
|
</tr>
|
115
114
|
</table>
|
116
115
|
</div>
|
@@ -138,21 +137,21 @@
|
|
138
137
|
<div id="methods">
|
139
138
|
<h3 class="section-bar">Public Class methods</h3>
|
140
139
|
|
141
|
-
<div id="method-
|
142
|
-
<a name="
|
140
|
+
<div id="method-M000043" class="method-detail">
|
141
|
+
<a name="M000043"></a>
|
143
142
|
|
144
143
|
<div class="method-heading">
|
145
|
-
<a href="#
|
144
|
+
<a href="#M000043" class="method-signature">
|
146
145
|
<span class="method-name">new</span><span class="method-args">(input=nil, options={})</span>
|
147
146
|
</a>
|
148
147
|
</div>
|
149
148
|
|
150
149
|
<div class="method-description">
|
151
150
|
<p><a class="source-toggle" href="#"
|
152
|
-
onclick="toggleCode('
|
153
|
-
<div class="method-source-code" id="
|
151
|
+
onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
|
152
|
+
<div class="method-source-code" id="M000043-source">
|
154
153
|
<pre>
|
155
|
-
<span class="ruby-comment cmt"># File erubis/tiny.rb, line
|
154
|
+
<span class="ruby-comment cmt"># File erubis/tiny.rb, line 80</span>
|
156
155
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">input</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">options</span>={})
|
157
156
|
<span class="ruby-ivar">@escape</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:escape</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'Erubis::XmlHelper.escape_xml'</span>
|
158
157
|
<span class="ruby-ivar">@src</span> = <span class="ruby-identifier">convert</span>(<span class="ruby-identifier">input</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">input</span>
|
@@ -164,51 +163,53 @@
|
|
164
163
|
|
165
164
|
<h3 class="section-bar">Public Instance methods</h3>
|
166
165
|
|
167
|
-
<div id="method-
|
168
|
-
<a name="
|
166
|
+
<div id="method-M000044" class="method-detail">
|
167
|
+
<a name="M000044"></a>
|
169
168
|
|
170
169
|
<div class="method-heading">
|
171
|
-
<a href="#
|
170
|
+
<a href="#M000044" class="method-signature">
|
172
171
|
<span class="method-name">convert</span><span class="method-args">(input)</span>
|
173
172
|
</a>
|
174
173
|
</div>
|
175
174
|
|
176
175
|
<div class="method-description">
|
177
176
|
<p><a class="source-toggle" href="#"
|
178
|
-
onclick="toggleCode('
|
179
|
-
<div class="method-source-code" id="
|
177
|
+
onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
|
178
|
+
<div class="method-source-code" id="M000044-source">
|
180
179
|
<pre>
|
181
|
-
<span class="ruby-comment cmt"># File erubis/tiny.rb, line
|
180
|
+
<span class="ruby-comment cmt"># File erubis/tiny.rb, line 89</span>
|
182
181
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert</span>(<span class="ruby-identifier">input</span>)
|
183
|
-
<span class="ruby-identifier">src</span> = <span class="ruby-value str">"_buf =
|
182
|
+
<span class="ruby-identifier">src</span> = <span class="ruby-value str">"_buf = '';"</span> <span class="ruby-comment cmt"># preamble</span>
|
184
183
|
<span class="ruby-identifier">pos</span> = <span class="ruby-value">0</span>
|
185
|
-
<span class="ruby-identifier">input</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-constant">EMBEDDED_PATTERN</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lspace</span>, <span class="ruby-identifier">
|
184
|
+
<span class="ruby-identifier">input</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-constant">EMBEDDED_PATTERN</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lspace</span>, <span class="ruby-identifier">stmt</span>, <span class="ruby-identifier">rspace</span>, <span class="ruby-identifier">indicator</span>, <span class="ruby-identifier">expr</span><span class="ruby-operator">|</span>
|
186
185
|
<span class="ruby-identifier">match</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">last_match</span>
|
187
|
-
<span class="ruby-identifier">
|
188
|
-
<span class="ruby-identifier">text</span> = <span class="ruby-identifier">input</span>[<span class="ruby-identifier">pos</span>, <span class="ruby-identifier">
|
186
|
+
<span class="ruby-identifier">len</span> = <span class="ruby-identifier">match</span>.<span class="ruby-identifier">begin</span>(<span class="ruby-value">0</span>) <span class="ruby-operator">-</span> <span class="ruby-identifier">pos</span>
|
187
|
+
<span class="ruby-identifier">text</span> = <span class="ruby-identifier">input</span>[<span class="ruby-identifier">pos</span>, <span class="ruby-identifier">len</span>]
|
189
188
|
<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">match</span>.<span class="ruby-identifier">end</span>(<span class="ruby-value">0</span>)
|
190
|
-
<span class="ruby-
|
191
|
-
|
192
|
-
|
189
|
+
<span class="ruby-comment cmt">#src << " _buf << '" << escape_text(text) << "';"</span>
|
190
|
+
<span class="ruby-identifier">text</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/['\\]/</span>, <span class="ruby-value str">'\\\\\&'</span>)
|
191
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" _buf << '"</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"';"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
|
192
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stmt</span> <span class="ruby-comment cmt"># <?rb ... ?></span>
|
193
193
|
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lspace</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">rspace</span>
|
194
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{lspace}#{
|
194
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{lspace}#{stmt}#{rspace}"</span>
|
195
195
|
<span class="ruby-keyword kw">else</span>
|
196
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-
|
197
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">
|
198
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-
|
196
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" _buf << '"</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">lspace</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"';"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lspace</span>
|
197
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">stmt</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">";"</span>
|
198
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" _buf << '"</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">rspace</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"';"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rspace</span>
|
199
199
|
<span class="ruby-keyword kw">end</span>
|
200
200
|
<span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># ${...}, $!{...}</span>
|
201
|
-
<span class="ruby-
|
202
|
-
|
203
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" _buf << #{@escape}("</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">code</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">");"</span>
|
201
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">indicator</span>
|
202
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" _buf << "</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@escape</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"("</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">expr</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">");"</span>
|
204
203
|
<span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">indicator</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'!'</span>
|
205
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" _buf << ("</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">
|
204
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" _buf << ("</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">expr</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">").to_s;"</span>
|
206
205
|
<span class="ruby-keyword kw">end</span>
|
207
206
|
<span class="ruby-keyword kw">end</span>
|
208
207
|
<span class="ruby-keyword kw">end</span>
|
209
208
|
<span class="ruby-identifier">rest</span> = <span class="ruby-identifier">$'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">input</span>
|
210
|
-
<span class="ruby-
|
211
|
-
<span class="ruby-identifier">
|
209
|
+
<span class="ruby-comment cmt">#src << " _buf << '" << escape_text(rest) << "';"</span>
|
210
|
+
<span class="ruby-identifier">rest</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/['\\]/</span>, <span class="ruby-value str">'\\\\\&'</span>)
|
211
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" _buf << '"</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">rest</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"';"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">rest</span>.<span class="ruby-identifier">empty?</span>
|
212
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n_buf.to_s\n"</span> <span class="ruby-comment cmt"># postamble</span>
|
212
213
|
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">src</span>
|
213
214
|
<span class="ruby-keyword kw">end</span>
|
214
215
|
</pre>
|
@@ -216,74 +217,60 @@
|
|
216
217
|
</div>
|
217
218
|
</div>
|
218
219
|
|
219
|
-
<div id="method-
|
220
|
-
<a name="
|
220
|
+
<div id="method-M000046" class="method-detail">
|
221
|
+
<a name="M000046"></a>
|
221
222
|
|
222
223
|
<div class="method-heading">
|
223
|
-
<a href="#
|
224
|
-
<span class="method-name">
|
224
|
+
<a href="#M000046" class="method-signature">
|
225
|
+
<span class="method-name">evaluate</span><span class="method-args">(_context=Object.new)</span>
|
225
226
|
</a>
|
226
227
|
</div>
|
227
228
|
|
228
229
|
<div class="method-description">
|
229
230
|
<p><a class="source-toggle" href="#"
|
230
|
-
onclick="toggleCode('
|
231
|
-
<div class="method-source-code" id="
|
231
|
+
onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
|
232
|
+
<div class="method-source-code" id="M000046-source">
|
232
233
|
<pre>
|
233
|
-
<span class="ruby-comment cmt"># File erubis/tiny.rb, line
|
234
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
235
|
-
<span class="ruby-keyword kw">
|
234
|
+
<span class="ruby-comment cmt"># File erubis/tiny.rb, line 132</span>
|
235
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">evaluate</span>(<span class="ruby-identifier">_context</span>=<span class="ruby-constant">Object</span>.<span class="ruby-identifier">new</span>)
|
236
|
+
<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>)
|
237
|
+
<span class="ruby-identifier">_obj</span> = <span class="ruby-constant">Object</span>.<span class="ruby-identifier">new</span>
|
238
|
+
<span class="ruby-identifier">_context</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">_obj</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-node">"@#{k}"</span>, <span class="ruby-identifier">v</span>) <span class="ruby-keyword kw">end</span>
|
239
|
+
<span class="ruby-identifier">_context</span> = <span class="ruby-identifier">_obj</span>
|
240
|
+
<span class="ruby-keyword kw">end</span>
|
241
|
+
<span class="ruby-identifier">_context</span>.<span class="ruby-identifier">instance_eval</span> <span class="ruby-ivar">@src</span>
|
236
242
|
<span class="ruby-keyword kw">end</span>
|
237
243
|
</pre>
|
238
244
|
</div>
|
239
245
|
</div>
|
240
246
|
</div>
|
241
247
|
|
242
|
-
<div id="method-
|
243
|
-
<a name="
|
248
|
+
<div id="method-M000045" class="method-detail">
|
249
|
+
<a name="M000045"></a>
|
244
250
|
|
245
251
|
<div class="method-heading">
|
246
|
-
<a href="#
|
247
|
-
<span class="method-name">
|
252
|
+
<a href="#M000045" class="method-signature">
|
253
|
+
<span class="method-name">result</span><span class="method-args">(_binding=TOPLEVEL_BINDING)</span>
|
248
254
|
</a>
|
249
255
|
</div>
|
250
256
|
|
251
257
|
<div class="method-description">
|
252
|
-
<p
|
253
|
-
|
254
|
-
|
258
|
+
<p>
|
259
|
+
def escape_text(text)
|
260
|
+
</p>
|
255
261
|
<pre>
|
256
|
-
|
257
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">evaluate</span>(<span class="ruby-identifier">context</span>=<span class="ruby-constant">Object</span>.<span class="ruby-identifier">new</span>)
|
258
|
-
<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>)
|
259
|
-
<span class="ruby-identifier">obj</span> = <span class="ruby-constant">Object</span>.<span class="ruby-identifier">new</span>
|
260
|
-
<span class="ruby-identifier">context</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-node">"@#{k}"</span>, <span class="ruby-identifier">v</span>) <span class="ruby-keyword kw">end</span>
|
261
|
-
<span class="ruby-identifier">context</span> = <span class="ruby-identifier">obj</span>
|
262
|
-
<span class="ruby-keyword kw">end</span>
|
263
|
-
<span class="ruby-identifier">context</span>.<span class="ruby-identifier">instance_eval</span> <span class="ruby-ivar">@src</span>
|
264
|
-
<span class="ruby-keyword kw">end</span>
|
262
|
+
return text.gsub!(/['\\]/, '\\\\\&') || text
|
265
263
|
</pre>
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
<div id="method-M000048" class="method-detail">
|
271
|
-
<a name="M000048"></a>
|
272
|
-
|
273
|
-
<div class="method-heading">
|
274
|
-
<a href="#M000048" class="method-signature">
|
275
|
-
<span class="method-name">result</span><span class="method-args">(binding=TOPLEVEL_BINDING)</span>
|
276
|
-
</a>
|
277
|
-
</div>
|
278
|
-
|
279
|
-
<div class="method-description">
|
264
|
+
<p>
|
265
|
+
end
|
266
|
+
</p>
|
280
267
|
<p><a class="source-toggle" href="#"
|
281
|
-
onclick="toggleCode('
|
282
|
-
<div class="method-source-code" id="
|
268
|
+
onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
|
269
|
+
<div class="method-source-code" id="M000045-source">
|
283
270
|
<pre>
|
284
|
-
<span class="ruby-comment cmt"># File erubis/tiny.rb, line
|
285
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">result</span>(<span class="ruby-identifier">
|
286
|
-
<span class="ruby-identifier">eval</span> <span class="ruby-ivar">@src</span>, <span class="ruby-identifier">
|
271
|
+
<span class="ruby-comment cmt"># File erubis/tiny.rb, line 128</span>
|
272
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">result</span>(<span class="ruby-identifier">_binding</span>=<span class="ruby-constant">TOPLEVEL_BINDING</span>)
|
273
|
+
<span class="ruby-identifier">eval</span> <span class="ruby-ivar">@src</span>, <span class="ruby-identifier">_binding</span>
|
287
274
|
<span class="ruby-keyword kw">end</span>
|
288
275
|
</pre>
|
289
276
|
</div>
|