erubis 2.0.1 → 2.1.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 (145) hide show
  1. data/ChangeLog +150 -2
  2. data/LGPL +504 -0
  3. data/README.txt +14 -8
  4. data/benchmark/erubybench.rb +1 -1
  5. data/benchmark/erubybench.rhtml +3 -3
  6. data/bin/erubis +1 -1
  7. data/bin/notext +154 -0
  8. data/contrib/erubis +1036 -374
  9. data/contrib/inline-require +5 -3
  10. data/doc-api/classes/Erubis.html +43 -1
  11. data/doc-api/classes/Erubis/ArrayBufferEnhancer.html +14 -14
  12. data/doc-api/classes/Erubis/ArrayEnhancer.html +14 -14
  13. data/doc-api/classes/Erubis/Basic.html +112 -0
  14. data/doc-api/classes/Erubis/Basic/Converter.html +318 -0
  15. data/doc-api/classes/Erubis/Basic/Engine.html +130 -0
  16. data/doc-api/classes/Erubis/BiPatternEnhancer.html +14 -14
  17. data/doc-api/classes/Erubis/CGenerator.html +386 -0
  18. data/doc-api/classes/Erubis/Context.html +31 -32
  19. data/doc-api/classes/Erubis/Converter.html +231 -0
  20. data/doc-api/classes/Erubis/Ec.html +9 -283
  21. data/doc-api/classes/Erubis/Ejava.html +9 -274
  22. data/doc-api/classes/Erubis/Ejavascript.html +9 -298
  23. data/doc-api/classes/Erubis/Engine.html +68 -508
  24. data/doc-api/classes/Erubis/Eperl.html +9 -259
  25. data/doc-api/classes/Erubis/Ephp.html +9 -239
  26. data/doc-api/classes/Erubis/ErubisError.html +2 -2
  27. data/doc-api/classes/Erubis/Eruby.html +4 -187
  28. data/doc-api/classes/Erubis/EscapeEnhancer.html +9 -11
  29. data/doc-api/classes/Erubis/Escheme.html +9 -272
  30. data/doc-api/classes/Erubis/Evaluator.html +212 -0
  31. data/doc-api/classes/Erubis/Generator.html +410 -0
  32. data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +16 -16
  33. data/doc-api/classes/Erubis/Helper.html +112 -0
  34. data/doc-api/classes/Erubis/Helper/CachedRailsTemplate.html +198 -0
  35. data/doc-api/classes/Erubis/Helper/RailsTemplate.html +366 -0
  36. data/doc-api/classes/Erubis/JavaGenerator.html +359 -0
  37. data/doc-api/classes/Erubis/JavascriptGenerator.html +381 -0
  38. data/doc-api/classes/Erubis/Main.html +27 -25
  39. data/doc-api/classes/Erubis/NoCodeEnhancer.html +249 -0
  40. data/doc-api/classes/Erubis/NoCodeEruby.html +120 -0
  41. data/doc-api/classes/Erubis/NoTextEnhancer.html +8 -8
  42. data/doc-api/classes/Erubis/NotSupportedError.html +119 -0
  43. data/doc-api/classes/Erubis/OptimizedEruby.html +22 -304
  44. data/doc-api/classes/Erubis/OptimizedGenerator.html +439 -0
  45. data/doc-api/classes/Erubis/OptimizedXmlEruby.html +7 -7
  46. data/doc-api/classes/Erubis/PI.html +124 -0
  47. data/doc-api/classes/Erubis/PI/Converter.html +318 -0
  48. data/doc-api/classes/Erubis/PI/Ec.html +166 -0
  49. data/doc-api/classes/Erubis/PI/Ejava.html +166 -0
  50. data/doc-api/classes/Erubis/PI/Ejavascript.html +166 -0
  51. data/doc-api/classes/Erubis/PI/Engine.html +122 -0
  52. data/doc-api/classes/Erubis/PI/Eperl.html +166 -0
  53. data/doc-api/classes/Erubis/PI/Ephp.html +166 -0
  54. data/doc-api/classes/Erubis/PI/Eruby.html +155 -0
  55. data/doc-api/classes/Erubis/PI/Escheme.html +166 -0
  56. data/doc-api/classes/Erubis/PI/TinyEruby.html +305 -0
  57. data/doc-api/classes/Erubis/PercentLineEnhancer.html +7 -7
  58. data/doc-api/classes/Erubis/PerlGenerator.html +344 -0
  59. data/doc-api/classes/Erubis/PhpGenerator.html +350 -0
  60. data/doc-api/classes/Erubis/PrintEnabledEnhancer.html +24 -24
  61. data/doc-api/classes/Erubis/PrintOutEnhancer.html +35 -35
  62. data/doc-api/classes/Erubis/RubyEvaluator.html +190 -0
  63. data/doc-api/classes/Erubis/RubyGenerator.html +327 -0
  64. data/doc-api/classes/Erubis/SchemeGenerator.html +382 -0
  65. data/doc-api/classes/Erubis/SimplifyEnhancer.html +17 -13
  66. data/doc-api/classes/Erubis/StdoutEnhancer.html +14 -14
  67. data/doc-api/classes/Erubis/StringBufferEnhancer.html +14 -14
  68. data/doc-api/classes/Erubis/TinyEruby.html +45 -40
  69. data/doc-api/classes/Erubis/XmlHelper.html +14 -14
  70. data/doc-api/created.rid +1 -1
  71. data/doc-api/files/__/README_txt.html +27 -9
  72. data/doc-api/files/erubis/context_rb.html +107 -0
  73. data/doc-api/files/erubis/converter_rb.html +114 -0
  74. data/doc-api/files/erubis/engine/ec_rb.html +2 -2
  75. data/doc-api/files/erubis/engine/ejava_rb.html +2 -2
  76. data/doc-api/files/erubis/engine/ejavascript_rb.html +2 -2
  77. data/doc-api/files/erubis/engine/enhanced_rb.html +2 -2
  78. data/doc-api/files/erubis/engine/eperl_rb.html +2 -2
  79. data/doc-api/files/erubis/engine/ephp_rb.html +2 -2
  80. data/doc-api/files/erubis/engine/eruby_rb.html +3 -2
  81. data/doc-api/files/erubis/engine/escheme_rb.html +2 -2
  82. data/doc-api/files/erubis/engine/optimized_rb.html +2 -2
  83. data/doc-api/files/erubis/engine_rb.html +6 -3
  84. data/doc-api/files/erubis/enhancer_rb.html +2 -9
  85. data/doc-api/files/erubis/error_rb.html +107 -0
  86. data/doc-api/files/erubis/evaluator_rb.html +115 -0
  87. data/doc-api/files/erubis/generator_rb.html +114 -0
  88. data/doc-api/files/erubis/helper/rails_rb.html +140 -0
  89. data/doc-api/files/erubis/helper_rb.html +1 -1
  90. data/doc-api/files/erubis/local-setting_rb.html +1 -1
  91. data/doc-api/files/erubis/main_rb.html +2 -2
  92. data/doc-api/files/erubis/tiny_rb.html +2 -2
  93. data/doc-api/files/erubis_rb.html +2 -2
  94. data/doc-api/fr_class_index.html +32 -0
  95. data/doc-api/fr_file_index.html +6 -0
  96. data/doc-api/fr_method_index.html +178 -136
  97. data/doc/users-guide.html +538 -199
  98. data/examples/{Makefile → basic/Makefile} +11 -11
  99. data/examples/basic/example.ec +42 -0
  100. data/examples/{example.ejava → basic/example.ejava} +5 -1
  101. data/examples/{example.ejavascript → basic/example.ejs} +0 -0
  102. data/examples/{example.eperl → basic/example.eperl} +2 -2
  103. data/examples/{example.ephp → basic/example.ephp} +0 -0
  104. data/examples/{example.eruby → basic/example.eruby} +0 -0
  105. data/examples/{example.escheme → basic/example.escheme} +0 -0
  106. data/examples/pi/Makefile +54 -0
  107. data/examples/pi/example.ec +42 -0
  108. data/examples/pi/example.ejava +45 -0
  109. data/examples/pi/example.ejs +16 -0
  110. data/examples/pi/example.eperl +16 -0
  111. data/examples/pi/example.ephp +17 -0
  112. data/examples/pi/example.eruby +15 -0
  113. data/examples/pi/example.escheme +26 -0
  114. data/lib/erubis.rb +15 -8
  115. data/lib/erubis/context.rb +54 -0
  116. data/lib/erubis/converter.rb +307 -0
  117. data/lib/erubis/engine.rb +57 -227
  118. data/lib/erubis/engine/ec.rb +31 -20
  119. data/lib/erubis/engine/ejava.rb +33 -21
  120. data/lib/erubis/engine/ejavascript.rb +30 -18
  121. data/lib/erubis/engine/enhanced.rb +7 -2
  122. data/lib/erubis/engine/eperl.rb +33 -19
  123. data/lib/erubis/engine/ephp.rb +32 -14
  124. data/lib/erubis/engine/eruby.rb +34 -7
  125. data/lib/erubis/engine/escheme.rb +34 -15
  126. data/lib/erubis/engine/optimized.rb +25 -11
  127. data/lib/erubis/enhancer.rb +53 -19
  128. data/lib/erubis/error.rb +24 -0
  129. data/lib/erubis/evaluator.rb +71 -0
  130. data/lib/erubis/generator.rb +83 -0
  131. data/lib/erubis/helper.rb +1 -1
  132. data/lib/erubis/helper/rails.rb +159 -0
  133. data/lib/erubis/local-setting.rb +1 -1
  134. data/lib/erubis/main.rb +87 -46
  135. data/lib/erubis/tiny.rb +81 -7
  136. data/test/assert-text-equal.rb +1 -1
  137. data/test/test-engines.rb +8 -9
  138. data/test/test-erubis.rb +196 -18
  139. data/test/{test-bin.rb → test-main.rb} +123 -21
  140. data/test/test-notext.rb +27 -0
  141. data/test/test.rb +5 -3
  142. data/test/testutil.rb +25 -36
  143. metadata +75 -13
  144. data/COPYING +0 -340
  145. data/examples/example.ec +0 -24
@@ -55,8 +55,8 @@
55
55
  <tr class="top-aligned-row">
56
56
  <td><strong>In:</strong></td>
57
57
  <td>
58
- <a href="../../files/erubis/engine_rb.html">
59
- erubis/engine.rb
58
+ <a href="../../files/erubis/context_rb.html">
59
+ erubis/context.rb
60
60
  </a>
61
61
  <br />
62
62
  </td>
@@ -80,8 +80,7 @@
80
80
 
81
81
  <div id="description">
82
82
  <p>
83
- .[abstract] context object for <a
84
- href="Engine.html#M000066">Engine#evaluate</a>
83
+ context object for Engine#evaluate
85
84
  </p>
86
85
  <p>
87
86
  ex.
@@ -113,10 +112,10 @@ ex.
113
112
  <h3 class="section-bar">Methods</h3>
114
113
 
115
114
  <div class="name-list">
116
- <a href="#M000106">[]</a>&nbsp;&nbsp;
117
- <a href="#M000107">[]=</a>&nbsp;&nbsp;
118
- <a href="#M000108">keys</a>&nbsp;&nbsp;
119
- <a href="#M000105">new</a>&nbsp;&nbsp;
115
+ <a href="#M000175">[]</a>&nbsp;&nbsp;
116
+ <a href="#M000176">[]=</a>&nbsp;&nbsp;
117
+ <a href="#M000177">keys</a>&nbsp;&nbsp;
118
+ <a href="#M000174">new</a>&nbsp;&nbsp;
120
119
  </div>
121
120
  </div>
122
121
 
@@ -138,21 +137,21 @@ ex.
138
137
  <div id="methods">
139
138
  <h3 class="section-bar">Public Class methods</h3>
140
139
 
141
- <div id="method-M000105" class="method-detail">
142
- <a name="M000105"></a>
140
+ <div id="method-M000174" class="method-detail">
141
+ <a name="M000174"></a>
143
142
 
144
143
  <div class="method-heading">
145
- <a href="#M000105" class="method-signature">
144
+ <a href="#M000174" class="method-signature">
146
145
  <span class="method-name">new</span><span class="method-args">(hash=nil)</span>
147
146
  </a>
148
147
  </div>
149
148
 
150
149
  <div class="method-description">
151
150
  <p><a class="source-toggle" href="#"
152
- onclick="toggleCode('M000105-source');return false;">[Source]</a></p>
153
- <div class="method-source-code" id="M000105-source">
151
+ onclick="toggleCode('M000174-source');return false;">[Source]</a></p>
152
+ <div class="method-source-code" id="M000174-source">
154
153
  <pre>
155
- <span class="ruby-comment cmt"># File erubis/engine.rb, line 42</span>
154
+ <span class="ruby-comment cmt"># File erubis/context.rb, line 33</span>
156
155
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">hash</span>=<span class="ruby-keyword kw">nil</span>)
157
156
  <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
158
157
  <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
@@ -165,21 +164,21 @@ ex.
165
164
 
166
165
  <h3 class="section-bar">Public Instance methods</h3>
167
166
 
168
- <div id="method-M000106" class="method-detail">
169
- <a name="M000106"></a>
167
+ <div id="method-M000175" class="method-detail">
168
+ <a name="M000175"></a>
170
169
 
171
170
  <div class="method-heading">
172
- <a href="#M000106" class="method-signature">
171
+ <a href="#M000175" class="method-signature">
173
172
  <span class="method-name">[]</span><span class="method-args">(key)</span>
174
173
  </a>
175
174
  </div>
176
175
 
177
176
  <div class="method-description">
178
177
  <p><a class="source-toggle" href="#"
179
- onclick="toggleCode('M000106-source');return false;">[Source]</a></p>
180
- <div class="method-source-code" id="M000106-source">
178
+ onclick="toggleCode('M000175-source');return false;">[Source]</a></p>
179
+ <div class="method-source-code" id="M000175-source">
181
180
  <pre>
182
- <span class="ruby-comment cmt"># File erubis/engine.rb, line 48</span>
181
+ <span class="ruby-comment cmt"># File erubis/context.rb, line 39</span>
183
182
  <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
184
183
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-node">&quot;@#{key}&quot;</span>)
185
184
  <span class="ruby-keyword kw">end</span>
@@ -188,21 +187,21 @@ ex.
188
187
  </div>
189
188
  </div>
190
189
 
191
- <div id="method-M000107" class="method-detail">
192
- <a name="M000107"></a>
190
+ <div id="method-M000176" class="method-detail">
191
+ <a name="M000176"></a>
193
192
 
194
193
  <div class="method-heading">
195
- <a href="#M000107" class="method-signature">
194
+ <a href="#M000176" class="method-signature">
196
195
  <span class="method-name">[]=</span><span class="method-args">(key, value)</span>
197
196
  </a>
198
197
  </div>
199
198
 
200
199
  <div class="method-description">
201
200
  <p><a class="source-toggle" href="#"
202
- onclick="toggleCode('M000107-source');return false;">[Source]</a></p>
203
- <div class="method-source-code" id="M000107-source">
201
+ onclick="toggleCode('M000176-source');return false;">[Source]</a></p>
202
+ <div class="method-source-code" id="M000176-source">
204
203
  <pre>
205
- <span class="ruby-comment cmt"># File erubis/engine.rb, line 52</span>
204
+ <span class="ruby-comment cmt"># File erubis/context.rb, line 43</span>
206
205
  <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
207
206
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-node">&quot;@#{key}&quot;</span>, <span class="ruby-identifier">value</span>)
208
207
  <span class="ruby-keyword kw">end</span>
@@ -211,21 +210,21 @@ ex.
211
210
  </div>
212
211
  </div>
213
212
 
214
- <div id="method-M000108" class="method-detail">
215
- <a name="M000108"></a>
213
+ <div id="method-M000177" class="method-detail">
214
+ <a name="M000177"></a>
216
215
 
217
216
  <div class="method-heading">
218
- <a href="#M000108" class="method-signature">
217
+ <a href="#M000177" class="method-signature">
219
218
  <span class="method-name">keys</span><span class="method-args">()</span>
220
219
  </a>
221
220
  </div>
222
221
 
223
222
  <div class="method-description">
224
223
  <p><a class="source-toggle" href="#"
225
- onclick="toggleCode('M000108-source');return false;">[Source]</a></p>
226
- <div class="method-source-code" id="M000108-source">
224
+ onclick="toggleCode('M000177-source');return false;">[Source]</a></p>
225
+ <div class="method-source-code" id="M000177-source">
227
226
  <pre>
228
- <span class="ruby-comment cmt"># File erubis/engine.rb, line 56</span>
227
+ <span class="ruby-comment cmt"># File erubis/context.rb, line 47</span>
229
228
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">keys</span>
230
229
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">instance_variables</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span> <span class="ruby-identifier">name</span>[<span class="ruby-value">1</span>,<span class="ruby-identifier">name</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] }
231
230
  <span class="ruby-keyword kw">end</span>
@@ -0,0 +1,231 @@
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::Converter</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::Converter</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/erubis/converter_rb.html">
59
+ erubis/converter.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
+ <div id="description">
76
+ <p>
77
+ convert
78
+ </p>
79
+
80
+ </div>
81
+
82
+
83
+ </div>
84
+
85
+ <div id="method-list">
86
+ <h3 class="section-bar">Methods</h3>
87
+
88
+ <div class="name-list">
89
+ <a href="#M000073">convert</a>&nbsp;&nbsp;
90
+ <a href="#M000074">convert_input</a>&nbsp;&nbsp;
91
+ <a href="#M000072">init_converter</a>&nbsp;&nbsp;
92
+ </div>
93
+ </div>
94
+
95
+ </div>
96
+
97
+
98
+ <!-- if includes -->
99
+
100
+ <div id="section">
101
+
102
+
103
+
104
+
105
+
106
+ <div id="attribute-list">
107
+ <h3 class="section-bar">Attributes</h3>
108
+
109
+ <div class="name-list">
110
+ <table>
111
+ <tr class="top-aligned-row context-row">
112
+ <td class="context-item-name">escape</td>
113
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
114
+ <td class="context-item-desc"></td>
115
+ </tr>
116
+ <tr class="top-aligned-row context-row">
117
+ <td class="context-item-name">postamble</td>
118
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
119
+ <td class="context-item-desc"></td>
120
+ </tr>
121
+ <tr class="top-aligned-row context-row">
122
+ <td class="context-item-name">preamble</td>
123
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
124
+ <td class="context-item-desc"></td>
125
+ </tr>
126
+ </table>
127
+ </div>
128
+ </div>
129
+
130
+
131
+
132
+ <!-- if method_list -->
133
+ <div id="methods">
134
+ <h3 class="section-bar">Public Instance methods</h3>
135
+
136
+ <div id="method-M000073" class="method-detail">
137
+ <a name="M000073"></a>
138
+
139
+ <div class="method-heading">
140
+ <a href="#M000073" class="method-signature">
141
+ <span class="method-name">convert</span><span class="method-args">(input)</span>
142
+ </a>
143
+ </div>
144
+
145
+ <div class="method-description">
146
+ <p>
147
+ convert input string into target language
148
+ </p>
149
+ <p><a class="source-toggle" href="#"
150
+ onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
151
+ <div class="method-source-code" id="M000073-source">
152
+ <pre>
153
+ <span class="ruby-comment cmt"># File erubis/converter.rb, line 34</span>
154
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert</span>(<span class="ruby-identifier">input</span>)
155
+ <span class="ruby-identifier">codebuf</span> = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-comment cmt"># or []</span>
156
+ <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>))
157
+ <span class="ruby-identifier">convert_input</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">input</span>)
158
+ <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>))
159
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">codebuf</span> <span class="ruby-comment cmt"># or codebuf.join()</span>
160
+ <span class="ruby-keyword kw">end</span>
161
+ </pre>
162
+ </div>
163
+ </div>
164
+ </div>
165
+
166
+ <div id="method-M000072" class="method-detail">
167
+ <a name="M000072"></a>
168
+
169
+ <div class="method-heading">
170
+ <a href="#M000072" class="method-signature">
171
+ <span class="method-name">init_converter</span><span class="method-args">(properties={})</span>
172
+ </a>
173
+ </div>
174
+
175
+ <div class="method-description">
176
+ <p><a class="source-toggle" href="#"
177
+ onclick="toggleCode('M000072-source');return false;">[Source]</a></p>
178
+ <div class="method-source-code" id="M000072-source">
179
+ <pre>
180
+ <span class="ruby-comment cmt"># File erubis/converter.rb, line 27</span>
181
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_converter</span>(<span class="ruby-identifier">properties</span>={})
182
+ <span class="ruby-ivar">@preamble</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:preamble</span>]
183
+ <span class="ruby-ivar">@postamble</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:postamble</span>]
184
+ <span class="ruby-ivar">@escape</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:escape</span>]
185
+ <span class="ruby-keyword kw">end</span>
186
+ </pre>
187
+ </div>
188
+ </div>
189
+ </div>
190
+
191
+ <h3 class="section-bar">Protected Instance methods</h3>
192
+
193
+ <div id="method-M000074" class="method-detail">
194
+ <a name="M000074"></a>
195
+
196
+ <div class="method-heading">
197
+ <a href="#M000074" class="method-signature">
198
+ <span class="method-name">convert_input</span><span class="method-args">(codebuf, input)</span>
199
+ </a>
200
+ </div>
201
+
202
+ <div class="method-description">
203
+ <p>
204
+ (abstract) convert input to code
205
+ </p>
206
+ <p><a class="source-toggle" href="#"
207
+ onclick="toggleCode('M000074-source');return false;">[Source]</a></p>
208
+ <div class="method-source-code" id="M000074-source">
209
+ <pre>
210
+ <span class="ruby-comment cmt"># File erubis/converter.rb, line 47</span>
211
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert_input</span>(<span class="ruby-identifier">codebuf</span>, <span class="ruby-identifier">input</span>)
212
+ <span class="ruby-identifier">not_implemented</span>
213
+ <span class="ruby-keyword kw">end</span>
214
+ </pre>
215
+ </div>
216
+ </div>
217
+ </div>
218
+
219
+
220
+ </div>
221
+
222
+
223
+ </div>
224
+
225
+
226
+ <div id="validator-badges">
227
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
228
+ </div>
229
+
230
+ </body>
231
+ </html>
@@ -65,8 +65,8 @@
65
65
  <tr class="top-aligned-row">
66
66
  <td><strong>Parent:</strong></td>
67
67
  <td>
68
- <a href="Engine.html">
69
- Engine
68
+ <a href="Basic/Engine.html">
69
+ Basic::Engine
70
70
  </a>
71
71
  </td>
72
72
  </tr>
@@ -90,303 +90,29 @@ engine for C
90
90
 
91
91
  </div>
92
92
 
93
- <div id="method-list">
94
- <h3 class="section-bar">Methods</h3>
95
-
96
- <div class="name-list">
97
- <a href="#M000118">add_expr_debug</a>&nbsp;&nbsp;
98
- <a href="#M000117">add_expr_escaped</a>&nbsp;&nbsp;
99
- <a href="#M000116">add_expr_literal</a>&nbsp;&nbsp;
100
- <a href="#M000119">add_postamble</a>&nbsp;&nbsp;
101
- <a href="#M000111">add_preamble</a>&nbsp;&nbsp;
102
- <a href="#M000115">add_stmt</a>&nbsp;&nbsp;
103
- <a href="#M000114">add_text</a>&nbsp;&nbsp;
104
- <a href="#M000112">escape_text</a>&nbsp;&nbsp;
105
- <a href="#M000113">escaped_expr</a>&nbsp;&nbsp;
106
- <a href="#M000110">new</a>&nbsp;&nbsp;
107
- </div>
108
- </div>
109
93
 
110
94
  </div>
111
95
 
112
96
 
113
97
  <!-- if includes -->
98
+ <div id="includes">
99
+ <h3 class="section-bar">Included Modules</h3>
114
100
 
115
- <div id="section">
116
-
117
-
118
-
119
-
120
-
121
-
122
-
123
-
124
- <!-- if method_list -->
125
- <div id="methods">
126
- <h3 class="section-bar">Public Class methods</h3>
127
-
128
- <div id="method-M000110" class="method-detail">
129
- <a name="M000110"></a>
130
-
131
- <div class="method-heading">
132
- <a href="#M000110" class="method-signature">
133
- <span class="method-name">new</span><span class="method-args">(input, properties={})</span>
134
- </a>
135
- </div>
136
-
137
- <div class="method-description">
138
- <p><a class="source-toggle" href="#"
139
- onclick="toggleCode('M000110-source');return false;">[Source]</a></p>
140
- <div class="method-source-code" id="M000110-source">
141
- <pre>
142
- <span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 26</span>
143
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">properties</span>={})
144
- <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>
145
- <span class="ruby-ivar">@out</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:out</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'stdout'</span>
146
- <span class="ruby-keyword kw">super</span>
147
- <span class="ruby-keyword kw">end</span>
148
- </pre>
149
- </div>
150
- </div>
151
- </div>
152
-
153
- <h3 class="section-bar">Public Instance methods</h3>
154
-
155
- <div id="method-M000118" class="method-detail">
156
- <a name="M000118"></a>
157
-
158
- <div class="method-heading">
159
- <a href="#M000118" class="method-signature">
160
- <span class="method-name">add_expr_debug</span><span class="method-args">(src, code)</span>
161
- </a>
162
- </div>
163
-
164
- <div class="method-description">
165
- <p><a class="source-toggle" href="#"
166
- onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
167
- <div class="method-source-code" id="M000118-source">
168
- <pre>
169
- <span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 80</span>
170
- <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>)
171
- <span class="ruby-identifier">code</span>.<span class="ruby-identifier">strip!</span>
172
- <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">nil</span>
173
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">code</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\A\&quot;.*?\&quot;\s*,\s*(.*)/</span>
174
- <span class="ruby-identifier">s</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/[%&quot;]/</span>, <span class="ruby-value str">'\\\1'</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'='</span>
175
- <span class="ruby-keyword kw">end</span>
176
- <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>
177
- <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; fprintf(stderr, \&quot;*** debug: #{s}\&quot; #{code});&quot;</span>
178
- <span class="ruby-keyword kw">end</span>
179
- </pre>
180
- </div>
181
- </div>
182
- </div>
183
-
184
- <div id="method-M000117" class="method-detail">
185
- <a name="M000117"></a>
186
-
187
- <div class="method-heading">
188
- <a href="#M000117" class="method-signature">
189
- <span class="method-name">add_expr_escaped</span><span class="method-args">(src, code)</span>
190
- </a>
191
- </div>
192
-
193
- <div class="method-description">
194
- <p><a class="source-toggle" href="#"
195
- onclick="toggleCode('M000117-source');return false;">[Source]</a></p>
196
- <div class="method-source-code" id="M000117-source">
197
- <pre>
198
- <span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 75</span>
199
- <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>)
200
- <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>
201
- <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; fprintf(#{@out}, &quot;</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>
202
- <span class="ruby-keyword kw">end</span>
203
- </pre>
204
- </div>
205
- </div>
206
- </div>
207
-
208
- <div id="method-M000116" class="method-detail">
209
- <a name="M000116"></a>
210
-
211
- <div class="method-heading">
212
- <a href="#M000116" class="method-signature">
213
- <span class="method-name">add_expr_literal</span><span class="method-args">(src, code)</span>
214
- </a>
215
- </div>
216
-
217
- <div class="method-description">
218
- <p><a class="source-toggle" href="#"
219
- onclick="toggleCode('M000116-source');return false;">[Source]</a></p>
220
- <div class="method-source-code" id="M000116-source">
221
- <pre>
222
- <span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 70</span>
223
- <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>)
224
- <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>
225
- <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; fprintf(#{@out}, &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">');'</span>
226
- <span class="ruby-keyword kw">end</span>
227
- </pre>
228
- </div>
229
- </div>
230
- </div>
231
-
232
- <div id="method-M000119" class="method-detail">
233
- <a name="M000119"></a>
234
-
235
- <div class="method-heading">
236
- <a href="#M000119" class="method-signature">
237
- <span class="method-name">add_postamble</span><span class="method-args">(src)</span>
238
- </a>
239
- </div>
240
-
241
- <div class="method-description">
242
- <p><a class="source-toggle" href="#"
243
- onclick="toggleCode('M000119-source');return false;">[Source]</a></p>
244
- <div class="method-source-code" id="M000119-source">
245
- <pre>
246
- <span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 90</span>
247
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_postamble</span>(<span class="ruby-identifier">src</span>)
248
- <span class="ruby-comment cmt"># empty</span>
249
- <span class="ruby-keyword kw">end</span>
250
- </pre>
251
- </div>
252
- </div>
253
- </div>
254
-
255
- <div id="method-M000111" class="method-detail">
256
- <a name="M000111"></a>
257
-
258
- <div class="method-heading">
259
- <a href="#M000111" class="method-signature">
260
- <span class="method-name">add_preamble</span><span class="method-args">(src)</span>
261
- </a>
262
- </div>
263
-
264
- <div class="method-description">
265
- <p><a class="source-toggle" href="#"
266
- onclick="toggleCode('M000111-source');return false;">[Source]</a></p>
267
- <div class="method-source-code" id="M000111-source">
268
- <pre>
269
- <span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 32</span>
270
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_preamble</span>(<span class="ruby-identifier">src</span>)
271
- <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>
272
- <span class="ruby-keyword kw">end</span>
273
- </pre>
274
- </div>
275
- </div>
276
- </div>
277
-
278
- <div id="method-M000115" class="method-detail">
279
- <a name="M000115"></a>
280
-
281
- <div class="method-heading">
282
- <a href="#M000115" class="method-signature">
283
- <span class="method-name">add_stmt</span><span class="method-args">(src, code)</span>
284
- </a>
285
- </div>
286
-
287
- <div class="method-description">
288
- <p><a class="source-toggle" href="#"
289
- onclick="toggleCode('M000115-source');return false;">[Source]</a></p>
290
- <div class="method-source-code" id="M000115-source">
291
- <pre>
292
- <span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 66</span>
293
- <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>)
294
- <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">code</span>
295
- <span class="ruby-keyword kw">end</span>
296
- </pre>
297
- </div>
298
- </div>
101
+ <div id="includes-list">
102
+ <span class="include-name"><a href="CGenerator.html">CGenerator</a></span>
299
103
  </div>
104
+ </div>
300
105
 
301
- <div id="method-M000114" class="method-detail">
302
- <a name="M000114"></a>
106
+ <div id="section">
303
107
 
304
- <div class="method-heading">
305
- <a href="#M000114" class="method-signature">
306
- <span class="method-name">add_text</span><span class="method-args">(src, text)</span>
307
- </a>
308
- </div>
309
-
310
- <div class="method-description">
311
- <p><a class="source-toggle" href="#"
312
- onclick="toggleCode('M000114-source');return false;">[Source]</a></p>
313
- <div class="method-source-code" id="M000114-source">
314
- <pre>
315
- <span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 52</span>
316
- <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>)
317
- <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>
318
- <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>)
319
- <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;fputs(&quot;</span>
320
- <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
321
- <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>
322
- <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">' '</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>
323
- <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
324
- <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>
325
- <span class="ruby-keyword kw">end</span>
326
- <span class="ruby-identifier">src</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;, #{@out});&quot;</span> <span class="ruby-comment cmt">#&lt;&lt; (text[-1] == ?\n ? &quot;\n&quot; : &quot;&quot;)</span>
327
- <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>
328
- <span class="ruby-keyword kw">end</span>
329
- </pre>
330
- </div>
331
- </div>
332
- </div>
333
108
 
334
- <div id="method-M000112" class="method-detail">
335
- <a name="M000112"></a>
336
109
 
337
- <div class="method-heading">
338
- <a href="#M000112" class="method-signature">
339
- <span class="method-name">escape_text</span><span class="method-args">(text)</span>
340
- </a>
341
- </div>
342
-
343
- <div class="method-description">
344
- <p><a class="source-toggle" href="#"
345
- onclick="toggleCode('M000112-source');return false;">[Source]</a></p>
346
- <div class="method-source-code" id="M000112-source">
347
- <pre>
348
- <span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 36</span>
349
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escape_text</span>(<span class="ruby-identifier">text</span>)
350
- <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> }
351
- <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>] }
352
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">text</span>
353
- <span class="ruby-keyword kw">end</span>
354
- </pre>
355
- </div>
356
- </div>
357
- </div>
358
110
 
359
- <div id="method-M000113" class="method-detail">
360
- <a name="M000113"></a>
361
111
 
362
- <div class="method-heading">
363
- <a href="#M000113" class="method-signature">
364
- <span class="method-name">escaped_expr</span><span class="method-args">(code)</span>
365
- </a>
366
- </div>
367
112
 
368
- <div class="method-description">
369
- <p><a class="source-toggle" href="#"
370
- onclick="toggleCode('M000113-source');return false;">[Source]</a></p>
371
- <div class="method-source-code" id="M000113-source">
372
- <pre>
373
- <span class="ruby-comment cmt"># File erubis/engine/ec.rb, line 42</span>
374
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escaped_expr</span>(<span class="ruby-identifier">code</span>)
375
- <span class="ruby-ivar">@escape</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;escape&quot;</span>
376
- <span class="ruby-identifier">code</span>.<span class="ruby-identifier">strip!</span>
377
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">code</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\A(\&quot;.*?\&quot;)\s*,\s*(.*)/</span>
378
- <span class="ruby-keyword kw">return</span> <span class="ruby-node">&quot;#{$1}, #{@escape}(#{$2})&quot;</span>
379
- <span class="ruby-keyword kw">else</span>
380
- <span class="ruby-keyword kw">return</span> <span class="ruby-node">&quot;#{@escape}(#{code})&quot;</span>
381
- <span class="ruby-keyword kw">end</span>
382
- <span class="ruby-keyword kw">end</span>
383
- </pre>
384
- </div>
385
- </div>
386
- </div>
387
113
 
388
114
 
389
- </div>
115
+ <!-- if method_list -->
390
116
 
391
117
 
392
118
  </div>