erubis 2.3.1 → 2.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/{CHANGES → CHANGES.txt} +373 -3
- data/MIT-LICENSE +1 -1
- data/README.txt +6 -5
- data/benchmark/bench.rb +18 -11
- data/bin/erubis +3 -4
- data/contrib/erubis +3462 -5
- data/contrib/inline-require +54 -28
- data/doc/docstyle.css +25 -4
- data/doc/users-guide.html +814 -110
- data/doc-api/classes/ActionView/TemplateHandlers/ErubisHandler.html +209 -0
- data/doc-api/classes/ActionView.html +105 -0
- data/doc-api/classes/Erubis/ArrayBufferEnhancer.html +14 -14
- data/doc-api/classes/Erubis/ArrayEnhancer.html +16 -16
- data/doc-api/classes/Erubis/Basic/Converter.html +36 -31
- data/doc-api/classes/Erubis/BiPatternEnhancer.html +16 -13
- data/doc-api/classes/Erubis/CGenerator.html +70 -70
- data/doc-api/classes/Erubis/Context.html +49 -49
- data/doc-api/classes/Erubis/Converter.html +30 -29
- data/doc-api/classes/Erubis/CppGenerator.html +382 -0
- data/doc-api/classes/Erubis/DeleteIndentEnhancer.html +7 -7
- data/doc-api/classes/Erubis/Ecpp.html +126 -0
- data/doc-api/classes/Erubis/Engine.html +46 -43
- data/doc-api/classes/Erubis/ErboutEnhancer.html +16 -16
- data/doc-api/classes/Erubis/EscapeEnhancer.html +7 -7
- data/doc-api/classes/Erubis/EscapedEcpp.html +120 -0
- data/doc-api/classes/Erubis/Evaluator.html +22 -22
- data/doc-api/classes/Erubis/Generator.html +70 -70
- data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +18 -15
- data/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +787 -0
- data/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +213 -0
- data/doc-api/classes/Erubis/Helpers/RailsHelper.html +103 -54
- data/doc-api/classes/Erubis/Helpers.html +6 -1
- data/doc-api/classes/Erubis/InterpolationEnhancer.html +42 -41
- data/doc-api/classes/Erubis/JavaGenerator.html +69 -69
- data/doc-api/classes/Erubis/JavascriptGenerator.html +79 -74
- data/doc-api/classes/Erubis/Main.html +49 -48
- data/doc-api/classes/Erubis/NoCodeEnhancer.html +35 -35
- data/doc-api/classes/Erubis/NoTextEnhancer.html +7 -7
- data/doc-api/classes/Erubis/OptimizedEruby.html +7 -7
- data/doc-api/classes/Erubis/OptimizedGenerator.html +84 -84
- data/doc-api/classes/Erubis/OptimizedXmlEruby.html +7 -7
- data/doc-api/classes/Erubis/PI/Converter.html +23 -22
- data/doc-api/classes/Erubis/PI/Ec.html +7 -7
- data/doc-api/classes/Erubis/PI/Ecpp.html +166 -0
- data/doc-api/classes/Erubis/PI/Ejava.html +7 -7
- data/doc-api/classes/Erubis/PI/Ejavascript.html +7 -7
- data/doc-api/classes/Erubis/PI/Eperl.html +7 -7
- data/doc-api/classes/Erubis/PI/Ephp.html +7 -7
- data/doc-api/classes/Erubis/PI/Eruby.html +6 -6
- data/doc-api/classes/Erubis/PI/Escheme.html +7 -7
- data/doc-api/classes/Erubis/PI/TinyEruby.html +28 -27
- data/doc-api/classes/Erubis/PI.html +1 -0
- data/doc-api/classes/Erubis/PercentLineEnhancer.html +18 -29
- data/doc-api/classes/Erubis/PerlGenerator.html +63 -63
- data/doc-api/classes/Erubis/PhpGenerator.html +63 -63
- data/doc-api/classes/Erubis/PrefixedLineEnhancer.html +210 -0
- data/doc-api/classes/Erubis/PrefixedLineEruby.html +120 -0
- data/doc-api/classes/Erubis/PreprocessingEruby.html +183 -0
- data/doc-api/classes/Erubis/PreprocessingHelper.html +212 -0
- data/doc-api/classes/Erubis/PrintEnabledEnhancer.html +23 -23
- data/doc-api/classes/Erubis/PrintOutEnhancer.html +38 -38
- data/doc-api/classes/Erubis/RubyEvaluator.html +59 -22
- data/doc-api/classes/Erubis/RubyGenerator.html +53 -52
- data/doc-api/classes/Erubis/SchemeGenerator.html +70 -70
- data/doc-api/classes/Erubis/SimplifyEnhancer.html +10 -9
- data/doc-api/classes/Erubis/StdoutEnhancer.html +3 -3
- data/doc-api/classes/Erubis/StringBufferEnhancer.html +16 -16
- data/doc-api/classes/Erubis/TinyEruby.html +33 -33
- data/doc-api/classes/Erubis/XmlHelper.html +80 -15
- data/doc-api/classes/Erubis.html +25 -1
- data/doc-api/classes/Kernel.html +155 -0
- data/doc-api/created.rid +1 -1
- data/doc-api/files/README_txt.html +8 -8
- data/doc-api/files/erubis/context_rb.html +2 -2
- data/doc-api/files/erubis/converter_rb.html +3 -3
- data/doc-api/files/erubis/engine/ec_rb.html +2 -2
- data/doc-api/files/erubis/engine/ecpp_rb.html +115 -0
- 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 -2
- 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 +3 -3
- data/doc-api/files/erubis/helper_rb.html +2 -2
- data/doc-api/files/erubis/helpers/rails_form_helper_rb.html +107 -0
- data/doc-api/files/erubis/helpers/rails_helper_rb.html +3 -2
- 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/preprocessing_rb.html +114 -0
- data/doc-api/files/erubis/tiny_rb.html +2 -2
- data/doc-api/files/erubis/util_rb.html +107 -0
- data/doc-api/files/erubis_rb.html +2 -2
- data/doc-api/fr_class_index.html +13 -0
- data/doc-api/fr_file_index.html +4 -0
- data/doc-api/fr_method_index.html +237 -179
- data/examples/basic/Makefile +7 -2
- data/examples/basic/example.ecpp +33 -0
- data/lib/erubis/context.rb +2 -3
- data/lib/erubis/converter.rb +17 -11
- data/lib/erubis/engine/ec.rb +2 -3
- data/lib/erubis/engine/ecpp.rb +113 -0
- data/lib/erubis/engine/ejava.rb +9 -10
- data/lib/erubis/engine/ejavascript.rb +14 -9
- data/lib/erubis/engine/enhanced.rb +7 -3
- data/lib/erubis/engine/eperl.rb +2 -3
- data/lib/erubis/engine/ephp.rb +2 -3
- data/lib/erubis/engine/eruby.rb +8 -8
- data/lib/erubis/engine/escheme.rb +2 -3
- data/lib/erubis/engine/optimized.rb +2 -3
- data/lib/erubis/engine.rb +13 -11
- data/lib/erubis/enhancer.rb +101 -34
- data/lib/erubis/error.rb +2 -3
- data/lib/erubis/evaluator.rb +27 -10
- data/lib/erubis/generator.rb +3 -4
- data/lib/erubis/helper.rb +14 -3
- data/lib/erubis/helpers/rails_form_helper.rb +197 -0
- data/lib/erubis/helpers/rails_helper.rb +219 -77
- data/lib/erubis/local-setting.rb +2 -3
- data/lib/erubis/main.rb +85 -60
- data/lib/erubis/preprocessing.rb +58 -0
- data/lib/erubis/tiny.rb +9 -9
- data/lib/erubis/util.rb +22 -0
- data/lib/erubis.rb +4 -4
- data/test/assert-text-equal.rb +2 -3
- data/test/data/users-guide/bufvar-example.rb +10 -0
- data/test/data/users-guide/bufvar-example.result +17 -0
- data/test/data/users-guide/def_method.rb +14 -0
- data/test/data/users-guide/def_method.result +3 -0
- data/test/data/users-guide/example.ecpp +30 -0
- data/test/data/users-guide/example1.rb +1 -0
- data/test/data/users-guide/example_c.result +22 -19
- data/test/data/users-guide/fasteruby-example.rb +8 -0
- data/test/data/users-guide/fasteruby-example.result +18 -0
- data/test/data/users-guide/main_program1.rb +8 -0
- data/test/data/users-guide/main_program1.result +6 -0
- data/test/data/users-guide/main_program2.rb +8 -0
- data/test/data/users-guide/main_program2.result +6 -0
- data/test/data/users-guide/percentline-example.rhtml +3 -1
- data/test/data/users-guide/percentline_example.result +5 -3
- data/test/data/users-guide/prefixedline-example.rb +9 -0
- data/test/data/users-guide/prefixedline-example.rhtml +6 -0
- data/test/data/users-guide/prefixedline_example.result +9 -0
- data/test/data/users-guide/tail_260.result +4 -0
- data/test/data/users-guide/tailnewline.rhtml +3 -0
- data/test/data/users-guide/template1.rhtml +4 -0
- data/test/data/users-guide/template2.rhtml +4 -0
- data/test/test-engines.rb +88 -5
- data/test/test-enhancers.rb +83 -6
- data/test/test-erubis.rb +115 -11
- data/test/test-index-cgi.rb +191 -0
- data/test/test-main.rb +143 -31
- data/test/test-users-guide.rb +20 -3
- data/test/test.rb +18 -3
- data/test/testutil.rb +44 -8
- metadata +104 -67
- data/contrib/action_view_base_rb.patch +0 -23
@@ -89,11 +89,11 @@ this is only for <a href="Eruby.html">Eruby</a>.
|
|
89
89
|
<h3 class="section-bar">Methods</h3>
|
90
90
|
|
91
91
|
<div class="name-list">
|
92
|
-
<a href="#
|
93
|
-
<a href="#
|
94
|
-
<a href="#
|
95
|
-
<a href="#
|
96
|
-
<a href="#
|
92
|
+
<a href="#M000183">add_expr_escaped</a>
|
93
|
+
<a href="#M000182">add_expr_literal</a>
|
94
|
+
<a href="#M000184">add_postamble</a>
|
95
|
+
<a href="#M000180">add_preamble</a>
|
96
|
+
<a href="#M000181">add_text</a>
|
97
97
|
</div>
|
98
98
|
</div>
|
99
99
|
|
@@ -115,67 +115,67 @@ this is only for <a href="Eruby.html">Eruby</a>.
|
|
115
115
|
<div id="methods">
|
116
116
|
<h3 class="section-bar">Public Instance methods</h3>
|
117
117
|
|
118
|
-
<div id="method-
|
119
|
-
<a name="
|
118
|
+
<div id="method-M000183" class="method-detail">
|
119
|
+
<a name="M000183"></a>
|
120
120
|
|
121
121
|
<div class="method-heading">
|
122
|
-
<a href="#
|
122
|
+
<a href="#M000183" class="method-signature">
|
123
123
|
<span class="method-name">add_expr_escaped</span><span class="method-args">(src, code)</span>
|
124
124
|
</a>
|
125
125
|
</div>
|
126
126
|
|
127
127
|
<div class="method-description">
|
128
128
|
<p><a class="source-toggle" href="#"
|
129
|
-
onclick="toggleCode('
|
130
|
-
<div class="method-source-code" id="
|
129
|
+
onclick="toggleCode('M000183-source');return false;">[Source]</a></p>
|
130
|
+
<div class="method-source-code" id="M000183-source">
|
131
131
|
<pre>
|
132
|
-
<span class="ruby-comment cmt"># File erubis/enhancer.rb, line
|
132
|
+
<span class="ruby-comment cmt"># File erubis/enhancer.rb, line 102</span>
|
133
133
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_expr_escaped</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
134
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-
|
134
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" print #{escaped_expr(code)};"</span>
|
135
135
|
<span class="ruby-keyword kw">end</span>
|
136
136
|
</pre>
|
137
137
|
</div>
|
138
138
|
</div>
|
139
139
|
</div>
|
140
140
|
|
141
|
-
<div id="method-
|
142
|
-
<a name="
|
141
|
+
<div id="method-M000182" class="method-detail">
|
142
|
+
<a name="M000182"></a>
|
143
143
|
|
144
144
|
<div class="method-heading">
|
145
|
-
<a href="#
|
145
|
+
<a href="#M000182" class="method-signature">
|
146
146
|
<span class="method-name">add_expr_literal</span><span class="method-args">(src, code)</span>
|
147
147
|
</a>
|
148
148
|
</div>
|
149
149
|
|
150
150
|
<div class="method-description">
|
151
151
|
<p><a class="source-toggle" href="#"
|
152
|
-
onclick="toggleCode('
|
153
|
-
<div class="method-source-code" id="
|
152
|
+
onclick="toggleCode('M000182-source');return false;">[Source]</a></p>
|
153
|
+
<div class="method-source-code" id="M000182-source">
|
154
154
|
<pre>
|
155
|
-
<span class="ruby-comment cmt"># File erubis/enhancer.rb, line
|
155
|
+
<span class="ruby-comment cmt"># File erubis/enhancer.rb, line 98</span>
|
156
156
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_expr_literal</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
157
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-
|
157
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" print((#{code}).to_s);"</span>
|
158
158
|
<span class="ruby-keyword kw">end</span>
|
159
159
|
</pre>
|
160
160
|
</div>
|
161
161
|
</div>
|
162
162
|
</div>
|
163
163
|
|
164
|
-
<div id="method-
|
165
|
-
<a name="
|
164
|
+
<div id="method-M000184" class="method-detail">
|
165
|
+
<a name="M000184"></a>
|
166
166
|
|
167
167
|
<div class="method-heading">
|
168
|
-
<a href="#
|
168
|
+
<a href="#M000184" class="method-signature">
|
169
169
|
<span class="method-name">add_postamble</span><span class="method-args">(src)</span>
|
170
170
|
</a>
|
171
171
|
</div>
|
172
172
|
|
173
173
|
<div class="method-description">
|
174
174
|
<p><a class="source-toggle" href="#"
|
175
|
-
onclick="toggleCode('
|
176
|
-
<div class="method-source-code" id="
|
175
|
+
onclick="toggleCode('M000184-source');return false;">[Source]</a></p>
|
176
|
+
<div class="method-source-code" id="M000184-source">
|
177
177
|
<pre>
|
178
|
-
<span class="ruby-comment cmt"># File erubis/enhancer.rb, line
|
178
|
+
<span class="ruby-comment cmt"># File erubis/enhancer.rb, line 106</span>
|
179
179
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_postamble</span>(<span class="ruby-identifier">src</span>)
|
180
180
|
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">src</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?\n</span>
|
181
181
|
<span class="ruby-keyword kw">end</span>
|
@@ -184,21 +184,21 @@ this is only for <a href="Eruby.html">Eruby</a>.
|
|
184
184
|
</div>
|
185
185
|
</div>
|
186
186
|
|
187
|
-
<div id="method-
|
188
|
-
<a name="
|
187
|
+
<div id="method-M000180" class="method-detail">
|
188
|
+
<a name="M000180"></a>
|
189
189
|
|
190
190
|
<div class="method-heading">
|
191
|
-
<a href="#
|
191
|
+
<a href="#M000180" class="method-signature">
|
192
192
|
<span class="method-name">add_preamble</span><span class="method-args">(src)</span>
|
193
193
|
</a>
|
194
194
|
</div>
|
195
195
|
|
196
196
|
<div class="method-description">
|
197
197
|
<p><a class="source-toggle" href="#"
|
198
|
-
onclick="toggleCode('
|
199
|
-
<div class="method-source-code" id="
|
198
|
+
onclick="toggleCode('M000180-source');return false;">[Source]</a></p>
|
199
|
+
<div class="method-source-code" id="M000180-source">
|
200
200
|
<pre>
|
201
|
-
<span class="ruby-comment cmt"># File erubis/enhancer.rb, line
|
201
|
+
<span class="ruby-comment cmt"># File erubis/enhancer.rb, line 91</span>
|
202
202
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_preamble</span>(<span class="ruby-identifier">src</span>)
|
203
203
|
<span class="ruby-keyword kw">end</span>
|
204
204
|
</pre>
|
@@ -206,23 +206,23 @@ this is only for <a href="Eruby.html">Eruby</a>.
|
|
206
206
|
</div>
|
207
207
|
</div>
|
208
208
|
|
209
|
-
<div id="method-
|
210
|
-
<a name="
|
209
|
+
<div id="method-M000181" class="method-detail">
|
210
|
+
<a name="M000181"></a>
|
211
211
|
|
212
212
|
<div class="method-heading">
|
213
|
-
<a href="#
|
213
|
+
<a href="#M000181" class="method-signature">
|
214
214
|
<span class="method-name">add_text</span><span class="method-args">(src, text)</span>
|
215
215
|
</a>
|
216
216
|
</div>
|
217
217
|
|
218
218
|
<div class="method-description">
|
219
219
|
<p><a class="source-toggle" href="#"
|
220
|
-
onclick="toggleCode('
|
221
|
-
<div class="method-source-code" id="
|
220
|
+
onclick="toggleCode('M000181-source');return false;">[Source]</a></p>
|
221
|
+
<div class="method-source-code" id="M000181-source">
|
222
222
|
<pre>
|
223
|
-
<span class="ruby-comment cmt"># File erubis/enhancer.rb, line
|
223
|
+
<span class="ruby-comment cmt"># File erubis/enhancer.rb, line 94</span>
|
224
224
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">text</span>)
|
225
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-
|
225
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" print '#{escape_text(text)}';"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
|
226
226
|
<span class="ruby-keyword kw">end</span>
|
227
227
|
</pre>
|
228
228
|
</div>
|
@@ -86,8 +86,9 @@ evaluator for Ruby
|
|
86
86
|
<h3 class="section-bar">Methods</h3>
|
87
87
|
|
88
88
|
<div class="name-list">
|
89
|
-
<a href="#
|
90
|
-
<a href="#
|
89
|
+
<a href="#M000210">def_method</a>
|
90
|
+
<a href="#M000209">evaluate</a>
|
91
|
+
<a href="#M000208">result</a>
|
91
92
|
</div>
|
92
93
|
</div>
|
93
94
|
|
@@ -116,12 +117,40 @@ evaluator for Ruby
|
|
116
117
|
<div id="methods">
|
117
118
|
<h3 class="section-bar">Public Instance methods</h3>
|
118
119
|
|
119
|
-
<div id="method-
|
120
|
-
<a name="
|
120
|
+
<div id="method-M000210" class="method-detail">
|
121
|
+
<a name="M000210"></a>
|
121
122
|
|
122
123
|
<div class="method-heading">
|
123
|
-
<a href="#
|
124
|
-
<span class="method-name">
|
124
|
+
<a href="#M000210" class="method-signature">
|
125
|
+
<span class="method-name">def_method</span><span class="method-args">(object, method_name, filename=nil)</span>
|
126
|
+
</a>
|
127
|
+
</div>
|
128
|
+
|
129
|
+
<div class="method-description">
|
130
|
+
<p>
|
131
|
+
if object is an Class or Module then define instance method to it, else
|
132
|
+
define singleton method to it.
|
133
|
+
</p>
|
134
|
+
<p><a class="source-toggle" href="#"
|
135
|
+
onclick="toggleCode('M000210-source');return false;">[Source]</a></p>
|
136
|
+
<div class="method-source-code" id="M000210-source">
|
137
|
+
<pre>
|
138
|
+
<span class="ruby-comment cmt"># File erubis/evaluator.rb, line 79</span>
|
139
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">def_method</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">method_name</span>, <span class="ruby-identifier">filename</span>=<span class="ruby-keyword kw">nil</span>)
|
140
|
+
<span class="ruby-identifier">m</span> = <span class="ruby-identifier">object</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Module</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">:module_eval</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">:instance_eval</span>
|
141
|
+
<span class="ruby-identifier">object</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-identifier">m</span>, <span class="ruby-node">"def #{method_name}; #{@src}; end"</span>, <span class="ruby-identifier">filename</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@filename</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'(erubis)'</span>)
|
142
|
+
<span class="ruby-keyword kw">end</span>
|
143
|
+
</pre>
|
144
|
+
</div>
|
145
|
+
</div>
|
146
|
+
</div>
|
147
|
+
|
148
|
+
<div id="method-M000209" class="method-detail">
|
149
|
+
<a name="M000209"></a>
|
150
|
+
|
151
|
+
<div class="method-heading">
|
152
|
+
<a href="#M000209" class="method-signature">
|
153
|
+
<span class="method-name">evaluate</span><span class="method-args">(_context=Context.new)</span>
|
125
154
|
</a>
|
126
155
|
</div>
|
127
156
|
|
@@ -130,24 +159,27 @@ evaluator for Ruby
|
|
130
159
|
invoke context.instance_eval(@src)
|
131
160
|
</p>
|
132
161
|
<p><a class="source-toggle" href="#"
|
133
|
-
onclick="toggleCode('
|
134
|
-
<div class="method-source-code" id="
|
162
|
+
onclick="toggleCode('M000209-source');return false;">[Source]</a></p>
|
163
|
+
<div class="method-source-code" id="M000209-source">
|
135
164
|
<pre>
|
136
|
-
<span class="ruby-comment cmt"># File erubis/evaluator.rb, line
|
137
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">evaluate</span>(<span class="ruby-identifier">
|
138
|
-
<span class="ruby-identifier">
|
139
|
-
<span class="ruby-
|
165
|
+
<span class="ruby-comment cmt"># File erubis/evaluator.rb, line 69</span>
|
166
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">evaluate</span>(<span class="ruby-identifier">_context</span>=<span class="ruby-constant">Context</span>.<span class="ruby-identifier">new</span>)
|
167
|
+
<span class="ruby-identifier">_context</span> = <span class="ruby-constant">Context</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">_context</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">_context</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
|
168
|
+
<span class="ruby-comment cmt">#return _context.instance_eval(@src, @filename || '(erubis)')</span>
|
169
|
+
<span class="ruby-comment cmt">#@_proc ||= eval("proc { #{@src} }", Erubis::EMPTY_BINDING, @filename || '(erubis)')</span>
|
170
|
+
<span class="ruby-ivar">@_proc</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">eval</span>(<span class="ruby-node">"proc { #{@src} }"</span>, <span class="ruby-identifier">binding</span>(), <span class="ruby-ivar">@filename</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'(erubis)'</span>)
|
171
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_context</span>.<span class="ruby-identifier">instance_eval</span>(<span class="ruby-operator">&</span><span class="ruby-ivar">@_proc</span>)
|
140
172
|
<span class="ruby-keyword kw">end</span>
|
141
173
|
</pre>
|
142
174
|
</div>
|
143
175
|
</div>
|
144
176
|
</div>
|
145
177
|
|
146
|
-
<div id="method-
|
147
|
-
<a name="
|
178
|
+
<div id="method-M000208" class="method-detail">
|
179
|
+
<a name="M000208"></a>
|
148
180
|
|
149
181
|
<div class="method-heading">
|
150
|
-
<a href="#
|
182
|
+
<a href="#M000208" class="method-signature">
|
151
183
|
<span class="method-name">result</span><span class="method-args">(_binding_or_hash=TOPLEVEL_BINDING)</span>
|
152
184
|
</a>
|
153
185
|
</div>
|
@@ -157,18 +189,23 @@ invoke context.instance_eval(@src)
|
|
157
189
|
eval(@src) with binding object
|
158
190
|
</p>
|
159
191
|
<p><a class="source-toggle" href="#"
|
160
|
-
onclick="toggleCode('
|
161
|
-
<div class="method-source-code" id="
|
192
|
+
onclick="toggleCode('M000208-source');return false;">[Source]</a></p>
|
193
|
+
<div class="method-source-code" id="M000208-source">
|
162
194
|
<pre>
|
163
|
-
<span class="ruby-comment cmt"># File erubis/evaluator.rb, line
|
195
|
+
<span class="ruby-comment cmt"># File erubis/evaluator.rb, line 53</span>
|
164
196
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">result</span>(<span class="ruby-identifier">_binding_or_hash</span>=<span class="ruby-constant">TOPLEVEL_BINDING</span>)
|
165
197
|
<span class="ruby-identifier">_arg</span> = <span class="ruby-identifier">_binding_or_hash</span>
|
166
198
|
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">_arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
|
167
|
-
<span class="ruby-
|
168
|
-
<span class="ruby-identifier">eval</span> <span class="ruby-identifier">_arg</span>.<span class="ruby-identifier">
|
169
|
-
|
199
|
+
<span class="ruby-identifier">_b</span> = <span class="ruby-identifier">binding</span>()
|
200
|
+
<span class="ruby-identifier">eval</span> <span class="ruby-identifier">_arg</span>.<span class="ruby-identifier">collect</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-node">"#{k} = _arg[#{k.inspect}]; "</span>}.<span class="ruby-identifier">join</span>, <span class="ruby-identifier">_b</span>
|
201
|
+
<span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">_arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Binding</span>)
|
202
|
+
<span class="ruby-identifier">_b</span> = <span class="ruby-identifier">_arg</span>
|
203
|
+
<span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">_arg</span>.<span class="ruby-identifier">nil?</span>
|
204
|
+
<span class="ruby-identifier">_b</span> = <span class="ruby-identifier">binding</span>()
|
205
|
+
<span class="ruby-keyword kw">else</span>
|
206
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"#{self.class.name}#result(): argument should be Binding or Hash but passed #{_arg.class.name} object."</span>)
|
170
207
|
<span class="ruby-keyword kw">end</span>
|
171
|
-
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">eval</span>(<span class="ruby-ivar">@src</span>, <span class="ruby-identifier">
|
208
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">eval</span>(<span class="ruby-ivar">@src</span>, <span class="ruby-identifier">_b</span>, (<span class="ruby-ivar">@filename</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'(erubis'</span>))
|
172
209
|
<span class="ruby-keyword kw">end</span>
|
173
210
|
</pre>
|
174
211
|
</div>
|
@@ -86,14 +86,14 @@ code generator for Ruby
|
|
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="#
|
93
|
-
<a href="#
|
94
|
-
<a href="#
|
95
|
-
<a href="#
|
96
|
-
<a href="#
|
89
|
+
<a href="#M000121">add_expr_debug</a>
|
90
|
+
<a href="#M000120">add_expr_escaped</a>
|
91
|
+
<a href="#M000119">add_expr_literal</a>
|
92
|
+
<a href="#M000118">add_stmt</a>
|
93
|
+
<a href="#M000117">add_text</a>
|
94
|
+
<a href="#M000115">escape_text</a>
|
95
|
+
<a href="#M000116">escaped_expr</a>
|
96
|
+
<a href="#M000114">init_generator</a>
|
97
97
|
</div>
|
98
98
|
</div>
|
99
99
|
|
@@ -123,19 +123,19 @@ code generator for Ruby
|
|
123
123
|
<div id="methods">
|
124
124
|
<h3 class="section-bar">Public Instance methods</h3>
|
125
125
|
|
126
|
-
<div id="method-
|
127
|
-
<a name="
|
126
|
+
<div id="method-M000121" class="method-detail">
|
127
|
+
<a name="M000121"></a>
|
128
128
|
|
129
129
|
<div class="method-heading">
|
130
|
-
<a href="#
|
130
|
+
<a href="#M000121" class="method-signature">
|
131
131
|
<span class="method-name">add_expr_debug</span><span class="method-args">(src, code)</span>
|
132
132
|
</a>
|
133
133
|
</div>
|
134
134
|
|
135
135
|
<div class="method-description">
|
136
136
|
<p><a class="source-toggle" href="#"
|
137
|
-
onclick="toggleCode('
|
138
|
-
<div class="method-source-code" id="
|
137
|
+
onclick="toggleCode('M000121-source');return false;">[Source]</a></p>
|
138
|
+
<div class="method-source-code" id="M000121-source">
|
139
139
|
<pre>
|
140
140
|
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line 63</span>
|
141
141
|
<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>)
|
@@ -148,65 +148,65 @@ code generator for Ruby
|
|
148
148
|
</div>
|
149
149
|
</div>
|
150
150
|
|
151
|
-
<div id="method-
|
152
|
-
<a name="
|
151
|
+
<div id="method-M000120" class="method-detail">
|
152
|
+
<a name="M000120"></a>
|
153
153
|
|
154
154
|
<div class="method-heading">
|
155
|
-
<a href="#
|
155
|
+
<a href="#M000120" class="method-signature">
|
156
156
|
<span class="method-name">add_expr_escaped</span><span class="method-args">(src, code)</span>
|
157
157
|
</a>
|
158
158
|
</div>
|
159
159
|
|
160
160
|
<div class="method-description">
|
161
161
|
<p><a class="source-toggle" href="#"
|
162
|
-
onclick="toggleCode('
|
163
|
-
<div class="method-source-code" id="
|
162
|
+
onclick="toggleCode('M000120-source');return false;">[Source]</a></p>
|
163
|
+
<div class="method-source-code" id="M000120-source">
|
164
164
|
<pre>
|
165
165
|
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line 59</span>
|
166
166
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_expr_escaped</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
167
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-
|
167
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" #{@bufvar} << "</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">escaped_expr</span>(<span class="ruby-identifier">code</span>) <span class="ruby-operator"><<</span> <span class="ruby-value str">';'</span>
|
168
168
|
<span class="ruby-keyword kw">end</span>
|
169
169
|
</pre>
|
170
170
|
</div>
|
171
171
|
</div>
|
172
172
|
</div>
|
173
173
|
|
174
|
-
<div id="method-
|
175
|
-
<a name="
|
174
|
+
<div id="method-M000119" class="method-detail">
|
175
|
+
<a name="M000119"></a>
|
176
176
|
|
177
177
|
<div class="method-heading">
|
178
|
-
<a href="#
|
178
|
+
<a href="#M000119" class="method-signature">
|
179
179
|
<span class="method-name">add_expr_literal</span><span class="method-args">(src, code)</span>
|
180
180
|
</a>
|
181
181
|
</div>
|
182
182
|
|
183
183
|
<div class="method-description">
|
184
184
|
<p><a class="source-toggle" href="#"
|
185
|
-
onclick="toggleCode('
|
186
|
-
<div class="method-source-code" id="
|
185
|
+
onclick="toggleCode('M000119-source');return false;">[Source]</a></p>
|
186
|
+
<div class="method-source-code" id="M000119-source">
|
187
187
|
<pre>
|
188
188
|
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line 55</span>
|
189
189
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_expr_literal</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
190
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-
|
190
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" #{@bufvar} << ("</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">code</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">').to_s;'</span>
|
191
191
|
<span class="ruby-keyword kw">end</span>
|
192
192
|
</pre>
|
193
193
|
</div>
|
194
194
|
</div>
|
195
195
|
</div>
|
196
196
|
|
197
|
-
<div id="method-
|
198
|
-
<a name="
|
197
|
+
<div id="method-M000118" class="method-detail">
|
198
|
+
<a name="M000118"></a>
|
199
199
|
|
200
200
|
<div class="method-heading">
|
201
|
-
<a href="#
|
201
|
+
<a href="#M000118" class="method-signature">
|
202
202
|
<span class="method-name">add_stmt</span><span class="method-args">(src, code)</span>
|
203
203
|
</a>
|
204
204
|
</div>
|
205
205
|
|
206
206
|
<div class="method-description">
|
207
207
|
<p><a class="source-toggle" href="#"
|
208
|
-
onclick="toggleCode('
|
209
|
-
<div class="method-source-code" id="
|
208
|
+
onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
|
209
|
+
<div class="method-source-code" id="M000118-source">
|
210
210
|
<pre>
|
211
211
|
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line 49</span>
|
212
212
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_stmt</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">code</span>)
|
@@ -219,42 +219,42 @@ code generator for Ruby
|
|
219
219
|
</div>
|
220
220
|
</div>
|
221
221
|
|
222
|
-
<div id="method-
|
223
|
-
<a name="
|
222
|
+
<div id="method-M000117" class="method-detail">
|
223
|
+
<a name="M000117"></a>
|
224
224
|
|
225
225
|
<div class="method-heading">
|
226
|
-
<a href="#
|
226
|
+
<a href="#M000117" class="method-signature">
|
227
227
|
<span class="method-name">add_text</span><span class="method-args">(src, text)</span>
|
228
228
|
</a>
|
229
229
|
</div>
|
230
230
|
|
231
231
|
<div class="method-description">
|
232
232
|
<p><a class="source-toggle" href="#"
|
233
|
-
onclick="toggleCode('
|
234
|
-
<div class="method-source-code" id="
|
233
|
+
onclick="toggleCode('M000117-source');return false;">[Source]</a></p>
|
234
|
+
<div class="method-source-code" id="M000117-source">
|
235
235
|
<pre>
|
236
236
|
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line 45</span>
|
237
237
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_text</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">text</span>)
|
238
|
-
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-
|
238
|
+
<span class="ruby-identifier">src</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" #{@bufvar} << '"</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">escape_text</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>
|
239
239
|
<span class="ruby-keyword kw">end</span>
|
240
240
|
</pre>
|
241
241
|
</div>
|
242
242
|
</div>
|
243
243
|
</div>
|
244
244
|
|
245
|
-
<div id="method-
|
246
|
-
<a name="
|
245
|
+
<div id="method-M000115" class="method-detail">
|
246
|
+
<a name="M000115"></a>
|
247
247
|
|
248
248
|
<div class="method-heading">
|
249
|
-
<a href="#
|
249
|
+
<a href="#M000115" class="method-signature">
|
250
250
|
<span class="method-name">escape_text</span><span class="method-args">(text)</span>
|
251
251
|
</a>
|
252
252
|
</div>
|
253
253
|
|
254
254
|
<div class="method-description">
|
255
255
|
<p><a class="source-toggle" href="#"
|
256
|
-
onclick="toggleCode('
|
257
|
-
<div class="method-source-code" id="
|
256
|
+
onclick="toggleCode('M000115-source');return false;">[Source]</a></p>
|
257
|
+
<div class="method-source-code" id="M000115-source">
|
258
258
|
<pre>
|
259
259
|
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line 31</span>
|
260
260
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escape_text</span>(<span class="ruby-identifier">text</span>)
|
@@ -265,19 +265,19 @@ code generator for Ruby
|
|
265
265
|
</div>
|
266
266
|
</div>
|
267
267
|
|
268
|
-
<div id="method-
|
269
|
-
<a name="
|
268
|
+
<div id="method-M000116" class="method-detail">
|
269
|
+
<a name="M000116"></a>
|
270
270
|
|
271
271
|
<div class="method-heading">
|
272
|
-
<a href="#
|
272
|
+
<a href="#M000116" class="method-signature">
|
273
273
|
<span class="method-name">escaped_expr</span><span class="method-args">(code)</span>
|
274
274
|
</a>
|
275
275
|
</div>
|
276
276
|
|
277
277
|
<div class="method-description">
|
278
278
|
<p><a class="source-toggle" href="#"
|
279
|
-
onclick="toggleCode('
|
280
|
-
<div class="method-source-code" id="
|
279
|
+
onclick="toggleCode('M000116-source');return false;">[Source]</a></p>
|
280
|
+
<div class="method-source-code" id="M000116-source">
|
281
281
|
<pre>
|
282
282
|
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line 35</span>
|
283
283
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escaped_expr</span>(<span class="ruby-identifier">code</span>)
|
@@ -288,24 +288,25 @@ code generator for Ruby
|
|
288
288
|
</div>
|
289
289
|
</div>
|
290
290
|
|
291
|
-
<div id="method-
|
292
|
-
<a name="
|
291
|
+
<div id="method-M000114" class="method-detail">
|
292
|
+
<a name="M000114"></a>
|
293
293
|
|
294
294
|
<div class="method-heading">
|
295
|
-
<a href="#
|
295
|
+
<a href="#M000114" class="method-signature">
|
296
296
|
<span class="method-name">init_generator</span><span class="method-args">(properties={})</span>
|
297
297
|
</a>
|
298
298
|
</div>
|
299
299
|
|
300
300
|
<div class="method-description">
|
301
301
|
<p><a class="source-toggle" href="#"
|
302
|
-
onclick="toggleCode('
|
303
|
-
<div class="method-source-code" id="
|
302
|
+
onclick="toggleCode('M000114-source');return false;">[Source]</a></p>
|
303
|
+
<div class="method-source-code" id="M000114-source">
|
304
304
|
<pre>
|
305
|
-
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line
|
305
|
+
<span class="ruby-comment cmt"># File erubis/engine/eruby.rb, line 21</span>
|
306
306
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_generator</span>(<span class="ruby-identifier">properties</span>={})
|
307
307
|
<span class="ruby-keyword kw">super</span>
|
308
308
|
<span class="ruby-ivar">@escapefunc</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">"Erubis::XmlHelper.escape_xml"</span>
|
309
|
+
<span class="ruby-ivar">@bufvar</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:bufvar</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">"_buf"</span>
|
309
310
|
<span class="ruby-keyword kw">end</span>
|
310
311
|
</pre>
|
311
312
|
</div>
|