PageTemplate 1.2.0 → 2.0.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 (150) hide show
  1. data/Changes +24 -0
  2. data/MANIFEST +0 -1
  3. data/README.txt +10 -8
  4. data/Rakefile +30 -9
  5. data/lib/PageTemplate/case.rb +72 -0
  6. data/lib/PageTemplate/commands.rb +500 -0
  7. data/lib/PageTemplate/parser.rb +373 -0
  8. data/lib/PageTemplate.rb +47 -991
  9. data/setup-usage.txt +129 -0
  10. data/setup.rb +1360 -0
  11. data/tdata/dummy.txt +2 -0
  12. data/test.rb +616 -0
  13. metadata +13 -169
  14. data/CVS/Entries +0 -10
  15. data/CVS/Repository +0 -1
  16. data/CVS/Root +0 -1
  17. data/Changes~ +0 -7
  18. data/InstalledFiles +0 -7
  19. data/Rakefile~ +0 -54
  20. data/TC_PageTemplate.rb +0 -974
  21. data/TC_PageTemplate.rb~ +0 -965
  22. data/config.save +0 -12
  23. data/doc/classes/BlockCommand.html +0 -229
  24. data/doc/classes/BlockCommand.src/M000004.html +0 -18
  25. data/doc/classes/BlockCommand.src/M000005.html +0 -25
  26. data/doc/classes/BlockCommand.src/M000006.html +0 -18
  27. data/doc/classes/BlockCommand.src/M000007.html +0 -23
  28. data/doc/classes/BlockCommand.src/M000008.html +0 -24
  29. data/doc/classes/Command.html +0 -167
  30. data/doc/classes/Command.src/M000032.html +0 -19
  31. data/doc/classes/Command.src/M000033.html +0 -18
  32. data/doc/classes/CommentCommand.html +0 -146
  33. data/doc/classes/CommentCommand.src/M000009.html +0 -18
  34. data/doc/classes/IfCommand.html +0 -193
  35. data/doc/classes/IfCommand.src/M000042.html +0 -19
  36. data/doc/classes/IfCommand.src/M000043.html +0 -20
  37. data/doc/classes/IfCommand.src/M000044.html +0 -20
  38. data/doc/classes/IfElseCommand.html +0 -189
  39. data/doc/classes/IfElseCommand.src/M000025.html +0 -19
  40. data/doc/classes/IfElseCommand.src/M000026.html +0 -23
  41. data/doc/classes/IfElseCommand.src/M000027.html +0 -20
  42. data/doc/classes/IncludeCommand.html +0 -171
  43. data/doc/classes/IncludeCommand.src/M000019.html +0 -26
  44. data/doc/classes/IncludeCommand.src/M000020.html +0 -28
  45. data/doc/classes/IncludeCommand.src/M000021.html +0 -18
  46. data/doc/classes/IncludeCommandError.html +0 -118
  47. data/doc/classes/LoopCommand.html +0 -197
  48. data/doc/classes/LoopCommand.src/M000001.html +0 -19
  49. data/doc/classes/LoopCommand.src/M000002.html +0 -42
  50. data/doc/classes/LoopCommand.src/M000003.html +0 -20
  51. data/doc/classes/LoopElseCommand.html +0 -190
  52. data/doc/classes/LoopElseCommand.src/M000022.html +0 -19
  53. data/doc/classes/LoopElseCommand.src/M000023.html +0 -23
  54. data/doc/classes/LoopElseCommand.src/M000024.html +0 -20
  55. data/doc/classes/Namespace.html +0 -297
  56. data/doc/classes/Namespace.src/M000034.html +0 -19
  57. data/doc/classes/Namespace.src/M000035.html +0 -18
  58. data/doc/classes/Namespace.src/M000036.html +0 -18
  59. data/doc/classes/Namespace.src/M000037.html +0 -19
  60. data/doc/classes/Namespace.src/M000038.html +0 -36
  61. data/doc/classes/Namespace.src/M000039.html +0 -21
  62. data/doc/classes/Namespace.src/M000040.html +0 -18
  63. data/doc/classes/Namespace.src/M000041.html +0 -18
  64. data/doc/classes/PageTemplate.html +0 -380
  65. data/doc/classes/PageTemplate.src/M000010.html +0 -49
  66. data/doc/classes/PageTemplate.src/M000011.html +0 -18
  67. data/doc/classes/PageTemplate.src/M000012.html +0 -29
  68. data/doc/classes/PageTemplate.src/M000013.html +0 -18
  69. data/doc/classes/PageTemplate.src/M000014.html +0 -18
  70. data/doc/classes/PageTemplate.src/M000015.html +0 -18
  71. data/doc/classes/PageTemplate.src/M000016.html +0 -18
  72. data/doc/classes/PageTemplate.src/M000017.html +0 -18
  73. data/doc/classes/PageTemplate.src/M000018.html +0 -19
  74. data/doc/classes/Syntax/CachedParser.html +0 -163
  75. data/doc/classes/Syntax/CachedParser.src/M000048.html +0 -19
  76. data/doc/classes/Syntax/CachedParser.src/M000049.html +0 -53
  77. data/doc/classes/Syntax/Glossary.html +0 -251
  78. data/doc/classes/Syntax/Glossary.src/M000050.html +0 -20
  79. data/doc/classes/Syntax/Glossary.src/M000051.html +0 -29
  80. data/doc/classes/Syntax/Parser.html +0 -261
  81. data/doc/classes/Syntax/Parser.src/M000052.html +0 -22
  82. data/doc/classes/Syntax/Parser.src/M000053.html +0 -36
  83. data/doc/classes/Syntax/Parser.src/M000054.html +0 -18
  84. data/doc/classes/Syntax/Parser.src/M000055.html +0 -21
  85. data/doc/classes/Syntax/Parser.src/M000056.html +0 -53
  86. data/doc/classes/Syntax/Parser.src/M000057.html +0 -111
  87. data/doc/classes/Syntax.html +0 -139
  88. data/doc/classes/TextCommand.html +0 -185
  89. data/doc/classes/TextCommand.src/M000045.html +0 -18
  90. data/doc/classes/TextCommand.src/M000046.html +0 -18
  91. data/doc/classes/TextCommand.src/M000047.html +0 -18
  92. data/doc/classes/UnlessCommand.html +0 -151
  93. data/doc/classes/UnlessCommand.src/M000028.html +0 -20
  94. data/doc/classes/ValueCommand.html +0 -186
  95. data/doc/classes/ValueCommand.src/M000029.html +0 -18
  96. data/doc/classes/ValueCommand.src/M000030.html +0 -18
  97. data/doc/classes/ValueCommand.src/M000031.html +0 -20
  98. data/doc/created.rid +0 -1
  99. data/doc/files/README_txt.html +0 -224
  100. data/doc/files/lib/PageTemplate_rb.html +0 -119
  101. data/doc/fr_class_index.html +0 -44
  102. data/doc/fr_file_index.html +0 -28
  103. data/doc/fr_method_index.html +0 -83
  104. data/doc/index.html +0 -24
  105. data/doc/rdoc-style.css +0 -208
  106. data/install.rb +0 -1015
  107. data/lib/CVS/Entries +0 -2
  108. data/lib/CVS/Repository +0 -1
  109. data/lib/CVS/Root +0 -1
  110. data/lib/PageTemplate.rb~ +0 -1004
  111. data/pkg/PageTemplate-1.2.0.gem +0 -0
  112. data/tdata/CVS/Entries +0 -28
  113. data/tdata/CVS/Repository +0 -1
  114. data/tdata/CVS/Root +0 -1
  115. data/tdata/cm.txt +0 -3
  116. data/tdata/complex.txt +0 -116
  117. data/tdata/i1.txt +0 -1
  118. data/tdata/i2.txt +0 -7
  119. data/tdata/ib1.txt +0 -7
  120. data/tdata/ib2.txt +0 -13
  121. data/tdata/ie1.txt +0 -4
  122. data/tdata/ie2.txt +0 -15
  123. data/tdata/include.1.txt +0 -1
  124. data/tdata/include.2.txt +0 -1
  125. data/tdata/include.3.txt +0 -1
  126. data/tdata/include.4.nf.out.txt +0 -2
  127. data/tdata/include.4.out.txt +0 -3
  128. data/tdata/include.4.txt +0 -2
  129. data/tdata/include.4a.txt +0 -1
  130. data/tdata/include.4b.txt +0 -2
  131. data/tdata/include.5.txt +0 -2
  132. data/tdata/l1.txt +0 -5
  133. data/tdata/l2.txt +0 -7
  134. data/tdata/metadata.1.txt +0 -5
  135. data/tdata/metadata.2.txt +0 -5
  136. data/tdata/metadata.3.txt +0 -5
  137. data/tdata/metadata.4.txt +0 -5
  138. data/tdata/nm.txt +0 -4
  139. data/tdata/p/CVS/Entries +0 -5
  140. data/tdata/p/CVS/Repository +0 -1
  141. data/tdata/p/CVS/Root +0 -1
  142. data/tdata/p/CVS/b2.txt,t +0 -0
  143. data/tdata/p/_b1.txt +0 -0
  144. data/tdata/p/b1.txt +0 -4
  145. data/tdata/p/b2.txt +0 -4
  146. data/tdata/p/b2.txt~ +0 -4
  147. data/tdata/p/cb1.txt +0 -4
  148. data/tdata/t.txt +0 -2
  149. data/tdata/v1.txt +0 -11
  150. data/tdata/v2.txt +0 -11
@@ -1,261 +0,0 @@
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>Class: Syntax::Parser</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>Class</strong></td>
53
- <td class="class-name-in-header">Syntax::Parser</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/PageTemplate_rb.html">
59
- lib/PageTemplate.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- Object
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
- <div id="description">
82
- <p>
83
- Uses a <a href="Glossary.html">Syntax::Glossary</a> to translate a string
84
- of text into a series of Commands.
85
- </p>
86
-
87
- </div>
88
-
89
-
90
- </div>
91
-
92
- <div id="method-list">
93
- <h3 class="section-bar">Methods</h3>
94
-
95
- <div class="name-list">
96
- <a href="#M000053">build</a>&nbsp;&nbsp;
97
- <a href="#M000057">compile</a>&nbsp;&nbsp;
98
- <a href="#M000052">new</a>&nbsp;&nbsp;
99
- <a href="#M000054">output</a>&nbsp;&nbsp;
100
- <a href="#M000056">parse</a>&nbsp;&nbsp;
101
- <a href="#M000055">reset</a>&nbsp;&nbsp;
102
- </div>
103
- </div>
104
-
105
- </div>
106
-
107
-
108
- <!-- if includes -->
109
-
110
- <div id="section">
111
-
112
-
113
-
114
-
115
-
116
- <div id="attribute-list">
117
- <h3 class="section-bar">Attributes</h3>
118
-
119
- <div class="name-list">
120
- <table>
121
- <tr class="top-aligned-row context-row">
122
- <td class="context-item-name">commands</td>
123
- <td class="context-item-value">&nbsp;[R]&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 Class methods</h3>
135
-
136
- <div id="method-M000052" class="method-detail">
137
- <a name="M000052"></a>
138
-
139
- <div class="method-heading">
140
- <a href="Parser.src/M000052.html" target="Code" class="method-signature"
141
- onclick="popupCode('Parser.src/M000052.html');return false;">
142
- <span class="method-name">new</span><span class="method-args">(glossary, path=Dir.getwd)</span>
143
- </a>
144
- </div>
145
-
146
- <div class="method-description">
147
- </div>
148
- </div>
149
-
150
- <h3 class="section-bar">Public Instance methods</h3>
151
-
152
- <div id="method-M000053" class="method-detail">
153
- <a name="M000053"></a>
154
-
155
- <div class="method-heading">
156
- <a href="Parser.src/M000053.html" target="Code" class="method-signature"
157
- onclick="popupCode('Parser.src/M000053.html');return false;">
158
- <span class="method-name">build</span><span class="method-args">(filename)</span>
159
- </a>
160
- </div>
161
-
162
- <div class="method-description">
163
- <p>
164
- Parse and compile a file containing <a
165
- href="../PageTemplate.html">PageTemplate</a> directives.
166
- </p>
167
- </div>
168
- </div>
169
-
170
- <div id="method-M000057" class="method-detail">
171
- <a name="M000057"></a>
172
-
173
- <div class="method-heading">
174
- <a href="Parser.src/M000057.html" target="Code" class="method-signature"
175
- onclick="popupCode('Parser.src/M000057.html');return false;">
176
- <span class="method-name">compile</span><span class="method-args">(lines, filename = &quot;?&quot;)</span>
177
- </a>
178
- </div>
179
-
180
- <div class="method-description">
181
- <p>
182
- Turn an array of parsed directives into a CommandBlock.
183
- </p>
184
- <p>
185
- If provided, <tt>filename</tt> is assumed to be the name of the file which
186
- contains the original <tt>source</tt>.
187
- </p>
188
- </div>
189
- </div>
190
-
191
- <div id="method-M000054" class="method-detail">
192
- <a name="M000054"></a>
193
-
194
- <div class="method-heading">
195
- <a href="Parser.src/M000054.html" target="Code" class="method-signature"
196
- onclick="popupCode('Parser.src/M000054.html');return false;">
197
- <span class="method-name">output</span><span class="method-args">(namespace = nil)</span>
198
- </a>
199
- </div>
200
-
201
- <div class="method-description">
202
- <p>
203
- Returns the result of executing the <a
204
- href="Parser.html">Parser</a>&#8217;s internal compiled CommandBlock, using
205
- ((|namespace||)).
206
- </p>
207
- </div>
208
- </div>
209
-
210
- <div id="method-M000056" class="method-detail">
211
- <a name="M000056"></a>
212
-
213
- <div class="method-heading">
214
- <a href="Parser.src/M000056.html" target="Code" class="method-signature"
215
- onclick="popupCode('Parser.src/M000056.html');return false;">
216
- <span class="method-name">parse</span><span class="method-args">(source, filename = &quot;?&quot;)</span>
217
- </a>
218
- </div>
219
-
220
- <div class="method-description">
221
- <p>
222
- Turn an array of strings <tt>source</tt> into a series of directives that
223
- can be handled by <a href="Parser.html#M000057">Parser#compile</a>.
224
- </p>
225
- <p>
226
- If provided, <tt>filename</tt> is assumed to be the name of the file which
227
- contains the original <tt>source</tt>.
228
- </p>
229
- </div>
230
- </div>
231
-
232
- <div id="method-M000055" class="method-detail">
233
- <a name="M000055"></a>
234
-
235
- <div class="method-heading">
236
- <a href="Parser.src/M000055.html" target="Code" class="method-signature"
237
- onclick="popupCode('Parser.src/M000055.html');return false;">
238
- <span class="method-name">reset</span><span class="method-args">()</span>
239
- </a>
240
- </div>
241
-
242
- <div class="method-description">
243
- <p>
244
- Clear the <a href="Parser.html">Parser</a>&#8217;s CommandBlock.
245
- </p>
246
- </div>
247
- </div>
248
-
249
-
250
- </div>
251
-
252
-
253
- </div>
254
-
255
-
256
- <div id="validator-badges">
257
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
258
- </div>
259
-
260
- </body>
261
- </html>
@@ -1,22 +0,0 @@
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>
7
- <head>
8
- <title>new (Syntax::Parser)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/PageTemplate.rb, line 515</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">glossary</span>, <span class="ruby-identifier">path</span>=<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">getwd</span>)
15
- <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">path</span>
16
- <span class="ruby-ivar">@syntax</span> = <span class="ruby-identifier">glossary</span>
17
- <span class="ruby-ivar">@commands</span> = <span class="ruby-keyword kw">nil</span>
18
- <span class="ruby-ivar">@lastFile</span> = <span class="ruby-keyword kw">nil</span>
19
- <span class="ruby-ivar">@mTime</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span>(<span class="ruby-value">0</span>)
20
- <span class="ruby-keyword kw">end</span></pre>
21
- </body>
22
- </html>
@@ -1,36 +0,0 @@
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>
7
- <head>
8
- <title>build (Syntax::Parser)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/PageTemplate.rb, line 524</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">build</span>(<span class="ruby-identifier">filename</span>)
15
- <span class="ruby-identifier">filename</span>.<span class="ruby-identifier">untaint</span>
16
- <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">filename</span>)
17
- <span class="ruby-identifier">file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>)
18
- <span class="ruby-keyword kw">else</span>
19
- <span class="ruby-identifier">file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@path</span>, <span class="ruby-identifier">filename</span>))
20
- <span class="ruby-keyword kw">end</span>
21
-
22
- <span class="ruby-comment cmt"># If this is a new file, or the file has been changed,</span>
23
- <span class="ruby-comment cmt"># parse and compile.</span>
24
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filename</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@lastFile</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">mtime</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@mTime</span>
25
- <span class="ruby-identifier">reset</span>
26
- <span class="ruby-identifier">source</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">readlines</span>
27
- <span class="ruby-identifier">parsed</span> = <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">filename</span>)
28
- <span class="ruby-ivar">@commands</span> = <span class="ruby-identifier">compile</span>(<span class="ruby-identifier">parsed</span>, <span class="ruby-identifier">filename</span>)
29
- <span class="ruby-ivar">@lastFile</span> = <span class="ruby-identifier">filename</span>
30
- <span class="ruby-ivar">@mTime</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">mtime</span>
31
- <span class="ruby-keyword kw">end</span>
32
-
33
- <span class="ruby-keyword kw">return</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@commands</span>
34
- <span class="ruby-keyword kw">end</span></pre>
35
- </body>
36
- </html>
@@ -1,18 +0,0 @@
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>
7
- <head>
8
- <title>output (Syntax::Parser)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/PageTemplate.rb, line 548</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">output</span>(<span class="ruby-identifier">namespace</span> = <span class="ruby-keyword kw">nil</span>)
15
- <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@commands</span>.<span class="ruby-identifier">output</span>(<span class="ruby-identifier">namespace</span>)
16
- <span class="ruby-keyword kw">end</span></pre>
17
- </body>
18
- </html>
@@ -1,21 +0,0 @@
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>
7
- <head>
8
- <title>reset (Syntax::Parser)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/PageTemplate.rb, line 553</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
15
- <span class="ruby-ivar">@lastFile</span> = <span class="ruby-keyword kw">nil</span>
16
- <span class="ruby-ivar">@mTime</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span>(<span class="ruby-value">0</span>)
17
- <span class="ruby-ivar">@commands</span> = <span class="ruby-keyword kw">nil</span>
18
- <span class="ruby-keyword kw">return</span> <span class="ruby-value">1</span>
19
- <span class="ruby-keyword kw">end</span></pre>
20
- </body>
21
- </html>
@@ -1,53 +0,0 @@
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>
7
- <head>
8
- <title>parse (Syntax::Parser)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/PageTemplate.rb, line 565</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">filename</span> = <span class="ruby-value str">&quot;?&quot;</span>)
15
- <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{filename}: Parsing ...&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
16
-
17
- <span class="ruby-comment cmt"># Translate source into listing of text and directives</span>
18
- <span class="ruby-identifier">lineNo</span> = <span class="ruby-value">1</span>
19
- <span class="ruby-identifier">parsed</span> = []
20
- <span class="ruby-identifier">source</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
21
- <span class="ruby-comment cmt"># split into plain text and directives</span>
22
- <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">line</span>
23
- <span class="ruby-identifier">dirMatch</span> = <span class="ruby-ivar">@syntax</span>.<span class="ruby-identifier">directive</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">line</span>)
24
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dirMatch</span>
25
- <span class="ruby-identifier">matchText</span> = <span class="ruby-identifier">dirMatch</span>[<span class="ruby-value">1</span>]
26
- <span class="ruby-identifier">pre</span> = <span class="ruby-identifier">dirMatch</span>.<span class="ruby-identifier">pre_match</span>
27
- <span class="ruby-identifier">directive</span> = <span class="ruby-ivar">@syntax</span>.<span class="ruby-identifier">lookup</span>(<span class="ruby-identifier">matchText</span>)
28
- <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">push</span> [<span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">pre</span>]
29
-
30
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directive</span>
31
- <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">push</span> [<span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">directive</span>]
32
- <span class="ruby-keyword kw">else</span>
33
- <span class="ruby-comment cmt"># Unrecognized directives are treated as</span>
34
- <span class="ruby-comment cmt"># plain text.</span>
35
- <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">push</span> [<span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">dirMatch</span>[<span class="ruby-value">0</span>]]
36
- <span class="ruby-keyword kw">end</span>
37
-
38
- <span class="ruby-identifier">fragment</span> = <span class="ruby-identifier">dirMatch</span>.<span class="ruby-identifier">post_match</span>
39
- <span class="ruby-identifier">line</span> = <span class="ruby-identifier">fragment</span>
40
- <span class="ruby-keyword kw">else</span>
41
- <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">push</span> [<span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">line</span>]
42
- <span class="ruby-keyword kw">break</span>
43
- <span class="ruby-keyword kw">end</span>
44
- <span class="ruby-keyword kw">end</span>
45
- <span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
46
- <span class="ruby-keyword kw">end</span>
47
-
48
- <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{filename}: #{@parsed.length} directives&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
49
-
50
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parsed</span>
51
- <span class="ruby-keyword kw">end</span></pre>
52
- </body>
53
- </html>
@@ -1,111 +0,0 @@
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>
7
- <head>
8
- <title>compile (Syntax::Parser)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/PageTemplate.rb, line 608</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">compile</span>(<span class="ruby-identifier">lines</span>, <span class="ruby-identifier">filename</span> = <span class="ruby-value str">&quot;?&quot;</span>)
15
-
16
- <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{filename}: Compiling ...&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
17
- <span class="ruby-comment cmt"># Translate listing of text and directives into a BlockCommand</span>
18
- <span class="ruby-identifier">commands</span> = <span class="ruby-constant">BlockCommand</span>.<span class="ruby-identifier">new</span>()
19
- <span class="ruby-identifier">max</span> = <span class="ruby-identifier">lines</span>.<span class="ruby-identifier">length</span>
20
- <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
21
- <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">max</span>
22
- <span class="ruby-identifier">line</span> = <span class="ruby-identifier">lines</span>[<span class="ruby-identifier">i</span>]
23
- <span class="ruby-identifier">type</span> = <span class="ruby-identifier">line</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">class</span>
24
- <span class="ruby-identifier">command</span> = <span class="ruby-keyword kw">nil</span>
25
- <span class="ruby-comment cmt">#puts &quot;#{filename}/#{line[0]}: #{type} -- #{line}&quot;</span>
26
-
27
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-constant">String</span>
28
- <span class="ruby-identifier">command</span> = <span class="ruby-constant">TextCommand</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">line</span>[<span class="ruby-value">1</span>])
29
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Array</span>
30
- <span class="ruby-identifier">directive</span> = <span class="ruby-identifier">line</span>[<span class="ruby-value">1</span>][<span class="ruby-value">0</span>]
31
- <span class="ruby-identifier">value</span> = <span class="ruby-identifier">line</span>[<span class="ruby-value">1</span>][<span class="ruby-value">1</span>]
32
- <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;(#{directive} #{value}) &quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
33
-
34
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directive</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;value&quot;</span>
35
- <span class="ruby-identifier">command</span> = <span class="ruby-constant">ValueCommand</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">value</span>)
36
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">directive</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;include&quot;</span>
37
- <span class="ruby-identifier">command</span> = <span class="ruby-constant">IncludeCommand</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">value</span>, <span class="ruby-ivar">@path</span>)
38
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">directive</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;comment&quot;</span>
39
- <span class="ruby-identifier">command</span> = <span class="ruby-constant">CommentCommand</span>.<span class="ruby-identifier">new</span>()
40
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">directive</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^(\w+?)open$/</span>
41
- <span class="ruby-identifier">mainBlock</span> = <span class="ruby-keyword kw">nil</span>
42
- <span class="ruby-identifier">branchBlock</span> = <span class="ruby-keyword kw">nil</span>
43
- <span class="ruby-identifier">close</span> = <span class="ruby-keyword kw">nil</span>
44
- <span class="ruby-identifier">branch</span> = <span class="ruby-keyword kw">nil</span>
45
-
46
- <span class="ruby-identifier">block</span> = <span class="ruby-identifier">$1</span>
47
- <span class="ruby-identifier">startIndex</span> = <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
48
- <span class="ruby-identifier">closers</span> = <span class="ruby-identifier">findClose</span>(<span class="ruby-identifier">lines</span>[<span class="ruby-identifier">startIndex</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>],
49
- <span class="ruby-identifier">startIndex</span>, <span class="ruby-identifier">block</span>)
50
-
51
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">closers</span>[<span class="ruby-value str">'close'</span>]
52
- <span class="ruby-identifier">close</span> = <span class="ruby-identifier">closers</span>[<span class="ruby-value str">'close'</span>]
53
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">closers</span>[<span class="ruby-value str">'branch'</span>]
54
- <span class="ruby-identifier">branch</span> = <span class="ruby-identifier">closers</span>[<span class="ruby-value str">'branch'</span>]
55
- <span class="ruby-identifier">mainLines</span> = <span class="ruby-identifier">lines</span>[<span class="ruby-identifier">startIndex</span><span class="ruby-operator">...</span><span class="ruby-identifier">branch</span>]
56
- <span class="ruby-identifier">mainBlock</span> = <span class="ruby-identifier">compile</span>(<span class="ruby-identifier">mainLines</span>)
57
- <span class="ruby-identifier">branchLines</span> = <span class="ruby-identifier">lines</span>[<span class="ruby-identifier">branch</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">...</span><span class="ruby-identifier">close</span>]
58
- <span class="ruby-identifier">branchBlock</span> = <span class="ruby-identifier">compile</span>(<span class="ruby-identifier">branchLines</span>)
59
- <span class="ruby-keyword kw">else</span>
60
- <span class="ruby-identifier">mainLines</span> = <span class="ruby-identifier">lines</span>[<span class="ruby-identifier">startIndex</span><span class="ruby-operator">...</span><span class="ruby-identifier">close</span>]
61
- <span class="ruby-identifier">mainBlock</span> = <span class="ruby-identifier">compile</span>(<span class="ruby-identifier">mainLines</span>)
62
- <span class="ruby-keyword kw">end</span>
63
- <span class="ruby-keyword kw">else</span>
64
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;#{filename}:#{line[0]} - &quot;</span> <span class="ruby-operator">+</span>
65
- <span class="ruby-node">&quot;#{block} #{value} doesn't close&quot;</span>
66
- <span class="ruby-keyword kw">end</span>
67
-
68
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;if&quot;</span>
69
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mainBlock</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">branchBlock</span>
70
- <span class="ruby-identifier">command</span> = <span class="ruby-constant">IfElseCommand</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">value</span>,
71
- <span class="ruby-identifier">mainBlock</span>, <span class="ruby-identifier">branchBlock</span>)
72
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">mainBlock</span>
73
- <span class="ruby-identifier">command</span> = <span class="ruby-constant">IfCommand</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">mainBlock</span>)
74
- <span class="ruby-keyword kw">end</span>
75
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">block</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;unless&quot;</span>
76
- <span class="ruby-identifier">command</span> = <span class="ruby-constant">UnlessCommand</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">mainBlock</span>)
77
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">block</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;loop&quot;</span>
78
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mainBlock</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">branchBlock</span>
79
- <span class="ruby-identifier">command</span> = <span class="ruby-constant">LoopElseCommand</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">value</span>,
80
- <span class="ruby-identifier">mainBlock</span>, <span class="ruby-identifier">branchBlock</span>)
81
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">mainBlock</span>
82
- <span class="ruby-identifier">command</span> = <span class="ruby-constant">LoopCommand</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">mainBlock</span>)
83
- <span class="ruby-keyword kw">end</span>
84
- <span class="ruby-keyword kw">else</span>
85
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;#{filename}: #{line[0]} - &quot;</span> <span class="ruby-operator">+</span>
86
- <span class="ruby-node">&quot;Unrecognized block type '#{block}'&quot;</span>
87
- <span class="ruby-keyword kw">end</span>
88
-
89
- <span class="ruby-comment cmt"># Skip to the line after the block closer.</span>
90
- <span class="ruby-identifier">i</span> = <span class="ruby-identifier">close</span>
91
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-value str">%Q[
92
- ifbranch ifclose loopbranch loopclose unlessclose
93
- ]</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">directive</span>)
94
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;#{filename}:#{line[0]} - #{directive}&quot;</span> <span class="ruby-operator">+</span>
95
- <span class="ruby-value str">&quot; without corresponding opening directive&quot;</span>
96
- <span class="ruby-keyword kw">else</span>
97
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;#{filename}:#{line[0]} - Unknown command #{directive}&quot;</span>
98
- <span class="ruby-keyword kw">end</span>
99
- <span class="ruby-keyword kw">else</span>
100
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;#{filename}: Unknown instruction in line #{line}&quot;</span>
101
- <span class="ruby-keyword kw">end</span>
102
-
103
- <span class="ruby-identifier">commands</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">command</span>)
104
- <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
105
- <span class="ruby-keyword kw">end</span>
106
-
107
- <span class="ruby-comment cmt"># Return compiled BlockCommand</span>
108
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">commands</span>
109
- <span class="ruby-keyword kw">end</span></pre>
110
- </body>
111
- </html>