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.
Files changed (163) hide show
  1. data/{CHANGES → CHANGES.txt} +373 -3
  2. data/MIT-LICENSE +1 -1
  3. data/README.txt +6 -5
  4. data/benchmark/bench.rb +18 -11
  5. data/bin/erubis +3 -4
  6. data/contrib/erubis +3462 -5
  7. data/contrib/inline-require +54 -28
  8. data/doc/docstyle.css +25 -4
  9. data/doc/users-guide.html +814 -110
  10. data/doc-api/classes/ActionView/TemplateHandlers/ErubisHandler.html +209 -0
  11. data/doc-api/classes/ActionView.html +105 -0
  12. data/doc-api/classes/Erubis/ArrayBufferEnhancer.html +14 -14
  13. data/doc-api/classes/Erubis/ArrayEnhancer.html +16 -16
  14. data/doc-api/classes/Erubis/Basic/Converter.html +36 -31
  15. data/doc-api/classes/Erubis/BiPatternEnhancer.html +16 -13
  16. data/doc-api/classes/Erubis/CGenerator.html +70 -70
  17. data/doc-api/classes/Erubis/Context.html +49 -49
  18. data/doc-api/classes/Erubis/Converter.html +30 -29
  19. data/doc-api/classes/Erubis/CppGenerator.html +382 -0
  20. data/doc-api/classes/Erubis/DeleteIndentEnhancer.html +7 -7
  21. data/doc-api/classes/Erubis/Ecpp.html +126 -0
  22. data/doc-api/classes/Erubis/Engine.html +46 -43
  23. data/doc-api/classes/Erubis/ErboutEnhancer.html +16 -16
  24. data/doc-api/classes/Erubis/EscapeEnhancer.html +7 -7
  25. data/doc-api/classes/Erubis/EscapedEcpp.html +120 -0
  26. data/doc-api/classes/Erubis/Evaluator.html +22 -22
  27. data/doc-api/classes/Erubis/Generator.html +70 -70
  28. data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +18 -15
  29. data/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +787 -0
  30. data/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +213 -0
  31. data/doc-api/classes/Erubis/Helpers/RailsHelper.html +103 -54
  32. data/doc-api/classes/Erubis/Helpers.html +6 -1
  33. data/doc-api/classes/Erubis/InterpolationEnhancer.html +42 -41
  34. data/doc-api/classes/Erubis/JavaGenerator.html +69 -69
  35. data/doc-api/classes/Erubis/JavascriptGenerator.html +79 -74
  36. data/doc-api/classes/Erubis/Main.html +49 -48
  37. data/doc-api/classes/Erubis/NoCodeEnhancer.html +35 -35
  38. data/doc-api/classes/Erubis/NoTextEnhancer.html +7 -7
  39. data/doc-api/classes/Erubis/OptimizedEruby.html +7 -7
  40. data/doc-api/classes/Erubis/OptimizedGenerator.html +84 -84
  41. data/doc-api/classes/Erubis/OptimizedXmlEruby.html +7 -7
  42. data/doc-api/classes/Erubis/PI/Converter.html +23 -22
  43. data/doc-api/classes/Erubis/PI/Ec.html +7 -7
  44. data/doc-api/classes/Erubis/PI/Ecpp.html +166 -0
  45. data/doc-api/classes/Erubis/PI/Ejava.html +7 -7
  46. data/doc-api/classes/Erubis/PI/Ejavascript.html +7 -7
  47. data/doc-api/classes/Erubis/PI/Eperl.html +7 -7
  48. data/doc-api/classes/Erubis/PI/Ephp.html +7 -7
  49. data/doc-api/classes/Erubis/PI/Eruby.html +6 -6
  50. data/doc-api/classes/Erubis/PI/Escheme.html +7 -7
  51. data/doc-api/classes/Erubis/PI/TinyEruby.html +28 -27
  52. data/doc-api/classes/Erubis/PI.html +1 -0
  53. data/doc-api/classes/Erubis/PercentLineEnhancer.html +18 -29
  54. data/doc-api/classes/Erubis/PerlGenerator.html +63 -63
  55. data/doc-api/classes/Erubis/PhpGenerator.html +63 -63
  56. data/doc-api/classes/Erubis/PrefixedLineEnhancer.html +210 -0
  57. data/doc-api/classes/Erubis/PrefixedLineEruby.html +120 -0
  58. data/doc-api/classes/Erubis/PreprocessingEruby.html +183 -0
  59. data/doc-api/classes/Erubis/PreprocessingHelper.html +212 -0
  60. data/doc-api/classes/Erubis/PrintEnabledEnhancer.html +23 -23
  61. data/doc-api/classes/Erubis/PrintOutEnhancer.html +38 -38
  62. data/doc-api/classes/Erubis/RubyEvaluator.html +59 -22
  63. data/doc-api/classes/Erubis/RubyGenerator.html +53 -52
  64. data/doc-api/classes/Erubis/SchemeGenerator.html +70 -70
  65. data/doc-api/classes/Erubis/SimplifyEnhancer.html +10 -9
  66. data/doc-api/classes/Erubis/StdoutEnhancer.html +3 -3
  67. data/doc-api/classes/Erubis/StringBufferEnhancer.html +16 -16
  68. data/doc-api/classes/Erubis/TinyEruby.html +33 -33
  69. data/doc-api/classes/Erubis/XmlHelper.html +80 -15
  70. data/doc-api/classes/Erubis.html +25 -1
  71. data/doc-api/classes/Kernel.html +155 -0
  72. data/doc-api/created.rid +1 -1
  73. data/doc-api/files/README_txt.html +8 -8
  74. data/doc-api/files/erubis/context_rb.html +2 -2
  75. data/doc-api/files/erubis/converter_rb.html +3 -3
  76. data/doc-api/files/erubis/engine/ec_rb.html +2 -2
  77. data/doc-api/files/erubis/engine/ecpp_rb.html +115 -0
  78. data/doc-api/files/erubis/engine/ejava_rb.html +2 -2
  79. data/doc-api/files/erubis/engine/ejavascript_rb.html +2 -2
  80. data/doc-api/files/erubis/engine/enhanced_rb.html +2 -2
  81. data/doc-api/files/erubis/engine/eperl_rb.html +2 -2
  82. data/doc-api/files/erubis/engine/ephp_rb.html +2 -2
  83. data/doc-api/files/erubis/engine/eruby_rb.html +2 -2
  84. data/doc-api/files/erubis/engine/escheme_rb.html +2 -2
  85. data/doc-api/files/erubis/engine/optimized_rb.html +2 -2
  86. data/doc-api/files/erubis/engine_rb.html +2 -2
  87. data/doc-api/files/erubis/enhancer_rb.html +2 -2
  88. data/doc-api/files/erubis/error_rb.html +2 -2
  89. data/doc-api/files/erubis/evaluator_rb.html +2 -2
  90. data/doc-api/files/erubis/generator_rb.html +3 -3
  91. data/doc-api/files/erubis/helper_rb.html +2 -2
  92. data/doc-api/files/erubis/helpers/rails_form_helper_rb.html +107 -0
  93. data/doc-api/files/erubis/helpers/rails_helper_rb.html +3 -2
  94. data/doc-api/files/erubis/local-setting_rb.html +2 -2
  95. data/doc-api/files/erubis/main_rb.html +4 -2
  96. data/doc-api/files/erubis/preprocessing_rb.html +114 -0
  97. data/doc-api/files/erubis/tiny_rb.html +2 -2
  98. data/doc-api/files/erubis/util_rb.html +107 -0
  99. data/doc-api/files/erubis_rb.html +2 -2
  100. data/doc-api/fr_class_index.html +13 -0
  101. data/doc-api/fr_file_index.html +4 -0
  102. data/doc-api/fr_method_index.html +237 -179
  103. data/examples/basic/Makefile +7 -2
  104. data/examples/basic/example.ecpp +33 -0
  105. data/lib/erubis/context.rb +2 -3
  106. data/lib/erubis/converter.rb +17 -11
  107. data/lib/erubis/engine/ec.rb +2 -3
  108. data/lib/erubis/engine/ecpp.rb +113 -0
  109. data/lib/erubis/engine/ejava.rb +9 -10
  110. data/lib/erubis/engine/ejavascript.rb +14 -9
  111. data/lib/erubis/engine/enhanced.rb +7 -3
  112. data/lib/erubis/engine/eperl.rb +2 -3
  113. data/lib/erubis/engine/ephp.rb +2 -3
  114. data/lib/erubis/engine/eruby.rb +8 -8
  115. data/lib/erubis/engine/escheme.rb +2 -3
  116. data/lib/erubis/engine/optimized.rb +2 -3
  117. data/lib/erubis/engine.rb +13 -11
  118. data/lib/erubis/enhancer.rb +101 -34
  119. data/lib/erubis/error.rb +2 -3
  120. data/lib/erubis/evaluator.rb +27 -10
  121. data/lib/erubis/generator.rb +3 -4
  122. data/lib/erubis/helper.rb +14 -3
  123. data/lib/erubis/helpers/rails_form_helper.rb +197 -0
  124. data/lib/erubis/helpers/rails_helper.rb +219 -77
  125. data/lib/erubis/local-setting.rb +2 -3
  126. data/lib/erubis/main.rb +85 -60
  127. data/lib/erubis/preprocessing.rb +58 -0
  128. data/lib/erubis/tiny.rb +9 -9
  129. data/lib/erubis/util.rb +22 -0
  130. data/lib/erubis.rb +4 -4
  131. data/test/assert-text-equal.rb +2 -3
  132. data/test/data/users-guide/bufvar-example.rb +10 -0
  133. data/test/data/users-guide/bufvar-example.result +17 -0
  134. data/test/data/users-guide/def_method.rb +14 -0
  135. data/test/data/users-guide/def_method.result +3 -0
  136. data/test/data/users-guide/example.ecpp +30 -0
  137. data/test/data/users-guide/example1.rb +1 -0
  138. data/test/data/users-guide/example_c.result +22 -19
  139. data/test/data/users-guide/fasteruby-example.rb +8 -0
  140. data/test/data/users-guide/fasteruby-example.result +18 -0
  141. data/test/data/users-guide/main_program1.rb +8 -0
  142. data/test/data/users-guide/main_program1.result +6 -0
  143. data/test/data/users-guide/main_program2.rb +8 -0
  144. data/test/data/users-guide/main_program2.result +6 -0
  145. data/test/data/users-guide/percentline-example.rhtml +3 -1
  146. data/test/data/users-guide/percentline_example.result +5 -3
  147. data/test/data/users-guide/prefixedline-example.rb +9 -0
  148. data/test/data/users-guide/prefixedline-example.rhtml +6 -0
  149. data/test/data/users-guide/prefixedline_example.result +9 -0
  150. data/test/data/users-guide/tail_260.result +4 -0
  151. data/test/data/users-guide/tailnewline.rhtml +3 -0
  152. data/test/data/users-guide/template1.rhtml +4 -0
  153. data/test/data/users-guide/template2.rhtml +4 -0
  154. data/test/test-engines.rb +88 -5
  155. data/test/test-enhancers.rb +83 -6
  156. data/test/test-erubis.rb +115 -11
  157. data/test/test-index-cgi.rb +191 -0
  158. data/test/test-main.rb +143 -31
  159. data/test/test-users-guide.rb +20 -3
  160. data/test/test.rb +18 -3
  161. data/test/testutil.rb +44 -8
  162. metadata +104 -67
  163. data/contrib/action_view_base_rb.patch +0 -23
@@ -74,7 +74,7 @@
74
74
 
75
75
  <div id="description">
76
76
  <p>
77
- <a href="Converter.html#M000075">convert</a>
77
+ <a href="Converter.html#M000066">convert</a>
78
78
  </p>
79
79
 
80
80
  </div>
@@ -86,10 +86,10 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000075">convert</a>&nbsp;&nbsp;
90
- <a href="#M000077">convert_input</a>&nbsp;&nbsp;
91
- <a href="#M000076">detect_spaces_at_bol</a>&nbsp;&nbsp;
92
- <a href="#M000074">init_converter</a>&nbsp;&nbsp;
89
+ <a href="#M000066">convert</a>&nbsp;&nbsp;
90
+ <a href="#M000068">convert_input</a>&nbsp;&nbsp;
91
+ <a href="#M000067">detect_spaces_at_bol</a>&nbsp;&nbsp;
92
+ <a href="#M000065">init_converter</a>&nbsp;&nbsp;
93
93
  </div>
94
94
  </div>
95
95
 
@@ -134,30 +134,31 @@
134
134
  <div id="methods">
135
135
  <h3 class="section-bar">Public Instance methods</h3>
136
136
 
137
- <div id="method-M000075" class="method-detail">
138
- <a name="M000075"></a>
137
+ <div id="method-M000066" class="method-detail">
138
+ <a name="M000066"></a>
139
139
 
140
140
  <div class="method-heading">
141
- <a href="#M000075" class="method-signature">
141
+ <a href="#M000066" class="method-signature">
142
142
  <span class="method-name">convert</span><span class="method-args">(input)</span>
143
143
  </a>
144
144
  </div>
145
145
 
146
146
  <div class="method-description">
147
147
  <p>
148
- <a href="Converter.html#M000075">convert</a> input string into target
148
+ <a href="Converter.html#M000066">convert</a> input string into target
149
149
  language
150
150
  </p>
151
151
  <p><a class="source-toggle" href="#"
152
- onclick="toggleCode('M000075-source');return false;">[Source]</a></p>
153
- <div class="method-source-code" id="M000075-source">
152
+ onclick="toggleCode('M000066-source');return false;">[Source]</a></p>
153
+ <div class="method-source-code" id="M000066-source">
154
154
  <pre>
155
- <span class="ruby-comment cmt"># File erubis/converter.rb, line 34</span>
155
+ <span class="ruby-comment cmt"># File erubis/converter.rb, line 33</span>
156
156
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert</span>(<span class="ruby-identifier">input</span>)
157
157
  <span class="ruby-identifier">codebuf</span> = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-comment cmt"># or []</span>
158
158
  <span class="ruby-ivar">@preamble</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-identifier">add_preamble</span>(<span class="ruby-identifier">codebuf</span>) <span class="ruby-operator">:</span> (<span class="ruby-ivar">@preamble</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">codebuf</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@preamble</span>))
159
159
  <span class="ruby-identifier">convert_input</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">input</span>)
160
160
  <span class="ruby-ivar">@postamble</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-identifier">add_postamble</span>(<span class="ruby-identifier">codebuf</span>) <span class="ruby-operator">:</span> (<span class="ruby-ivar">@postamble</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">codebuf</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@postamble</span>))
161
+ <span class="ruby-ivar">@_proc</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt"># clear cached proc object</span>
161
162
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">codebuf</span> <span class="ruby-comment cmt"># or codebuf.join()</span>
162
163
  <span class="ruby-keyword kw">end</span>
163
164
  </pre>
@@ -165,21 +166,21 @@ language
165
166
  </div>
166
167
  </div>
167
168
 
168
- <div id="method-M000074" class="method-detail">
169
- <a name="M000074"></a>
169
+ <div id="method-M000065" class="method-detail">
170
+ <a name="M000065"></a>
170
171
 
171
172
  <div class="method-heading">
172
- <a href="#M000074" class="method-signature">
173
+ <a href="#M000065" class="method-signature">
173
174
  <span class="method-name">init_converter</span><span class="method-args">(properties={})</span>
174
175
  </a>
175
176
  </div>
176
177
 
177
178
  <div class="method-description">
178
179
  <p><a class="source-toggle" href="#"
179
- onclick="toggleCode('M000074-source');return false;">[Source]</a></p>
180
- <div class="method-source-code" id="M000074-source">
180
+ onclick="toggleCode('M000065-source');return false;">[Source]</a></p>
181
+ <div class="method-source-code" id="M000065-source">
181
182
  <pre>
182
- <span class="ruby-comment cmt"># File erubis/converter.rb, line 27</span>
183
+ <span class="ruby-comment cmt"># File erubis/converter.rb, line 26</span>
183
184
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_converter</span>(<span class="ruby-identifier">properties</span>={})
184
185
  <span class="ruby-ivar">@preamble</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:preamble</span>]
185
186
  <span class="ruby-ivar">@postamble</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:postamble</span>]
@@ -192,22 +193,22 @@ language
192
193
 
193
194
  <h3 class="section-bar">Protected Instance methods</h3>
194
195
 
195
- <div id="method-M000077" class="method-detail">
196
- <a name="M000077"></a>
196
+ <div id="method-M000068" class="method-detail">
197
+ <a name="M000068"></a>
197
198
 
198
199
  <div class="method-heading">
199
- <a href="#M000077" class="method-signature">
200
+ <a href="#M000068" class="method-signature">
200
201
  <span class="method-name">convert_input</span><span class="method-args">(codebuf, input)</span>
201
202
  </a>
202
203
  </div>
203
204
 
204
205
  <div class="method-description">
205
206
  <p>
206
- (abstract) <a href="Converter.html#M000075">convert</a> input to code
207
+ (abstract) <a href="Converter.html#M000066">convert</a> input to code
207
208
  </p>
208
209
  <p><a class="source-toggle" href="#"
209
- onclick="toggleCode('M000077-source');return false;">[Source]</a></p>
210
- <div class="method-source-code" id="M000077-source">
210
+ onclick="toggleCode('M000068-source');return false;">[Source]</a></p>
211
+ <div class="method-source-code" id="M000068-source">
211
212
  <pre>
212
213
  <span class="ruby-comment cmt"># File erubis/converter.rb, line 77</span>
213
214
  <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>)
@@ -218,11 +219,11 @@ language
218
219
  </div>
219
220
  </div>
220
221
 
221
- <div id="method-M000076" class="method-detail">
222
- <a name="M000076"></a>
222
+ <div id="method-M000067" class="method-detail">
223
+ <a name="M000067"></a>
223
224
 
224
225
  <div class="method-heading">
225
- <a href="#M000076" class="method-signature">
226
+ <a href="#M000067" class="method-signature">
226
227
  <span class="method-name">detect_spaces_at_bol</span><span class="method-args">(text, is_bol)</span>
227
228
  </a>
228
229
  </div>
@@ -232,8 +233,8 @@ language
232
233
  detect spaces at beginning of line
233
234
  </p>
234
235
  <p><a class="source-toggle" href="#"
235
- onclick="toggleCode('M000076-source');return false;">[Source]</a></p>
236
- <div class="method-source-code" id="M000076-source">
236
+ onclick="toggleCode('M000067-source');return false;">[Source]</a></p>
237
+ <div class="method-source-code" id="M000067-source">
237
238
  <pre>
238
239
  <span class="ruby-comment cmt"># File erubis/converter.rb, line 47</span>
239
240
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">detect_spaces_at_bol</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">is_bol</span>)
@@ -0,0 +1,382 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Erubis::CppGenerator</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Erubis::CppGenerator</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/erubis/engine/ecpp_rb.html">
59
+ erubis/engine/ecpp.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+
76
+
77
+ </div>
78
+
79
+ <div id="method-list">
80
+ <h3 class="section-bar">Methods</h3>
81
+
82
+ <div class="name-list">
83
+ <a href="#M000194">add_expr_debug</a>&nbsp;&nbsp;
84
+ <a href="#M000193">add_expr_escaped</a>&nbsp;&nbsp;
85
+ <a href="#M000192">add_expr_literal</a>&nbsp;&nbsp;
86
+ <a href="#M000195">add_postamble</a>&nbsp;&nbsp;
87
+ <a href="#M000187">add_preamble</a>&nbsp;&nbsp;
88
+ <a href="#M000191">add_stmt</a>&nbsp;&nbsp;
89
+ <a href="#M000190">add_text</a>&nbsp;&nbsp;
90
+ <a href="#M000188">escape_text</a>&nbsp;&nbsp;
91
+ <a href="#M000189">escaped_expr</a>&nbsp;&nbsp;
92
+ <a href="#M000186">init_generator</a>&nbsp;&nbsp;
93
+ </div>
94
+ </div>
95
+
96
+ </div>
97
+
98
+
99
+ <!-- if includes -->
100
+ <div id="includes">
101
+ <h3 class="section-bar">Included Modules</h3>
102
+
103
+ <div id="includes-list">
104
+ <span class="include-name"><a href="Generator.html">Generator</a></span>
105
+ </div>
106
+ </div>
107
+
108
+ <div id="section">
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+ <!-- if method_list -->
118
+ <div id="methods">
119
+ <h3 class="section-bar">Public Instance methods</h3>
120
+
121
+ <div id="method-M000194" class="method-detail">
122
+ <a name="M000194"></a>
123
+
124
+ <div class="method-heading">
125
+ <a href="#M000194" class="method-signature">
126
+ <span class="method-name">add_expr_debug</span><span class="method-args">(src, code)</span>
127
+ </a>
128
+ </div>
129
+
130
+ <div class="method-description">
131
+ <p><a class="source-toggle" href="#"
132
+ onclick="toggleCode('M000194-source');return false;">[Source]</a></p>
133
+ <div class="method-source-code" id="M000194-source">
134
+ <pre>
135
+ <span class="ruby-comment cmt"># File erubis/engine/ecpp.rb, line 72</span>
136
+ <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>)
137
+ <span class="ruby-identifier">code</span>.<span class="ruby-identifier">strip!</span>
138
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@indent</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">src</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">src</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?\n</span>
139
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; std::cerr &lt;&lt; \&quot;*** debug: #{code.gsub(/(&quot;)/, '\\\&amp;')}=\&quot; &lt;&lt; (#{code});&quot;</span>
140
+ <span class="ruby-keyword kw">end</span>
141
+ </pre>
142
+ </div>
143
+ </div>
144
+ </div>
145
+
146
+ <div id="method-M000193" class="method-detail">
147
+ <a name="M000193"></a>
148
+
149
+ <div class="method-heading">
150
+ <a href="#M000193" class="method-signature">
151
+ <span class="method-name">add_expr_escaped</span><span class="method-args">(src, code)</span>
152
+ </a>
153
+ </div>
154
+
155
+ <div class="method-description">
156
+ <p><a class="source-toggle" href="#"
157
+ onclick="toggleCode('M000193-source');return false;">[Source]</a></p>
158
+ <div class="method-source-code" id="M000193-source">
159
+ <pre>
160
+ <span class="ruby-comment cmt"># File erubis/engine/ecpp.rb, line 67</span>
161
+ <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>)
162
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@indent</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">src</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">src</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?\n</span>
163
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">escaped_expr</span>(<span class="ruby-identifier">code</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">';'</span>
164
+ <span class="ruby-keyword kw">end</span>
165
+ </pre>
166
+ </div>
167
+ </div>
168
+ </div>
169
+
170
+ <div id="method-M000192" class="method-detail">
171
+ <a name="M000192"></a>
172
+
173
+ <div class="method-heading">
174
+ <a href="#M000192" class="method-signature">
175
+ <span class="method-name">add_expr_literal</span><span class="method-args">(src, code)</span>
176
+ </a>
177
+ </div>
178
+
179
+ <div class="method-description">
180
+ <p><a class="source-toggle" href="#"
181
+ onclick="toggleCode('M000192-source');return false;">[Source]</a></p>
182
+ <div class="method-source-code" id="M000192-source">
183
+ <pre>
184
+ <span class="ruby-comment cmt"># File erubis/engine/ecpp.rb, line 62</span>
185
+ <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>)
186
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@indent</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">src</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">src</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?\n</span>
187
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; _buf &lt;&lt; (&quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">strip</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;);&quot;</span>
188
+ <span class="ruby-keyword kw">end</span>
189
+ </pre>
190
+ </div>
191
+ </div>
192
+ </div>
193
+
194
+ <div id="method-M000195" class="method-detail">
195
+ <a name="M000195"></a>
196
+
197
+ <div class="method-heading">
198
+ <a href="#M000195" class="method-signature">
199
+ <span class="method-name">add_postamble</span><span class="method-args">(src)</span>
200
+ </a>
201
+ </div>
202
+
203
+ <div class="method-description">
204
+ <p><a class="source-toggle" href="#"
205
+ onclick="toggleCode('M000195-source');return false;">[Source]</a></p>
206
+ <div class="method-source-code" id="M000195-source">
207
+ <pre>
208
+ <span class="ruby-comment cmt"># File erubis/engine/ecpp.rb, line 78</span>
209
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_postamble</span>(<span class="ruby-identifier">src</span>)
210
+ <span class="ruby-comment cmt"># empty</span>
211
+ <span class="ruby-keyword kw">end</span>
212
+ </pre>
213
+ </div>
214
+ </div>
215
+ </div>
216
+
217
+ <div id="method-M000187" class="method-detail">
218
+ <a name="M000187"></a>
219
+
220
+ <div class="method-heading">
221
+ <a href="#M000187" class="method-signature">
222
+ <span class="method-name">add_preamble</span><span class="method-args">(src)</span>
223
+ </a>
224
+ </div>
225
+
226
+ <div class="method-description">
227
+ <p><a class="source-toggle" href="#"
228
+ onclick="toggleCode('M000187-source');return false;">[Source]</a></p>
229
+ <div class="method-source-code" id="M000187-source">
230
+ <pre>
231
+ <span class="ruby-comment cmt"># File erubis/engine/ecpp.rb, line 30</span>
232
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_preamble</span>(<span class="ruby-identifier">src</span>)
233
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#line 1 \&quot;#{self.filename}\&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">filename</span>
234
+ <span class="ruby-keyword kw">end</span>
235
+ </pre>
236
+ </div>
237
+ </div>
238
+ </div>
239
+
240
+ <div id="method-M000191" class="method-detail">
241
+ <a name="M000191"></a>
242
+
243
+ <div class="method-heading">
244
+ <a href="#M000191" class="method-signature">
245
+ <span class="method-name">add_stmt</span><span class="method-args">(src, code)</span>
246
+ </a>
247
+ </div>
248
+
249
+ <div class="method-description">
250
+ <p><a class="source-toggle" href="#"
251
+ onclick="toggleCode('M000191-source');return false;">[Source]</a></p>
252
+ <div class="method-source-code" id="M000191-source">
253
+ <pre>
254
+ <span class="ruby-comment cmt"># File erubis/engine/ecpp.rb, line 58</span>
255
+ <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>)
256
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">code</span>
257
+ <span class="ruby-keyword kw">end</span>
258
+ </pre>
259
+ </div>
260
+ </div>
261
+ </div>
262
+
263
+ <div id="method-M000190" class="method-detail">
264
+ <a name="M000190"></a>
265
+
266
+ <div class="method-heading">
267
+ <a href="#M000190" class="method-signature">
268
+ <span class="method-name">add_text</span><span class="method-args">(src, text)</span>
269
+ </a>
270
+ </div>
271
+
272
+ <div class="method-description">
273
+ <p><a class="source-toggle" href="#"
274
+ onclick="toggleCode('M000190-source');return false;">[Source]</a></p>
275
+ <div class="method-source-code" id="M000190-source">
276
+ <pre>
277
+ <span class="ruby-comment cmt"># File erubis/engine/ecpp.rb, line 44</span>
278
+ <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>)
279
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
280
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">src</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">src</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?\n</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@indent</span> <span class="ruby-operator">:</span> <span class="ruby-value str">' '</span>)
281
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;_buf &lt;&lt; &quot;</span>
282
+ <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
283
+ <span class="ruby-identifier">text</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
284
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@indent</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; &quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
285
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
286
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">escape_text</span>(<span class="ruby-identifier">line</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&quot;'</span>
287
+ <span class="ruby-keyword kw">end</span>
288
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;;&quot;</span> <span class="ruby-comment cmt">#&lt;&lt; (text[-1] == ?\n ? &quot;\n&quot; : &quot;&quot;)</span>
289
+ <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?\n</span>
290
+ <span class="ruby-keyword kw">end</span>
291
+ </pre>
292
+ </div>
293
+ </div>
294
+ </div>
295
+
296
+ <div id="method-M000188" class="method-detail">
297
+ <a name="M000188"></a>
298
+
299
+ <div class="method-heading">
300
+ <a href="#M000188" class="method-signature">
301
+ <span class="method-name">escape_text</span><span class="method-args">(text)</span>
302
+ </a>
303
+ </div>
304
+
305
+ <div class="method-description">
306
+ <p><a class="source-toggle" href="#"
307
+ onclick="toggleCode('M000188-source');return false;">[Source]</a></p>
308
+ <div class="method-source-code" id="M000188-source">
309
+ <pre>
310
+ <span class="ruby-comment cmt"># File erubis/engine/ecpp.rb, line 34</span>
311
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escape_text</span>(<span class="ruby-identifier">text</span>)
312
+ <span class="ruby-ivar">@@table_</span> <span class="ruby-operator">||=</span> { <span class="ruby-value str">&quot;\r&quot;</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value str">&quot;\\r&quot;</span>, <span class="ruby-value str">&quot;\n&quot;</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value str">&quot;\\n&quot;</span>, <span class="ruby-value str">&quot;\t&quot;</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value str">&quot;\\t&quot;</span>, <span class="ruby-value str">'&quot;'</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value str">'\\&quot;'</span>, <span class="ruby-value str">&quot;\\&quot;</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value str">&quot;\\\\&quot;</span> }
313
+ <span class="ruby-identifier">text</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/[\r\n\t&quot;\\]/</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@@table_</span>[<span class="ruby-identifier">m</span>] }
314
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">text</span>
315
+ <span class="ruby-keyword kw">end</span>
316
+ </pre>
317
+ </div>
318
+ </div>
319
+ </div>
320
+
321
+ <div id="method-M000189" class="method-detail">
322
+ <a name="M000189"></a>
323
+
324
+ <div class="method-heading">
325
+ <a href="#M000189" class="method-signature">
326
+ <span class="method-name">escaped_expr</span><span class="method-args">(code)</span>
327
+ </a>
328
+ </div>
329
+
330
+ <div class="method-description">
331
+ <p><a class="source-toggle" href="#"
332
+ onclick="toggleCode('M000189-source');return false;">[Source]</a></p>
333
+ <div class="method-source-code" id="M000189-source">
334
+ <pre>
335
+ <span class="ruby-comment cmt"># File erubis/engine/ecpp.rb, line 40</span>
336
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escaped_expr</span>(<span class="ruby-identifier">code</span>)
337
+ <span class="ruby-keyword kw">return</span> <span class="ruby-node">&quot;#{@escapefunc}(#{code.strip})&quot;</span>
338
+ <span class="ruby-keyword kw">end</span>
339
+ </pre>
340
+ </div>
341
+ </div>
342
+ </div>
343
+
344
+ <div id="method-M000186" class="method-detail">
345
+ <a name="M000186"></a>
346
+
347
+ <div class="method-heading">
348
+ <a href="#M000186" class="method-signature">
349
+ <span class="method-name">init_generator</span><span class="method-args">(properties={})</span>
350
+ </a>
351
+ </div>
352
+
353
+ <div class="method-description">
354
+ <p><a class="source-toggle" href="#"
355
+ onclick="toggleCode('M000186-source');return false;">[Source]</a></p>
356
+ <div class="method-source-code" id="M000186-source">
357
+ <pre>
358
+ <span class="ruby-comment cmt"># File erubis/engine/ecpp.rb, line 23</span>
359
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_generator</span>(<span class="ruby-identifier">properties</span>={})
360
+ <span class="ruby-keyword kw">super</span>
361
+ <span class="ruby-ivar">@escapefunc</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;escape&quot;</span>
362
+ <span class="ruby-ivar">@indent</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:indent</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>
363
+ <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>
364
+ <span class="ruby-keyword kw">end</span>
365
+ </pre>
366
+ </div>
367
+ </div>
368
+ </div>
369
+
370
+
371
+ </div>
372
+
373
+
374
+ </div>
375
+
376
+
377
+ <div id="validator-badges">
378
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
379
+ </div>
380
+
381
+ </body>
382
+ </html>
@@ -89,7 +89,7 @@ this is language-independent.
89
89
  <h3 class="section-bar">Methods</h3>
90
90
 
91
91
  <div class="name-list">
92
- <a href="#M000156">convert_input</a>&nbsp;&nbsp;
92
+ <a href="#M000205">convert_input</a>&nbsp;&nbsp;
93
93
  </div>
94
94
  </div>
95
95
 
@@ -111,21 +111,21 @@ this is language-independent.
111
111
  <div id="methods">
112
112
  <h3 class="section-bar">Public Instance methods</h3>
113
113
 
114
- <div id="method-M000156" class="method-detail">
115
- <a name="M000156"></a>
114
+ <div id="method-M000205" class="method-detail">
115
+ <a name="M000205"></a>
116
116
 
117
117
  <div class="method-heading">
118
- <a href="#M000156" class="method-signature">
118
+ <a href="#M000205" class="method-signature">
119
119
  <span class="method-name">convert_input</span><span class="method-args">(src, input)</span>
120
120
  </a>
121
121
  </div>
122
122
 
123
123
  <div class="method-description">
124
124
  <p><a class="source-toggle" href="#"
125
- onclick="toggleCode('M000156-source');return false;">[Source]</a></p>
126
- <div class="method-source-code" id="M000156-source">
125
+ onclick="toggleCode('M000205-source');return false;">[Source]</a></p>
126
+ <div class="method-source-code" id="M000205-source">
127
127
  <pre>
128
- <span class="ruby-comment cmt"># File erubis/enhancer.rb, line 556</span>
128
+ <span class="ruby-comment cmt"># File erubis/enhancer.rb, line 622</span>
129
129
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert_input</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">input</span>)
130
130
  <span class="ruby-identifier">input</span> = <span class="ruby-identifier">input</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^[ \t]+&lt;/</span>, <span class="ruby-value str">'&lt;'</span>)
131
131
  <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">src</span>, <span class="ruby-identifier">input</span>)