erubis 2.1.0 → 2.2.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 → 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>
|