fto 0.1.0 → 1.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.
@@ -88,20 +88,20 @@ others are for developers modifying or extending the <tt>fto</tt> library.
88
88
  <em><a href="FTO.html">FTO</a></em> is a subclass of <em>String</em>, so
89
89
  all <em>String</em> methods work on an <em><a href="FTO.html">FTO</a></em>
90
90
  object. <em><a href="FTO.html">FTO</a></em> provides the additional <em><a
91
- href="FTO.html#M000007">format</a>()</em> method.
91
+ href="FTO.html#M000008">format</a>()</em> method.
92
92
  </p>
93
93
  <p>
94
94
  In addition to string text, the constructor (<em><a
95
95
  href="FTO.html#M000001">FTO.new</a></em>) can take more than a single
96
96
  argument. Additional arguments will be stored as part of the object and
97
97
  will be available to the <em><a
98
- href="FTO.html#M000007">FTO#format</a>()</em> method at runtime.
98
+ href="FTO.html#M000008">FTO#format</a>()</em> method at runtime.
99
99
  </p>
100
100
  <p>
101
101
  An <em><a href="FTO.html">FTO</a></em> object can be created as just a
102
102
  formatting string, or the constructor invocation can also include values to
103
- be applied by the <em><a href="FTO.html#M000007">FTO#format</a>()</em>
104
- method. At runtime the <em><a href="FTO.html#M000007">format</a>()</em>
103
+ be applied by the <em><a href="FTO.html#M000008">FTO#format</a>()</em>
104
+ method. At runtime the <em><a href="FTO.html#M000008">format</a>()</em>
105
105
  method can override any argument list provided at instantiation, but the
106
106
  latter is not lost.
107
107
  </p>
@@ -115,13 +115,14 @@ latter is not lost.
115
115
  <h3 class="section-bar">Methods</h3>
116
116
 
117
117
  <div class="name-list">
118
- <a href="#M000004">destroyEffector</a>&nbsp;&nbsp;
119
- <a href="#M000005">disableEffector</a>&nbsp;&nbsp;
120
- <a href="#M000003">enableEffector</a>&nbsp;&nbsp;
121
- <a href="#M000006">findEffectors</a>&nbsp;&nbsp;
122
- <a href="#M000007">format</a>&nbsp;&nbsp;
118
+ <a href="#M000002">clearEffectorList</a>&nbsp;&nbsp;
119
+ <a href="#M000005">destroyEffector</a>&nbsp;&nbsp;
120
+ <a href="#M000006">disableEffector</a>&nbsp;&nbsp;
121
+ <a href="#M000004">enableEffector</a>&nbsp;&nbsp;
122
+ <a href="#M000007">findEffectors</a>&nbsp;&nbsp;
123
+ <a href="#M000008">format</a>&nbsp;&nbsp;
123
124
  <a href="#M000001">new</a>&nbsp;&nbsp;
124
- <a href="#M000002">registerEffector</a>&nbsp;&nbsp;
125
+ <a href="#M000003">registerEffector</a>&nbsp;&nbsp;
125
126
  </div>
126
127
  </div>
127
128
 
@@ -136,6 +137,24 @@ latter is not lost.
136
137
 
137
138
 
138
139
 
140
+ <div id="attribute-list">
141
+ <h3 class="section-bar">Attributes</h3>
142
+
143
+ <div class="name-list">
144
+ <table>
145
+ <tr class="top-aligned-row context-row">
146
+ <td class="context-item-name">safe</td>
147
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
148
+ <td class="context-item-desc">
149
+ Not yet implemented Controls whether the final string is built safely and
150
+ conservatively, or if the output of each effector can alter the input to
151
+ subsequent ones.
152
+
153
+ </td>
154
+ </tr>
155
+ </table>
156
+ </div>
157
+ </div>
139
158
 
140
159
 
141
160
 
@@ -143,22 +162,21 @@ latter is not lost.
143
162
  <div id="methods">
144
163
  <h3 class="section-bar">Public Class methods</h3>
145
164
 
146
- <div id="method-M000004" class="method-detail">
147
- <a name="M000004"></a>
165
+ <div id="method-M000002" class="method-detail">
166
+ <a name="M000002"></a>
148
167
 
149
168
  <div class="method-heading">
150
- <a href="FTO.src/M000004.html" target="Code" class="method-signature"
151
- onclick="popupCode('FTO.src/M000004.html');return false;">
152
- <span class="method-name">FTO.destroyEffector<i>(Fixnum)</i> => <i>nil</i><br />
169
+ <a href="FTO.src/M000002.html" target="Code" class="method-signature"
170
+ onclick="popupCode('FTO.src/M000002.html');return false;">
171
+ <span class="method-name">FTO.clearEffectorList<i>()</i> => <i>nil</i><br />
153
172
  </span>
154
173
  </a>
155
174
  </div>
156
175
 
157
176
  <div class="method-description">
158
177
  <p>
159
- Completely removes the effector with the specified ID from the <a
160
- href="FTO.html">FTO</a> system. &lt;strong&gt;THIS IS NOT
161
- REVERSIBLE!&lt;/strong&gt;
178
+ Clear all effectors from the list (as a prelude to using a different
179
+ syntax, for instance).
162
180
  </p>
163
181
  </div>
164
182
  </div>
@@ -169,6 +187,25 @@ REVERSIBLE!&lt;/strong&gt;
169
187
  <div class="method-heading">
170
188
  <a href="FTO.src/M000005.html" target="Code" class="method-signature"
171
189
  onclick="popupCode('FTO.src/M000005.html');return false;">
190
+ <span class="method-name">FTO.destroyEffector<i>(Fixnum)</i> => <i>nil</i><br />
191
+ </span>
192
+ </a>
193
+ </div>
194
+
195
+ <div class="method-description">
196
+ <p>
197
+ Completely removes the effector with the specified ID from the <a
198
+ href="FTO.html">FTO</a> system. <b>THIS IS NOT REVERSIBLE!</b>
199
+ </p>
200
+ </div>
201
+ </div>
202
+
203
+ <div id="method-M000006" class="method-detail">
204
+ <a name="M000006"></a>
205
+
206
+ <div class="method-heading">
207
+ <a href="FTO.src/M000006.html" target="Code" class="method-signature"
208
+ onclick="popupCode('FTO.src/M000006.html');return false;">
172
209
  <span class="method-name">FTO.disableEffector<i>(Fixnum)</i> => <i>nil</i><br />
173
210
  </span>
174
211
  </a>
@@ -177,18 +214,18 @@ REVERSIBLE!&lt;/strong&gt;
177
214
  <div class="method-description">
178
215
  <p>
179
216
  Disables the effector with the specified ID (such as from <em><a
180
- href="FTO.html#M000006">FTO.findEffectors</a>()</em>). This is a no-op if
217
+ href="FTO.html#M000007">FTO.findEffectors</a>()</em>). This is a no-op if
181
218
  the effector is already disabled.
182
219
  </p>
183
220
  </div>
184
221
  </div>
185
222
 
186
- <div id="method-M000003" class="method-detail">
187
- <a name="M000003"></a>
223
+ <div id="method-M000004" class="method-detail">
224
+ <a name="M000004"></a>
188
225
 
189
226
  <div class="method-heading">
190
- <a href="FTO.src/M000003.html" target="Code" class="method-signature"
191
- onclick="popupCode('FTO.src/M000003.html');return false;">
227
+ <a href="FTO.src/M000004.html" target="Code" class="method-signature"
228
+ onclick="popupCode('FTO.src/M000004.html');return false;">
192
229
  <span class="method-name">FTO.enableEffector<i>(Fixnum)</i> => <i>nil</i><br />
193
230
  </span>
194
231
  </a>
@@ -202,12 +239,12 @@ Enables the effector with the specified ID (found in the effector&#8216;s
202
239
  </div>
203
240
  </div>
204
241
 
205
- <div id="method-M000006" class="method-detail">
206
- <a name="M000006"></a>
242
+ <div id="method-M000007" class="method-detail">
243
+ <a name="M000007"></a>
207
244
 
208
245
  <div class="method-heading">
209
- <a href="FTO.src/M000006.html" target="Code" class="method-signature"
210
- onclick="popupCode('FTO.src/M000006.html');return false;">
246
+ <a href="FTO.src/M000007.html" target="Code" class="method-signature"
247
+ onclick="popupCode('FTO.src/M000007.html');return false;">
211
248
  <span class="method-name">FTO.findEffectors<i>(String)</i> => <i>Array</i><br />
212
249
  FTO.findEffectors<i>(Regexp)</i> => <i>Array</i><br />
213
250
  </span>
@@ -238,18 +275,18 @@ new<i>(String, arg [, ...])</i> => <i>FTO object</i><br />
238
275
  <div class="method-description">
239
276
  <p>
240
277
  Any argument list is supplied at object instantiation can be temporarily
241
- overridden when the <em><a href="FTO.html#M000007">FTO#format</a>()</em>
278
+ overridden when the <em><a href="FTO.html#M000008">FTO#format</a>()</em>
242
279
  method is invoked.
243
280
  </p>
244
281
  </div>
245
282
  </div>
246
283
 
247
- <div id="method-M000002" class="method-detail">
248
- <a name="M000002"></a>
284
+ <div id="method-M000003" class="method-detail">
285
+ <a name="M000003"></a>
249
286
 
250
287
  <div class="method-heading">
251
- <a href="FTO.src/M000002.html" target="Code" class="method-signature"
252
- onclick="popupCode('FTO.src/M000002.html');return false;">
288
+ <a href="FTO.src/M000003.html" target="Code" class="method-signature"
289
+ onclick="popupCode('FTO.src/M000003.html');return false;">
253
290
  <span class="method-name">FTO.registerEffector<i>(FormatText::Effector)</i> => <i>nil</i><br />
254
291
  FTO.registerEffector<i>({ :symattr => value [, ...] })</i> => <i>nil</i><br />
255
292
  </span>
@@ -259,19 +296,19 @@ FTO.registerEffector<i>({ :symattr => value [, ...] })</i> => <i>nil</i><br />
259
296
  <div class="method-description">
260
297
  <p>
261
298
  Add an effector description to the list of those which will be processed by
262
- the <em><a href="FTO.html#M000007">FTO#format</a>()</em> method.
299
+ the <em><a href="FTO.html#M000008">FTO#format</a>()</em> method.
263
300
  </p>
264
301
  </div>
265
302
  </div>
266
303
 
267
304
  <h3 class="section-bar">Public Instance methods</h3>
268
305
 
269
- <div id="method-M000007" class="method-detail">
270
- <a name="M000007"></a>
306
+ <div id="method-M000008" class="method-detail">
307
+ <a name="M000008"></a>
271
308
 
272
309
  <div class="method-heading">
273
- <a href="FTO.src/M000007.html" target="Code" class="method-signature"
274
- onclick="popupCode('FTO.src/M000007.html');return false;">
310
+ <a href="FTO.src/M000008.html" target="Code" class="method-signature"
311
+ onclick="popupCode('FTO.src/M000008.html');return false;">
275
312
  <span class="method-name">format<i>()</i> => <i>String</i><br />
276
313
  format<i>(arg [, ...])</i> => <i>String</i><br />
277
314
  format<i>(Array)</i> => <i>String</i><br />
@@ -283,7 +320,7 @@ format<i>(FormatText::Context)</i> => <i>String</i> (<u>internal use only</u>)<b
283
320
  <div class="method-description">
284
321
  <p>
285
322
  Process the formatting string, optionally with a runtime argument list. The
286
- argument list can either be a list of values, an array of values, or an
323
+ argument list can either be a list of values, an array of values, or a
287
324
  <em><a href="Context.html">FormatText::Context</a></em> object. (The latter
288
325
  is intended only for internal use with recursion.)
289
326
  </p>
@@ -10,9 +10,10 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 287</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 293</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">text</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
15
15
  <span class="ruby-constant">String_initialize</span>(<span class="ruby-identifier">text</span>)
16
+ <span class="ruby-ivar">@safe</span> = <span class="ruby-keyword kw">true</span>
16
17
  <span class="ruby-ivar">@args</span> = <span class="ruby-identifier">args</span>
17
18
  <span class="ruby-keyword kw">end</span></pre>
18
19
  </body>
@@ -5,28 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>registerEffector (FormatText::FTO)</title>
8
+ <title>clearEffectorList (FormatText::FTO)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 300</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">registerEffector</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
15
- <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/Effector$/</span>))
16
- <span class="ruby-identifier">newE</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
17
- <span class="ruby-keyword kw">else</span>
18
- <span class="ruby-identifier">newE</span> = <span class="ruby-constant">Effector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'placeholder'</span>)
19
- <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Hash</span>))
20
- <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>,<span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
21
- <span class="ruby-identifier">eval</span>(<span class="ruby-node">&quot;newE.#{key.to_s} = val&quot;</span>)
22
- <span class="ruby-keyword kw">end</span>
23
- <span class="ruby-keyword kw">else</span>
24
- <span class="ruby-identifier">newE</span> = <span class="ruby-constant">Effector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">args</span>)
25
- <span class="ruby-keyword kw">end</span>
26
- <span class="ruby-keyword kw">end</span>
27
- <span class="ruby-ivar">@@RegisteredEffectors</span>[<span class="ruby-identifier">newE</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">newE</span>
28
- <span class="ruby-identifier">key</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">'%06d-%s'</span>, <span class="ruby-identifier">newE</span>.<span class="ruby-identifier">priority</span>, <span class="ruby-identifier">newE</span>.<span class="ruby-identifier">name</span>)
29
- <span class="ruby-identifier">newE</span>.<span class="ruby-identifier">sortKey</span> = <span class="ruby-identifier">key</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 306</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clearEffectorList</span>()
15
+ <span class="ruby-ivar">@@RegisteredEffectors</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">id</span>,<span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">true</span> }
30
16
  <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">rebuildEffectorList</span>()
31
17
  <span class="ruby-keyword kw">nil</span>
32
18
  <span class="ruby-keyword kw">end</span></pre>
@@ -5,18 +5,30 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>enableEffector (FormatText::FTO)</title>
8
+ <title>registerEffector (FormatText::FTO)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 345</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">enableEffector</span>(<span class="ruby-identifier">id</span>)
15
- <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">e</span> = <span class="ruby-ivar">@@RegisteredEffectors</span>[<span class="ruby-identifier">id</span>]).<span class="ruby-identifier">nil?</span>)
16
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-identifier">_</span>(<span class="ruby-value str">'No such effector '</span>) <span class="ruby-operator">+</span> <span class="ruby-node">&quot;ID\##{id}&quot;</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 320</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">registerEffector</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
15
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/Effector$/</span>)))
16
+ <span class="ruby-identifier">newE</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
17
+ <span class="ruby-keyword kw">else</span>
18
+ <span class="ruby-identifier">newE</span> = <span class="ruby-constant">Effector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'placeholder'</span>)
19
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Hash</span>))
20
+ <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>,<span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
21
+ <span class="ruby-identifier">eval</span>(<span class="ruby-node">&quot;newE.#{key.to_s} = val&quot;</span>)
22
+ <span class="ruby-keyword kw">end</span>
23
+ <span class="ruby-keyword kw">else</span>
24
+ <span class="ruby-identifier">newE</span> = <span class="ruby-constant">Effector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">args</span>)
25
+ <span class="ruby-keyword kw">end</span>
17
26
  <span class="ruby-keyword kw">end</span>
18
- <span class="ruby-identifier">e</span>.<span class="ruby-identifier">enabled</span> = <span class="ruby-keyword kw">true</span>
27
+ <span class="ruby-identifier">key</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">'%06d-%s'</span>, <span class="ruby-identifier">newE</span>.<span class="ruby-identifier">priority</span>, <span class="ruby-identifier">newE</span>.<span class="ruby-identifier">name</span>)
28
+ <span class="ruby-identifier">newE</span>.<span class="ruby-identifier">sortKey</span> = <span class="ruby-identifier">key</span>
29
+ <span class="ruby-ivar">@@RegisteredEffectors</span>[<span class="ruby-identifier">newE</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">newE</span>
19
30
  <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">rebuildEffectorList</span>()
31
+ <span class="ruby-keyword kw">nil</span>
20
32
  <span class="ruby-keyword kw">end</span></pre>
21
33
  </body>
22
34
  </html>
@@ -5,14 +5,17 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>destroyEffector (FormatText::FTO)</title>
8
+ <title>enableEffector (FormatText::FTO)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 360</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">destroyEffector</span>(<span class="ruby-identifier">id</span>)
15
- <span class="ruby-ivar">@@RegisteredEffectors</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">id</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 369</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">enableEffector</span>(<span class="ruby-identifier">id</span>)
15
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">e</span> = <span class="ruby-ivar">@@RegisteredEffectors</span>[<span class="ruby-identifier">id</span>]).<span class="ruby-identifier">nil?</span>)
16
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-identifier">_</span>(<span class="ruby-value str">'No such effector '</span>) <span class="ruby-operator">+</span> <span class="ruby-node">&quot;ID\##{id}&quot;</span>
17
+ <span class="ruby-keyword kw">end</span>
18
+ <span class="ruby-identifier">e</span>.<span class="ruby-identifier">enabled</span> = <span class="ruby-keyword kw">true</span>
16
19
  <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">rebuildEffectorList</span>()
17
20
  <span class="ruby-keyword kw">end</span></pre>
18
21
  </body>
@@ -5,18 +5,15 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>disableEffector (FormatText::FTO)</title>
8
+ <title>destroyEffector (FormatText::FTO)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 373</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">disableEffector</span>(<span class="ruby-identifier">id</span>)
15
- <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">e</span> = <span class="ruby-ivar">@@RegisteredEffectors</span>[<span class="ruby-identifier">id</span>]).<span class="ruby-identifier">nil?</span>)
16
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-identifier">_</span>(<span class="ruby-value str">'No such effector '</span>) <span class="ruby-operator">+</span> <span class="ruby-node">&quot;ID\##{id}&quot;</span>
17
- <span class="ruby-keyword kw">end</span>
18
- <span class="ruby-identifier">e</span>.<span class="ruby-identifier">disable</span>
19
- <span class="ruby-keyword kw">nil</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 384</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">destroyEffector</span>(<span class="ruby-identifier">id</span>)
15
+ <span class="ruby-ivar">@@RegisteredEffectors</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">id</span>)
16
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">rebuildEffectorList</span>()
20
17
  <span class="ruby-keyword kw">end</span></pre>
21
18
  </body>
22
19
  </html>
@@ -5,16 +5,18 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>findEffectors (FormatText::FTO)</title>
8
+ <title>disableEffector (FormatText::FTO)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 389</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">findEffectors</span>(<span class="ruby-identifier">pattern</span>)
15
- <span class="ruby-identifier">pattern</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">pattern</span>) <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Regexp</span>)
16
- <span class="ruby-identifier">matches</span> = <span class="ruby-ivar">@@RegisteredEffectors</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">id</span>,<span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">pattern</span>) }
17
- <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">id</span>,<span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span> }
13
+ <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 397</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">disableEffector</span>(<span class="ruby-identifier">id</span>)
15
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">e</span> = <span class="ruby-ivar">@@RegisteredEffectors</span>[<span class="ruby-identifier">id</span>]).<span class="ruby-identifier">nil?</span>)
16
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-identifier">_</span>(<span class="ruby-value str">'No such effector '</span>) <span class="ruby-operator">+</span> <span class="ruby-node">&quot;ID\##{id}&quot;</span>
17
+ <span class="ruby-keyword kw">end</span>
18
+ <span class="ruby-identifier">e</span>.<span class="ruby-identifier">disable</span>
19
+ <span class="ruby-keyword kw">nil</span>
18
20
  <span class="ruby-keyword kw">end</span></pre>
19
21
  </body>
20
22
  </html>
@@ -5,59 +5,16 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>format (FormatText::FTO)</title>
8
+ <title>findEffectors (FormatText::FTO)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 408</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">format</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">argListp</span>)
15
- <span class="ruby-identifier">argList</span> = <span class="ruby-identifier">argListp</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-ivar">@args</span>.<span class="ruby-identifier">clone</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">argListp</span>
16
- <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">argList</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">argList</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Array</span>)) <span class="ruby-operator">&amp;&amp;</span>
17
- <span class="ruby-identifier">argList</span> = <span class="ruby-identifier">argList</span>[<span class="ruby-value">0</span>]
18
- <span class="ruby-keyword kw">end</span>
19
- <span class="ruby-comment cmt">#</span>
20
- <span class="ruby-comment cmt"># It's possible we were passed a Context object so we can</span>
21
- <span class="ruby-comment cmt"># recurse. If so, use its values for some of these.</span>
22
- <span class="ruby-comment cmt">#</span>
23
- <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">argList</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">argList</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">FormatText</span><span class="ruby-operator">::</span><span class="ruby-constant">Context</span>))
24
- <span class="ruby-identifier">eContext</span> = <span class="ruby-identifier">argList</span>[<span class="ruby-value">0</span>]
25
- <span class="ruby-identifier">usedArgs</span> = <span class="ruby-identifier">eContext</span>.<span class="ruby-identifier">usedArgs</span>
26
- <span class="ruby-identifier">argList</span> = <span class="ruby-identifier">eContext</span>.<span class="ruby-identifier">argList</span>
27
- <span class="ruby-keyword kw">else</span>
28
- <span class="ruby-identifier">usedArgs</span> = []
29
- <span class="ruby-identifier">eContext</span> = <span class="ruby-constant">Context</span>.<span class="ruby-identifier">new</span>({
30
- <span class="ruby-identifier">:ftoObj</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>,
31
- <span class="ruby-identifier">:usedArgs</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">usedArgs</span>,
32
- <span class="ruby-identifier">:argList</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">argList</span>
33
- })
34
- <span class="ruby-keyword kw">end</span>
35
- <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>
36
- <span class="ruby-identifier">effector</span> = <span class="ruby-identifier">sMatched</span> = <span class="ruby-keyword kw">nil</span>
37
- <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">m</span> = <span class="ruby-identifier">result</span>.<span class="ruby-identifier">match</span>(<span class="ruby-ivar">@@regex</span>))
38
- <span class="ruby-comment cmt">#</span>
39
- <span class="ruby-comment cmt"># Find out which effector was matched. The index in .captures</span>
40
- <span class="ruby-comment cmt"># will be the same as the index in @effectors.</span>
41
- <span class="ruby-comment cmt">#</span>
42
- <span class="ruby-identifier">m</span>.<span class="ruby-identifier">captures</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
43
- <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">m</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">nil?</span>)
44
- <span class="ruby-identifier">eContext</span>.<span class="ruby-identifier">effectorObj</span> = <span class="ruby-identifier">effector</span> = <span class="ruby-ivar">@@EnabledEffectors</span>[<span class="ruby-ivar">@@EffectorKeys</span>[<span class="ruby-identifier">i</span>]]
45
- <span class="ruby-identifier">eContext</span>.<span class="ruby-identifier">sMatched</span> = <span class="ruby-identifier">sMatched</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-identifier">i</span>]
46
- <span class="ruby-identifier">eContext</span>.<span class="ruby-identifier">reuseArg</span> = <span class="ruby-keyword kw">false</span>
47
- <span class="ruby-keyword kw">break</span>
48
- <span class="ruby-keyword kw">end</span>
49
- <span class="ruby-comment cmt">#</span>
50
- <span class="ruby-comment cmt"># Call the workhorse for this descriptor</span>
51
- <span class="ruby-comment cmt">#</span>
52
- <span class="ruby-identifier">replacement</span> = <span class="ruby-identifier">effector</span>.<span class="ruby-identifier">code</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">eContext</span>)
53
- <span class="ruby-identifier">result</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-identifier">sMatched</span>, <span class="ruby-identifier">replacement</span>)
54
- <span class="ruby-comment cmt">#</span>
55
- <span class="ruby-comment cmt"># Mark the item at the front of the argument list as having</span>
56
- <span class="ruby-comment cmt"># been used, if the effector agrees.</span>
57
- <span class="ruby-comment cmt">#</span>
58
- <span class="ruby-identifier">usedArgs</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">argList</span>.<span class="ruby-identifier">shift</span>) <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">eContext</span>.<span class="ruby-identifier">reuseArg</span>)
59
- <span class="ruby-keyword kw">end</span>
60
- <span class="ruby-identifier">result</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 413</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">findEffectors</span>(<span class="ruby-identifier">pattern</span>)
15
+ <span class="ruby-identifier">pattern</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">pattern</span>) <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Regexp</span>)
16
+ <span class="ruby-identifier">matches</span> = <span class="ruby-ivar">@@RegisteredEffectors</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">id</span>,<span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">pattern</span>) }
17
+ <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">id</span>,<span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span> }
61
18
  <span class="ruby-keyword kw">end</span></pre>
62
19
  </body>
63
20
  </html>
@@ -10,15 +10,15 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 387</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/fto.rb, line 432</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">format</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">argListp</span>)
15
15
  <span class="ruby-identifier">argList</span> = <span class="ruby-identifier">argListp</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-ivar">@args</span>.<span class="ruby-identifier">clone</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">argListp</span>
16
16
  <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">argList</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">argList</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Array</span>)) <span class="ruby-operator">&amp;&amp;</span>
17
17
  <span class="ruby-identifier">argList</span> = <span class="ruby-identifier">argList</span>[<span class="ruby-value">0</span>]
18
18
  <span class="ruby-keyword kw">end</span>
19
19
  <span class="ruby-comment cmt">#</span>
20
- <span class="ruby-comment cmt"># It's possible we were passed a Context object so we can recurse.</span>
21
- <span class="ruby-comment cmt"># If so, use its values for some of these.</span>
20
+ <span class="ruby-comment cmt"># It's possible we were passed a Context object so we can</span>
21
+ <span class="ruby-comment cmt"># recurse. If so, use its values for some of these.</span>
22
22
  <span class="ruby-comment cmt">#</span>
23
23
  <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">argList</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">argList</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">FormatText</span><span class="ruby-operator">::</span><span class="ruby-constant">Context</span>))
24
24
  <span class="ruby-identifier">eContext</span> = <span class="ruby-identifier">argList</span>[<span class="ruby-value">0</span>]
@@ -32,9 +32,10 @@
32
32
  <span class="ruby-identifier">:argList</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">argList</span>
33
33
  })
34
34
  <span class="ruby-keyword kw">end</span>
35
- <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>
35
+ <span class="ruby-identifier">input</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>
36
+ <span class="ruby-identifier">output</span> = <span class="ruby-identifier">input</span>.<span class="ruby-identifier">clone</span>
36
37
  <span class="ruby-identifier">effector</span> = <span class="ruby-identifier">sMatched</span> = <span class="ruby-keyword kw">nil</span>
37
- <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">m</span> = <span class="ruby-identifier">result</span>.<span class="ruby-identifier">match</span>(<span class="ruby-ivar">@@regex</span>))
38
+ <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">m</span> = <span class="ruby-identifier">input</span>.<span class="ruby-identifier">match</span>(<span class="ruby-ivar">@@regex</span>))
38
39
  <span class="ruby-comment cmt">#</span>
39
40
  <span class="ruby-comment cmt"># Find out which effector was matched. The index in .captures</span>
40
41
  <span class="ruby-comment cmt"># will be the same as the index in @effectors.</span>
@@ -50,14 +51,21 @@
50
51
  <span class="ruby-comment cmt"># Call the workhorse for this descriptor</span>
51
52
  <span class="ruby-comment cmt">#</span>
52
53
  <span class="ruby-identifier">replacement</span> = <span class="ruby-identifier">effector</span>.<span class="ruby-identifier">code</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">eContext</span>)
53
- <span class="ruby-identifier">result</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-identifier">sMatched</span>, <span class="ruby-identifier">replacement</span>)
54
+ <span class="ruby-identifier">output</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-identifier">sMatched</span>, <span class="ruby-identifier">replacement</span>)
55
+ <span class="ruby-identifier">input</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-identifier">sMatched</span>, <span class="ruby-value str">''</span>)
54
56
  <span class="ruby-comment cmt">#</span>
55
57
  <span class="ruby-comment cmt"># Mark the item at the front of the argument list as having</span>
56
- <span class="ruby-comment cmt"># been used, if the effector agrees.</span>
58
+ <span class="ruby-comment cmt"># been used, if the effector agrees. Assume that an argument</span>
59
+ <span class="ruby-comment cmt"># was actually used if we're moving it, and that the 'last</span>
60
+ <span class="ruby-comment cmt"># argument used' hasn't changed if the effector has set</span>
61
+ <span class="ruby-comment cmt"># _reuseArg_.</span>
57
62
  <span class="ruby-comment cmt">#</span>
58
- <span class="ruby-identifier">usedArgs</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">argList</span>.<span class="ruby-identifier">shift</span>) <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">eContext</span>.<span class="ruby-identifier">reuseArg</span>)
63
+ <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">eContext</span>.<span class="ruby-identifier">reuseArg</span>)
64
+ <span class="ruby-identifier">usedArgs</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">argList</span>.<span class="ruby-identifier">shift</span>)
65
+ <span class="ruby-identifier">eContext</span>.<span class="ruby-identifier">lastArgUsed</span> = <span class="ruby-identifier">usedArgs</span>.<span class="ruby-identifier">last</span>
66
+ <span class="ruby-keyword kw">end</span>
59
67
  <span class="ruby-keyword kw">end</span>
60
- <span class="ruby-identifier">result</span>
68
+ <span class="ruby-identifier">output</span>
61
69
  <span class="ruby-keyword kw">end</span></pre>
62
70
  </body>
63
71
  </html>