erubis 2.3.1 → 2.7.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/{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>
|