bauxite 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/doc/Bauxite/Action.html +1 -1
- data/doc/Bauxite/ActionModule.html +17 -4
- data/doc/Bauxite/Application.html +1 -1
- data/doc/Bauxite/Context.html +34 -26
- data/doc/Bauxite/Errors/AssertionError.html +1 -1
- data/doc/Bauxite/Errors/FileNotFoundError.html +1 -1
- data/doc/Bauxite/Errors/FormatError.html +1 -1
- data/doc/Bauxite/Errors.html +1 -1
- data/doc/Bauxite/Loggers/CompositeLogger.html +40 -7
- data/doc/Bauxite/Loggers/EchoLogger.html +1 -1
- data/doc/Bauxite/Loggers/FileLogger.html +1 -1
- data/doc/Bauxite/Loggers/HtmlLogger.html +392 -0
- data/doc/Bauxite/Loggers/NullLogger.html +35 -1
- data/doc/Bauxite/Loggers/TerminalLogger.html +1 -1
- data/doc/Bauxite/Loggers/XtermLogger.html +1 -1
- data/doc/Bauxite/Loggers.html +1 -1
- data/doc/Bauxite/Parser.html +1 -1
- data/doc/Bauxite/ParserModule.html +1 -1
- data/doc/Bauxite/Selector.html +1 -1
- data/doc/Bauxite/SelectorModule.html +1 -1
- data/doc/Bauxite.html +1 -1
- data/doc/README_md.html +1 -1
- data/doc/created.rid +51 -50
- data/doc/index.html +3 -1
- data/doc/js/jquery.js +4 -18
- data/doc/js/search_index.js +1 -1
- data/doc/table_of_contents.html +72 -39
- data/lib/bauxite/core/action.rb +3 -0
- data/lib/bauxite/core/context.rb +10 -2
- data/lib/bauxite/core/logger.rb +5 -0
- data/lib/bauxite/loggers/composite.rb +15 -3
- data/lib/bauxite/loggers/html.rb +174 -0
- data/lib/bauxite.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3a1591aac966a495afa7d0f0e99c9da6acf1167
|
4
|
+
data.tar.gz: ee26ad58729542f642028acb5a2cf5b36906394e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 448ba6696fc46fac6307f20115ee29ee84a498be698392a0cbdf13ee78fbac62f81b4315390a34499bddaba9e3c72264b8ed45cf2fc773594370e563df1f397e
|
7
|
+
data.tar.gz: da6703e5174fafa1e31002d96dad14d7f467ffd2cb43d498eb85ae2cd3620bcdb6ab3df53bef5d3b9ea14b1a0169a74255ea2a13ad82f4392d9f307b99e56b5d
|
data/Rakefile
CHANGED
data/doc/Bauxite/Action.html
CHANGED
@@ -1806,7 +1806,7 @@ href="Context.html#method-i-expand">Bauxite::Context#expand</a>).</p>
|
|
1806
1806
|
|
1807
1807
|
<footer id="validator-badges" role="contentinfo">
|
1808
1808
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
1809
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
1809
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
1810
1810
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
1811
1811
|
</footer>
|
1812
1812
|
|
@@ -119,6 +119,19 @@
|
|
119
119
|
</div>
|
120
120
|
</div>
|
121
121
|
|
122
|
+
<div id="attribute-i-ctx" class="method-detail">
|
123
|
+
<div class="method-heading attribute-method-heading">
|
124
|
+
<span class="method-name">ctx</span><span
|
125
|
+
class="attribute-access-type">[R]</span>
|
126
|
+
</div>
|
127
|
+
|
128
|
+
<div class="method-description">
|
129
|
+
|
130
|
+
<p>Test context</p>
|
131
|
+
|
132
|
+
</div>
|
133
|
+
</div>
|
134
|
+
|
122
135
|
<div id="attribute-i-text" class="method-detail">
|
123
136
|
<div class="method-heading attribute-method-heading">
|
124
137
|
<span class="method-name">text</span><span
|
@@ -161,7 +174,7 @@
|
|
161
174
|
|
162
175
|
|
163
176
|
<div class="method-source-code" id="new-source">
|
164
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/action.rb, line
|
177
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/action.rb, line 36</span>
|
165
178
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">ctx</span>, <span class="ruby-identifier">cmd</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span>)
|
166
179
|
<span class="ruby-ivar">@ctx</span> = <span class="ruby-identifier">ctx</span>
|
167
180
|
<span class="ruby-ivar">@cmd</span> = <span class="ruby-identifier">cmd</span>
|
@@ -231,7 +244,7 @@ quote characters (“) and every quote inside an argument is doubled.</p>
|
|
231
244
|
|
232
245
|
|
233
246
|
<div class="method-source-code" id="args-source">
|
234
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/action.rb, line
|
247
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/action.rb, line 69</span>
|
235
248
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">args</span>(<span class="ruby-identifier">quote</span> = <span class="ruby-keyword">false</span>)
|
236
249
|
<span class="ruby-identifier">ret</span> = <span class="ruby-ivar">@args</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">expand</span>(<span class="ruby-identifier">a</span>) }
|
237
250
|
<span class="ruby-identifier">ret</span> = <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-string">'"'</span><span class="ruby-operator">+</span><span class="ruby-identifier">a</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">'"'</span>, <span class="ruby-string">'""'</span>)<span class="ruby-operator">+</span><span class="ruby-string">'"'</span> } <span class="ruby-keyword">if</span> <span class="ruby-identifier">quote</span>
|
@@ -285,7 +298,7 @@ might yield different results.</p>
|
|
285
298
|
|
286
299
|
|
287
300
|
<div class="method-source-code" id="execute-source">
|
288
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/action.rb, line
|
301
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/action.rb, line 91</span>
|
289
302
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">execute</span>()
|
290
303
|
<span class="ruby-identifier">send</span>(<span class="ruby-ivar">@cmd_real</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
291
304
|
<span class="ruby-keyword">end</span></pre>
|
@@ -307,7 +320,7 @@ might yield different results.</p>
|
|
307
320
|
|
308
321
|
<footer id="validator-badges" role="contentinfo">
|
309
322
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
310
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
323
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
311
324
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
312
325
|
</footer>
|
313
326
|
|
@@ -253,7 +253,7 @@ indicates success).</p>
|
|
253
253
|
|
254
254
|
<footer id="validator-badges" role="contentinfo">
|
255
255
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
256
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
256
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
257
257
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
258
258
|
</footer>
|
259
259
|
|
data/doc/Bauxite/Context.html
CHANGED
@@ -480,7 +480,7 @@ href="Context.html#method-i-stop">stop</a> (defaults to <code>false</code>)</p>
|
|
480
480
|
|
481
481
|
|
482
482
|
<div class="method-source-code" id="debug-source">
|
483
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
483
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 266</span>
|
484
484
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">debug</span>
|
485
485
|
<span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-string">'debug'</span>, [], <span class="ruby-keyword">false</span>)
|
486
486
|
<span class="ruby-keyword">end</span></pre>
|
@@ -537,7 +537,7 @@ applies if no <code>block</code> was given).</p>
|
|
537
537
|
|
538
538
|
|
539
539
|
<div class="method-source-code" id="find-source">
|
540
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
540
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 255</span>
|
541
541
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>) <span class="ruby-comment"># yields: element</span>
|
542
542
|
<span class="ruby-identifier">with_timeout</span> <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">NoSuchElementError</span> <span class="ruby-keyword">do</span>
|
543
543
|
<span class="ruby-constant">Selector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-ivar">@variables</span>[<span class="ruby-string">'__SELECTOR__'</span>]).<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
@@ -587,7 +587,7 @@ the inner text or the value of the <code>value</code> attribute.</p>
|
|
587
587
|
|
588
588
|
|
589
589
|
<div class="method-source-code" id="get_value-source">
|
590
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
590
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 285</span>
|
591
591
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">element</span>)
|
592
592
|
<span class="ruby-keyword">if</span> [<span class="ruby-string">'input'</span>,<span class="ruby-string">'select'</span>,<span class="ruby-string">'textarea'</span>].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">tag_name</span>.<span class="ruby-identifier">downcase</span>
|
593
593
|
<span class="ruby-identifier">element</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-string">'value'</span>)
|
@@ -747,7 +747,14 @@ href="Context.html#method-i-stop">stop</a> pattern.</p>
|
|
747
747
|
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 223</span>
|
748
748
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">stop</span>
|
749
749
|
<span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">wait</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:wait</span>]
|
750
|
-
<span class="ruby-
|
750
|
+
<span class="ruby-keyword">begin</span>
|
751
|
+
<span class="ruby-ivar">@logger</span>.<span class="ruby-identifier">finalize</span>(<span class="ruby-keyword">self</span>)
|
752
|
+
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
753
|
+
<span class="ruby-identifier">print_error</span>(<span class="ruby-identifier">e</span>)
|
754
|
+
<span class="ruby-identifier">raise</span>
|
755
|
+
<span class="ruby-keyword">ensure</span>
|
756
|
+
<span class="ruby-ivar">@driver</span>.<span class="ruby-identifier">quit</span>
|
757
|
+
<span class="ruby-keyword">end</span>
|
751
758
|
<span class="ruby-keyword">end</span></pre>
|
752
759
|
</div>
|
753
760
|
|
@@ -810,7 +817,7 @@ logger type.</p>
|
|
810
817
|
|
811
818
|
|
812
819
|
<div class="method-source-code" id="load_logger-source">
|
813
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
820
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 423</span>
|
814
821
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">load_logger</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span>)
|
815
822
|
<span class="ruby-identifier">log_name</span> = (<span class="ruby-identifier">name</span> <span class="ruby-operator">||</span> <span class="ruby-string">'null'</span>).<span class="ruby-identifier">downcase</span>
|
816
823
|
|
@@ -852,7 +859,7 @@ logger type.</p>
|
|
852
859
|
|
853
860
|
|
854
861
|
<div class="method-source-code" id="parse_action_default-source">
|
855
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
862
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 445</span>
|
856
863
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">parse_action_default</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">file</span> = <span class="ruby-string">'<unknown>'</span>, <span class="ruby-identifier">line</span> = <span class="ruby-value">0</span>)
|
857
864
|
<span class="ruby-identifier">data</span> = <span class="ruby-identifier">text</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">' '</span>, <span class="ruby-value">2</span>)
|
858
865
|
<span class="ruby-keyword">begin</span>
|
@@ -920,7 +927,7 @@ logger type.</p>
|
|
920
927
|
|
921
928
|
|
922
929
|
<div class="method-source-code" id="wait-source">
|
923
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
930
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 416</span>
|
924
931
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">wait</span>
|
925
932
|
<span class="ruby-constant">Readline</span>.<span class="ruby-identifier">readline</span>(<span class="ruby-string">"Press ENTER to continue\n"</span>)
|
926
933
|
<span class="ruby-keyword">end</span></pre>
|
@@ -962,7 +969,7 @@ with the arguments specified in <code>args</code>.</p>
|
|
962
969
|
|
963
970
|
|
964
971
|
<div class="method-source-code" id="add_alias-source">
|
965
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
972
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 439</span>
|
966
973
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">add_alias</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>)
|
967
974
|
<span class="ruby-ivar">@aliases</span>[<span class="ruby-identifier">name</span>] = { <span class="ruby-value">:action</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">action</span>, <span class="ruby-value">:args</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span> }
|
968
975
|
<span class="ruby-keyword">end</span></pre>
|
@@ -1005,7 +1012,7 @@ behavior).</p>
|
|
1005
1012
|
|
1006
1013
|
|
1007
1014
|
<div class="method-source-code" id="exec_action-source">
|
1008
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1015
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 306</span>
|
1009
1016
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_action</span>(<span class="ruby-identifier">text</span>)
|
1010
1017
|
<span class="ruby-identifier">data</span> = <span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">parse_action_default</span>(<span class="ruby-identifier">text</span>, <span class="ruby-string">'<unknown>'</span>, <span class="ruby-value">0</span>)
|
1011
1018
|
<span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-identifier">data</span>[<span class="ruby-value">:action</span>], <span class="ruby-identifier">data</span>[<span class="ruby-value">:args</span>], <span class="ruby-keyword">true</span>, <span class="ruby-identifier">text</span>)
|
@@ -1053,7 +1060,7 @@ ret.call if ret.respond_to? :call</pre>
|
|
1053
1060
|
|
1054
1061
|
|
1055
1062
|
<div class="method-source-code" id="exec_action_object-source">
|
1056
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1063
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 525</span>
|
1057
1064
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_action_object</span>(<span class="ruby-identifier">action</span>)
|
1058
1065
|
<span class="ruby-identifier">action</span>.<span class="ruby-identifier">execute</span>
|
1059
1066
|
<span class="ruby-keyword">end</span></pre>
|
@@ -1092,7 +1099,7 @@ ret.call if ret.respond_to? :call</pre>
|
|
1092
1099
|
|
1093
1100
|
|
1094
1101
|
<div class="method-source-code" id="exec_file-source">
|
1095
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1102
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 317</span>
|
1096
1103
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_file</span>(<span class="ruby-identifier">file</span>)
|
1097
1104
|
<span class="ruby-identifier">current_dir</span> = <span class="ruby-ivar">@variables</span>[<span class="ruby-string">'__DIR__'</span> ]
|
1098
1105
|
<span class="ruby-identifier">current_file</span> = <span class="ruby-ivar">@variables</span>[<span class="ruby-string">'__FILE__'</span>]
|
@@ -1153,7 +1160,7 @@ preferred.</p>
|
|
1153
1160
|
|
1154
1161
|
|
1155
1162
|
<div class="method-source-code" id="exec_parsed_action-source">
|
1156
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1163
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 347</span>
|
1157
1164
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">log</span> = <span class="ruby-keyword">true</span>, <span class="ruby-identifier">text</span> = <span class="ruby-keyword">nil</span>)
|
1158
1165
|
<span class="ruby-identifier">action</span> = <span class="ruby-identifier">get_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>)
|
1159
1166
|
<span class="ruby-identifier">ret</span> = <span class="ruby-keyword">nil</span>
|
@@ -1204,7 +1211,7 @@ preferred.</p>
|
|
1204
1211
|
|
1205
1212
|
|
1206
1213
|
<div class="method-source-code" id="get_action-source">
|
1207
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1214
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 485</span>
|
1208
1215
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">get_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span> = <span class="ruby-keyword">nil</span>)
|
1209
1216
|
<span class="ruby-keyword">while</span> (<span class="ruby-identifier">alias_action</span> = <span class="ruby-ivar">@aliases</span>[<span class="ruby-identifier">action</span>])
|
1210
1217
|
<span class="ruby-identifier">action</span> = <span class="ruby-identifier">alias_action</span>[<span class="ruby-value">:action</span>]
|
@@ -1271,7 +1278,7 @@ handling the verbose option.</p>
|
|
1271
1278
|
|
1272
1279
|
|
1273
1280
|
<div class="method-source-code" id="print_error-source">
|
1274
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1281
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 540</span>
|
1275
1282
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">print_error</span>(<span class="ruby-identifier">e</span>, <span class="ruby-identifier">capture</span> = <span class="ruby-keyword">true</span>)
|
1276
1283
|
<span class="ruby-keyword">if</span> <span class="ruby-ivar">@logger</span>
|
1277
1284
|
<span class="ruby-ivar">@logger</span>.<span class="ruby-identifier">log</span> <span class="ruby-node">"#{e.message}\n"</span>, <span class="ruby-value">:error</span>
|
@@ -1284,7 +1291,8 @@ handling the verbose option.</p>
|
|
1284
1291
|
<span class="ruby-keyword">end</span>
|
1285
1292
|
<span class="ruby-keyword">if</span> <span class="ruby-identifier">capture</span> <span class="ruby-keyword">and</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:capture</span>]
|
1286
1293
|
<span class="ruby-identifier">with_vars</span>(<span class="ruby-identifier">e</span>.<span class="ruby-identifier">variables</span>) <span class="ruby-keyword">do</span>
|
1287
|
-
<span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-string">'capture'</span>, [] , <span class="ruby-keyword">false</span>)
|
1294
|
+
<span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-string">'capture'</span>, [] , <span class="ruby-keyword">false</span>)
|
1295
|
+
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">'__CAPTURE__'</span>] = <span class="ruby-ivar">@variables</span>[<span class="ruby-string">'__CAPTURE__'</span>]
|
1288
1296
|
<span class="ruby-keyword">end</span>
|
1289
1297
|
<span class="ruby-keyword">end</span>
|
1290
1298
|
<span class="ruby-keyword">end</span></pre>
|
@@ -1330,7 +1338,7 @@ available <a href="Selector.html">Selector</a> strategies).</p>
|
|
1330
1338
|
|
1331
1339
|
|
1332
1340
|
<div class="method-source-code" id="with_driver_timeout-source">
|
1333
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1341
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 401</span>
|
1334
1342
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">with_driver_timeout</span>(<span class="ruby-identifier">timeout</span>)
|
1335
1343
|
<span class="ruby-identifier">current</span> = <span class="ruby-ivar">@driver_timeout</span>
|
1336
1344
|
<span class="ruby-ivar">@driver</span>.<span class="ruby-identifier">manage</span>.<span class="ruby-identifier">timeouts</span>.<span class="ruby-identifier">implicit_wait</span> = <span class="ruby-identifier">timeout</span>
|
@@ -1379,7 +1387,7 @@ to execute the block itself.</p>
|
|
1379
1387
|
|
1380
1388
|
|
1381
1389
|
<div class="method-source-code" id="with_timeout-source">
|
1382
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1390
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 373</span>
|
1383
1391
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">with_timeout</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">error_types</span>)
|
1384
1392
|
<span class="ruby-identifier">stime</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>
|
1385
1393
|
<span class="ruby-identifier">timeout</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">stime</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@variables</span>[<span class="ruby-string">'__TIMEOUT__'</span>]
|
@@ -1460,7 +1468,7 @@ to execute the block itself.</p>
|
|
1460
1468
|
|
1461
1469
|
|
1462
1470
|
<div class="method-source-code" id="action_args-source">
|
1463
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1471
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 578</span>
|
1464
1472
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">action_args</span>(<span class="ruby-identifier">action</span>)
|
1465
1473
|
<span class="ruby-identifier">action</span> <span class="ruby-operator">+=</span> <span class="ruby-string">'_action'</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">_action_methods</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">action</span>
|
1466
1474
|
<span class="ruby-constant">Action</span>.<span class="ruby-identifier">public_instance_method</span>(<span class="ruby-identifier">action</span>).<span class="ruby-identifier">parameters</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">att</span>, <span class="ruby-identifier">name</span><span class="ruby-operator">|</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span> }
|
@@ -1500,7 +1508,7 @@ to execute the block itself.</p>
|
|
1500
1508
|
|
1501
1509
|
|
1502
1510
|
<div class="method-source-code" id="actions-source">
|
1503
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1511
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 568</span>
|
1504
1512
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">actions</span>
|
1505
1513
|
<span class="ruby-identifier">_action_methods</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/_action$/</span>, <span class="ruby-string">''</span>) }
|
1506
1514
|
<span class="ruby-keyword">end</span></pre>
|
@@ -1539,7 +1547,7 @@ to execute the block itself.</p>
|
|
1539
1547
|
|
1540
1548
|
|
1541
1549
|
<div class="method-source-code" id="loggers-source">
|
1542
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1550
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 607</span>
|
1543
1551
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">loggers</span>
|
1544
1552
|
<span class="ruby-constant">Loggers</span>.<span class="ruby-identifier">constants</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/logger$/</span>, <span class="ruby-string">''</span>) }
|
1545
1553
|
<span class="ruby-keyword">end</span></pre>
|
@@ -1581,7 +1589,7 @@ to execute the block itself.</p>
|
|
1581
1589
|
|
1582
1590
|
|
1583
1591
|
<div class="method-source-code" id="max_action_name_size-source">
|
1584
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1592
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 631</span>
|
1585
1593
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">max_action_name_size</span>
|
1586
1594
|
<span class="ruby-identifier">actions</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span>,<span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-identifier">s</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">s</span> }
|
1587
1595
|
<span class="ruby-keyword">end</span></pre>
|
@@ -1620,7 +1628,7 @@ to execute the block itself.</p>
|
|
1620
1628
|
|
1621
1629
|
|
1622
1630
|
<div class="method-source-code" id="parsers-source">
|
1623
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1631
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 617</span>
|
1624
1632
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">parsers</span>
|
1625
1633
|
(<span class="ruby-constant">Parser</span>.<span class="ruby-identifier">public_instance_methods</span>(<span class="ruby-keyword">false</span>) <span class="ruby-operator">-</span> <span class="ruby-constant">ParserModule</span>.<span class="ruby-identifier">public_instance_methods</span>(<span class="ruby-keyword">false</span>))
|
1626
1634
|
.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">to_s</span> }
|
@@ -1664,7 +1672,7 @@ custom selectors are returned.</p>
|
|
1664
1672
|
|
1665
1673
|
|
1666
1674
|
<div class="method-source-code" id="selectors-source">
|
1667
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1675
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 593</span>
|
1668
1676
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">selectors</span>(<span class="ruby-identifier">include_standard_selectors</span> = <span class="ruby-keyword">true</span>)
|
1669
1677
|
<span class="ruby-identifier">ret</span> = <span class="ruby-constant">Selector</span>.<span class="ruby-identifier">public_instance_methods</span>(<span class="ruby-keyword">false</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/_selector$/</span>, <span class="ruby-string">''</span>) }
|
1670
1678
|
<span class="ruby-keyword">if</span> <span class="ruby-identifier">include_standard_selectors</span>
|
@@ -1746,7 +1754,7 @@ with the corresponding variable value.</p>
|
|
1746
1754
|
|
1747
1755
|
|
1748
1756
|
<div class="method-source-code" id="expand-source">
|
1749
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1757
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 652</span>
|
1750
1758
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">expand</span>(<span class="ruby-identifier">s</span>)
|
1751
1759
|
<span class="ruby-identifier">result</span> = <span class="ruby-ivar">@variables</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-identifier">s</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span>,<span class="ruby-identifier">kv</span><span class="ruby-operator">|</span>
|
1752
1760
|
<span class="ruby-identifier">s</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-node">/\$\{#{kv[0]}\}/</span>, <span class="ruby-identifier">kv</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">to_s</span>)
|
@@ -1799,7 +1807,7 @@ variables is restored.</p>
|
|
1799
1807
|
|
1800
1808
|
|
1801
1809
|
<div class="method-source-code" id="with_vars-source">
|
1802
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line
|
1810
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 675</span>
|
1803
1811
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">with_vars</span>(<span class="ruby-identifier">vars</span>)
|
1804
1812
|
<span class="ruby-identifier">current</span> = <span class="ruby-ivar">@variables</span>
|
1805
1813
|
<span class="ruby-ivar">@variables</span> = <span class="ruby-ivar">@variables</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">vars</span>)
|
@@ -1831,7 +1839,7 @@ variables is restored.</p>
|
|
1831
1839
|
|
1832
1840
|
<footer id="validator-badges" role="contentinfo">
|
1833
1841
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
1834
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
1842
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
1835
1843
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
1836
1844
|
</footer>
|
1837
1845
|
|
@@ -101,7 +101,7 @@
|
|
101
101
|
|
102
102
|
<footer id="validator-badges" role="contentinfo">
|
103
103
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
104
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
104
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
105
105
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
106
106
|
</footer>
|
107
107
|
|
@@ -101,7 +101,7 @@
|
|
101
101
|
|
102
102
|
<footer id="validator-badges" role="contentinfo">
|
103
103
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
104
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
104
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
105
105
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
106
106
|
</footer>
|
107
107
|
|
@@ -101,7 +101,7 @@
|
|
101
101
|
|
102
102
|
<footer id="validator-badges" role="contentinfo">
|
103
103
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
104
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
104
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
105
105
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
106
106
|
</footer>
|
107
107
|
|
data/doc/Bauxite/Errors.html
CHANGED
@@ -94,7 +94,7 @@
|
|
94
94
|
|
95
95
|
<footer id="validator-badges" role="contentinfo">
|
96
96
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
97
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
97
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
98
98
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
99
99
|
</footer>
|
100
100
|
|
@@ -77,6 +77,8 @@
|
|
77
77
|
|
78
78
|
<li ><a href="#method-i-debug_prompt">#debug_prompt</a>
|
79
79
|
|
80
|
+
<li ><a href="#method-i-finalize">#finalize</a>
|
81
|
+
|
80
82
|
<li ><a href="#method-i-log">#log</a>
|
81
83
|
|
82
84
|
<li ><a href="#method-i-log_cmd">#log_cmd</a>
|
@@ -190,7 +192,7 @@ first logger.</p>
|
|
190
192
|
|
191
193
|
|
192
194
|
<div class="method-source-code" id="debug_prompt-source">
|
193
|
-
<pre><span class="ruby-comment"># File lib/bauxite/loggers/composite.rb, line
|
195
|
+
<pre><span class="ruby-comment"># File lib/bauxite/loggers/composite.rb, line 52</span>
|
194
196
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">debug_prompt</span>
|
195
197
|
<span class="ruby-ivar">@loggers</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">debug_prompt</span>
|
196
198
|
<span class="ruby-keyword">end</span></pre>
|
@@ -201,6 +203,39 @@ first logger.</p>
|
|
201
203
|
|
202
204
|
|
203
205
|
|
206
|
+
</div>
|
207
|
+
|
208
|
+
|
209
|
+
<div id="method-i-finalize" class="method-detail ">
|
210
|
+
|
211
|
+
<div class="method-heading">
|
212
|
+
<span class="method-name">finalize</span><span
|
213
|
+
class="method-args">(ctx)</span>
|
214
|
+
|
215
|
+
<span class="method-click-advice">click to toggle source</span>
|
216
|
+
|
217
|
+
</div>
|
218
|
+
|
219
|
+
|
220
|
+
<div class="method-description">
|
221
|
+
|
222
|
+
<p>Completes the log execution.</p>
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
<div class="method-source-code" id="finalize-source">
|
228
|
+
<pre><span class="ruby-comment"># File lib/bauxite/loggers/composite.rb, line 71</span>
|
229
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">finalize</span>(<span class="ruby-identifier">ctx</span>)
|
230
|
+
<span class="ruby-ivar">@loggers</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">finalize</span>(<span class="ruby-identifier">ctx</span>) }
|
231
|
+
<span class="ruby-keyword">end</span></pre>
|
232
|
+
</div>
|
233
|
+
|
234
|
+
</div>
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
|
204
239
|
</div>
|
205
240
|
|
206
241
|
|
@@ -225,7 +260,7 @@ first logger.</p>
|
|
225
260
|
|
226
261
|
|
227
262
|
<div class="method-source-code" id="log-source">
|
228
|
-
<pre><span class="ruby-comment"># File lib/bauxite/loggers/composite.rb, line
|
263
|
+
<pre><span class="ruby-comment"># File lib/bauxite/loggers/composite.rb, line 65</span>
|
229
264
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">log</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">type</span> = <span class="ruby-value">:info</span>)
|
230
265
|
<span class="ruby-ivar">@loggers</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">log</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">type</span>) }
|
231
266
|
<span class="ruby-keyword">end</span></pre>
|
@@ -264,9 +299,7 @@ first logger.</p>
|
|
264
299
|
<div class="method-source-code" id="log_cmd-source">
|
265
300
|
<pre><span class="ruby-comment"># File lib/bauxite/loggers/composite.rb, line 44</span>
|
266
301
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">log_cmd</span>(<span class="ruby-identifier">action</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
267
|
-
<span class="ruby-identifier">
|
268
|
-
<span class="ruby-ivar">@loggers</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">log_cmd</span>(<span class="ruby-identifier">action</span>) { <span class="ruby-identifier">ret</span> } }
|
269
|
-
<span class="ruby-identifier">ret</span>
|
302
|
+
<span class="ruby-identifier">_log_cmd_block</span>(<span class="ruby-ivar">@loggers</span>, <span class="ruby-identifier">action</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
270
303
|
<span class="ruby-keyword">end</span></pre>
|
271
304
|
</div>
|
272
305
|
|
@@ -297,7 +330,7 @@ first logger.</p>
|
|
297
330
|
|
298
331
|
|
299
332
|
<div class="method-source-code" id="progress-source">
|
300
|
-
<pre><span class="ruby-comment"># File lib/bauxite/loggers/composite.rb, line
|
333
|
+
<pre><span class="ruby-comment"># File lib/bauxite/loggers/composite.rb, line 57</span>
|
301
334
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">progress</span>(<span class="ruby-identifier">value</span>)
|
302
335
|
<span class="ruby-ivar">@loggers</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-identifier">value</span>) }
|
303
336
|
<span class="ruby-keyword">end</span></pre>
|
@@ -319,7 +352,7 @@ first logger.</p>
|
|
319
352
|
|
320
353
|
<footer id="validator-badges" role="contentinfo">
|
321
354
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
322
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
355
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
323
356
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
324
357
|
</footer>
|
325
358
|
|
@@ -159,7 +159,7 @@ action succeeded, failed or was skipped).</p>
|
|
159
159
|
|
160
160
|
<footer id="validator-badges" role="contentinfo">
|
161
161
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
162
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
162
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
163
163
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
164
164
|
</footer>
|
165
165
|
|
@@ -209,7 +209,7 @@ file specified in the <code>file</code> logger option.</p>
|
|
209
209
|
|
210
210
|
<footer id="validator-badges" role="contentinfo">
|
211
211
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
212
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
212
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
|
213
213
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
214
214
|
</footer>
|
215
215
|
|