bauxite 0.3.1 → 0.4.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.
- checksums.yaml +4 -4
- data/doc/Bauxite/Action.html +3 -3
- data/doc/Bauxite/ActionModule.html +4 -4
- data/doc/Bauxite/Application.html +1 -1
- data/doc/Bauxite/Context.html +184 -143
- data/doc/Bauxite/Errors/AssertionError.html +1 -1
- data/doc/Bauxite/Errors/FileNotFoundError.html +1 -1
- data/doc/Bauxite/Errors/FormatError.html +107 -0
- data/doc/Bauxite/Errors.html +1 -1
- data/doc/Bauxite/Loggers/CompositeLogger.html +1 -1
- data/doc/Bauxite/Loggers/EchoLogger.html +2 -1
- data/doc/Bauxite/Loggers/FileLogger.html +1 -1
- data/doc/Bauxite/Loggers/NullLogger.html +6 -6
- data/doc/Bauxite/Loggers/TerminalLogger.html +15 -10
- data/doc/Bauxite/Loggers/XtermLogger.html +1 -1
- data/doc/Bauxite/Loggers.html +1 -1
- data/doc/Bauxite/Parser.html +325 -0
- data/doc/Bauxite/ParserModule.html +203 -0
- data/doc/Bauxite/Selector.html +1 -1
- data/doc/Bauxite/SelectorModule.html +4 -4
- data/doc/Bauxite.html +1 -1
- data/doc/created.rid +42 -38
- data/doc/index.html +5 -1
- data/doc/js/search_index.js +1 -1
- data/doc/table_of_contents.html +77 -36
- data/lib/bauxite/actions/alias.rb +1 -1
- data/lib/bauxite/actions/debug.rb +2 -3
- data/lib/bauxite/actions/tryload.rb +1 -1
- data/lib/bauxite/application.rb +2 -10
- data/lib/bauxite/core/{Context.rb → context.rb} +117 -114
- data/lib/bauxite/core/{Errors.rb → errors.rb} +6 -0
- data/lib/bauxite/core/parser.rb +78 -0
- data/lib/bauxite/loggers/echo.rb +1 -0
- data/lib/bauxite/loggers/terminal.rb +5 -0
- data/lib/bauxite/parsers/csv.rb +49 -0
- data/lib/bauxite/parsers/default.rb +42 -0
- data/lib/bauxite/parsers/html.rb +76 -0
- data/lib/bauxite.rb +1 -1
- data/test/alias.bxt +3 -0
- data/test/parsers/page.html +7 -0
- data/test/parsers.bxt +2 -0
- data/test/parsers.csv +7 -0
- data/test/parsers.html +32 -0
- metadata +18 -7
- /data/lib/bauxite/core/{Action.rb → action.rb} +0 -0
- /data/lib/bauxite/core/{Logger.rb → logger.rb} +0 -0
- /data/lib/bauxite/core/{Selector.rb → selector.rb} +0 -0
data/doc/Bauxite/Context.html
CHANGED
@@ -100,16 +100,22 @@
|
|
100
100
|
|
101
101
|
<li ><a href="#method-c-new">::new</a>
|
102
102
|
|
103
|
-
<li ><a href="#method-c-
|
103
|
+
<li ><a href="#method-c-parse_action_default">::parse_action_default</a>
|
104
|
+
|
105
|
+
<li ><a href="#method-c-parsers">::parsers</a>
|
104
106
|
|
105
107
|
<li ><a href="#method-c-selectors">::selectors</a>
|
106
108
|
|
107
109
|
<li ><a href="#method-c-wait">::wait</a>
|
108
110
|
|
111
|
+
<li ><a href="#method-i-add_alias">#add_alias</a>
|
112
|
+
|
109
113
|
<li ><a href="#method-i-debug">#debug</a>
|
110
114
|
|
111
115
|
<li ><a href="#method-i-exec_action">#exec_action</a>
|
112
116
|
|
117
|
+
<li ><a href="#method-i-exec_file">#exec_file</a>
|
118
|
+
|
113
119
|
<li ><a href="#method-i-expand">#expand</a>
|
114
120
|
|
115
121
|
<li ><a href="#method-i-find">#find</a>
|
@@ -118,8 +124,6 @@
|
|
118
124
|
|
119
125
|
<li ><a href="#method-i-handle_errors">#handle_errors</a>
|
120
126
|
|
121
|
-
<li ><a href="#method-i-parse_file">#parse_file</a>
|
122
|
-
|
123
127
|
<li ><a href="#method-i-reset_driver">#reset_driver</a>
|
124
128
|
|
125
129
|
<li ><a href="#method-i-start">#start</a>
|
@@ -166,19 +170,6 @@ test engine (i.e. Selenium WebDriver).</p>
|
|
166
170
|
</header>
|
167
171
|
|
168
172
|
|
169
|
-
<div id="attribute-i-aliases" class="method-detail">
|
170
|
-
<div class="method-heading attribute-method-heading">
|
171
|
-
<span class="method-name">aliases</span><span
|
172
|
-
class="attribute-access-type">[RW]</span>
|
173
|
-
</div>
|
174
|
-
|
175
|
-
<div class="method-description">
|
176
|
-
|
177
|
-
<p><a href="Action.html">Action</a> aliases.</p>
|
178
|
-
|
179
|
-
</div>
|
180
|
-
</div>
|
181
|
-
|
182
173
|
<div id="attribute-i-driver" class="method-detail">
|
183
174
|
<div class="method-heading attribute-method-heading">
|
184
175
|
<span class="method-name">driver</span><span
|
@@ -304,7 +295,7 @@ href="Context.html#method-i-stop">stop</a> (defaults to <code>false</code>)</p>
|
|
304
295
|
|
305
296
|
|
306
297
|
<div class="method-source-code" id="new-source">
|
307
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
298
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 68</span>
|
308
299
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span>)
|
309
300
|
<span class="ruby-ivar">@options</span> = <span class="ruby-identifier">options</span>
|
310
301
|
<span class="ruby-ivar">@driver_name</span> = (<span class="ruby-identifier">options</span>[<span class="ruby-value">:driver</span>] <span class="ruby-operator">||</span> <span class="ruby-value">:firefox</span>).<span class="ruby-identifier">to_sym</span>
|
@@ -320,6 +311,8 @@ href="Context.html#method-i-stop">stop</a> (defaults to <code>false</code>)</p>
|
|
320
311
|
<span class="ruby-identifier">handle_errors</span> <span class="ruby-keyword">do</span>
|
321
312
|
<span class="ruby-ivar">@logger</span> = <span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">load_logger</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:logger</span>], <span class="ruby-identifier">options</span>[<span class="ruby-value">:logger_opt</span>])
|
322
313
|
<span class="ruby-keyword">end</span>
|
314
|
+
|
315
|
+
<span class="ruby-ivar">@parser</span> = <span class="ruby-constant">Parser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>)
|
323
316
|
<span class="ruby-keyword">end</span></pre>
|
324
317
|
</div>
|
325
318
|
|
@@ -364,7 +357,7 @@ href="Context.html#method-i-stop">stop</a> (defaults to <code>false</code>)</p>
|
|
364
357
|
|
365
358
|
|
366
359
|
<div class="method-source-code" id="debug-source">
|
367
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
360
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 175</span>
|
368
361
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">debug</span>
|
369
362
|
<span class="ruby-identifier">exec_action</span>(<span class="ruby-string">'debug'</span>, <span class="ruby-keyword">false</span>)
|
370
363
|
<span class="ruby-keyword">end</span></pre>
|
@@ -421,7 +414,7 @@ applies if no <code>block</code> was given).</p>
|
|
421
414
|
|
422
415
|
|
423
416
|
<div class="method-source-code" id="find-source">
|
424
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
417
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 164</span>
|
425
418
|
<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>
|
426
419
|
<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>
|
427
420
|
<span class="ruby-constant">Selector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>).<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
@@ -471,7 +464,7 @@ the inner text or the value of the <code>value</code> attribute.</p>
|
|
471
464
|
|
472
465
|
|
473
466
|
<div class="method-source-code" id="get_value-source">
|
474
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
467
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 194</span>
|
475
468
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">element</span>)
|
476
469
|
<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>
|
477
470
|
<span class="ruby-identifier">element</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-string">'value'</span>)
|
@@ -514,7 +507,7 @@ the inner text or the value of the <code>value</code> attribute.</p>
|
|
514
507
|
|
515
508
|
|
516
509
|
<div class="method-source-code" id="reset_driver-source">
|
517
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
510
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 119</span>
|
518
511
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">reset_driver</span>
|
519
512
|
<span class="ruby-ivar">@driver</span>.<span class="ruby-identifier">quit</span>
|
520
513
|
<span class="ruby-identifier">_load_driver</span>
|
@@ -563,7 +556,7 @@ href="Context.html#method-i-stop">stop</a>).</p>
|
|
563
556
|
|
564
557
|
|
565
558
|
<div class="method-source-code" id="start-source">
|
566
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
559
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 101</span>
|
567
560
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">start</span>(<span class="ruby-identifier">actions</span> = [])
|
568
561
|
<span class="ruby-identifier">_load_driver</span>
|
569
562
|
<span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actions</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
@@ -622,7 +615,7 @@ href="Context.html#method-i-stop">stop</a> pattern.</p>
|
|
622
615
|
|
623
616
|
|
624
617
|
<div class="method-source-code" id="stop-source">
|
625
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
618
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 139</span>
|
626
619
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">stop</span>
|
627
620
|
<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>]
|
628
621
|
<span class="ruby-ivar">@driver</span>.<span class="ruby-identifier">quit</span>
|
@@ -688,7 +681,7 @@ logger type.</p>
|
|
688
681
|
|
689
682
|
|
690
683
|
<div class="method-source-code" id="load_logger-source">
|
691
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
684
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 315</span>
|
692
685
|
<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>)
|
693
686
|
<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>
|
694
687
|
|
@@ -711,11 +704,11 @@ logger type.</p>
|
|
711
704
|
</div>
|
712
705
|
|
713
706
|
|
714
|
-
<div id="method-c-
|
707
|
+
<div id="method-c-parse_action_default" class="method-detail ">
|
715
708
|
|
716
709
|
<div class="method-heading">
|
717
|
-
<span class="method-name">
|
718
|
-
class="method-args">(line)</span>
|
710
|
+
<span class="method-name">parse_action_default</span><span
|
711
|
+
class="method-args">(text, file = '<unknown>', line = 0)</span>
|
719
712
|
|
720
713
|
<span class="method-click-advice">click to toggle source</span>
|
721
714
|
|
@@ -724,43 +717,44 @@ logger type.</p>
|
|
724
717
|
|
725
718
|
<div class="method-description">
|
726
719
|
|
727
|
-
<p>
|
728
|
-
should be a space-separated list of values, surrounded by optional quotes
|
729
|
-
(“).</p>
|
730
|
-
|
731
|
-
<p>The first element in <code>line</code> will be interpreted as an action
|
732
|
-
name. Valid action names are retuned by <a
|
733
|
-
href="Context.html#method-c-actions">::actions</a>.</p>
|
734
|
-
|
735
|
-
<p>The other elements in <code>line</code> will be interpreted as action
|
736
|
-
arguments.</p>
|
737
|
-
|
738
|
-
<p>For example:</p>
|
739
|
-
|
740
|
-
<pre class="ruby"><span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">parse_args</span>(<span class="ruby-string">'echo "Hello World!"'</span>)
|
741
|
-
<span class="ruby-comment"># => ' ["echo", "Hello World!"]</span>
|
742
|
-
</pre>
|
720
|
+
<p>Default action parsing strategy.</p>
|
743
721
|
|
744
722
|
|
745
723
|
|
746
724
|
|
747
|
-
<div class="method-source-code" id="
|
748
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
749
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">
|
750
|
-
<span class="ruby-
|
751
|
-
<span class="ruby-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
725
|
+
<div class="method-source-code" id="parse_action_default-source">
|
726
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 337</span>
|
727
|
+
<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>)
|
728
|
+
<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>)
|
729
|
+
<span class="ruby-keyword">begin</span>
|
730
|
+
<span class="ruby-identifier">args_text</span> = <span class="ruby-identifier">data</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">data</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">strip</span> <span class="ruby-operator">:</span> <span class="ruby-string">''</span>
|
731
|
+
<span class="ruby-identifier">args</span> = []
|
732
|
+
|
733
|
+
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">args_text</span> <span class="ruby-operator">==</span> <span class="ruby-string">''</span>
|
734
|
+
<span class="ruby-comment"># col_sep must be a regex because String.split has a</span>
|
735
|
+
<span class="ruby-comment"># special case for a single space char (' ') that produced</span>
|
736
|
+
<span class="ruby-comment"># unexpected results (i.e. if line is '"a b"' the</span>
|
737
|
+
<span class="ruby-comment"># resulting array contains ["a b"]).</span>
|
738
|
+
<span class="ruby-comment">#</span>
|
739
|
+
<span class="ruby-comment"># ...but... </span>
|
740
|
+
<span class="ruby-comment">#</span>
|
741
|
+
<span class="ruby-comment"># CSV expects col_sep to be a string so we need to work</span>
|
742
|
+
<span class="ruby-comment"># some dark magic here. Basically we proxy the StringIO</span>
|
743
|
+
<span class="ruby-comment"># received by CSV to returns strings for which the split</span>
|
744
|
+
<span class="ruby-comment"># method does not fold the whitespaces.</span>
|
745
|
+
<span class="ruby-comment">#</span>
|
746
|
+
<span class="ruby-identifier">args</span> = <span class="ruby-constant">CSV</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">StringIOProxy</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">args_text</span>), { <span class="ruby-value">:col_sep</span> =<span class="ruby-operator">></span> <span class="ruby-string">' '</span> })
|
747
|
+
.<span class="ruby-identifier">shift</span>
|
748
|
+
.<span class="ruby-identifier">select</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-operator">!=</span> <span class="ruby-keyword">nil</span> } <span class="ruby-operator">||</span> []
|
749
|
+
<span class="ruby-keyword">end</span>
|
750
|
+
|
751
|
+
{
|
752
|
+
<span class="ruby-value">:action</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">data</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span>,
|
753
|
+
<span class="ruby-value">:args</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>
|
754
|
+
}
|
755
|
+
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
756
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-node">"#{file} (line #{line+1}): #{e.message}"</span>
|
757
|
+
<span class="ruby-keyword">end</span>
|
764
758
|
<span class="ruby-keyword">end</span></pre>
|
765
759
|
</div>
|
766
760
|
|
@@ -797,7 +791,7 @@ arguments.</p>
|
|
797
791
|
|
798
792
|
|
799
793
|
<div class="method-source-code" id="wait-source">
|
800
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
794
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 308</span>
|
801
795
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">wait</span>
|
802
796
|
<span class="ruby-constant">Readline</span>.<span class="ruby-identifier">readline</span>(<span class="ruby-string">"Press ENTER to continue\n"</span>)
|
803
797
|
<span class="ruby-keyword">end</span></pre>
|
@@ -819,11 +813,45 @@ arguments.</p>
|
|
819
813
|
</header>
|
820
814
|
|
821
815
|
|
816
|
+
<div id="method-i-add_alias" class="method-detail ">
|
817
|
+
|
818
|
+
<div class="method-heading">
|
819
|
+
<span class="method-name">add_alias</span><span
|
820
|
+
class="method-args">(name, action, args)</span>
|
821
|
+
|
822
|
+
<span class="method-click-advice">click to toggle source</span>
|
823
|
+
|
824
|
+
</div>
|
825
|
+
|
826
|
+
|
827
|
+
<div class="method-description">
|
828
|
+
|
829
|
+
<p>Adds an alias named <code>name</code> to the specified <code>action</code>
|
830
|
+
with the arguments specified in <code>args</code>.</p>
|
831
|
+
|
832
|
+
|
833
|
+
|
834
|
+
|
835
|
+
<div class="method-source-code" id="add_alias-source">
|
836
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 331</span>
|
837
|
+
<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>)
|
838
|
+
<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> }
|
839
|
+
<span class="ruby-keyword">end</span></pre>
|
840
|
+
</div>
|
841
|
+
|
842
|
+
</div>
|
843
|
+
|
844
|
+
|
845
|
+
|
846
|
+
|
847
|
+
</div>
|
848
|
+
|
849
|
+
|
822
850
|
<div id="method-i-exec_action" class="method-detail ">
|
823
851
|
|
824
852
|
<div class="method-heading">
|
825
853
|
<span class="method-name">exec_action</span><span
|
826
|
-
class="method-args">(
|
854
|
+
class="method-args">(text, log = true, file = '<unknown>', line = 0)</span>
|
827
855
|
|
828
856
|
<span class="method-click-advice">click to toggle source</span>
|
829
857
|
|
@@ -832,16 +860,15 @@ arguments.</p>
|
|
832
860
|
|
833
861
|
<div class="method-description">
|
834
862
|
|
835
|
-
<p>Executes the specified action handling errors, logging and debug
|
836
|
-
|
863
|
+
<p>Executes the specified action string handling errors, logging and debug
|
864
|
+
history.</p>
|
837
865
|
|
838
866
|
<p>If <code>log</code> is <code>true</code>, log the action execution (default
|
839
867
|
behavior).</p>
|
840
868
|
|
841
869
|
<p>For example:</p>
|
842
870
|
|
843
|
-
<pre class="ruby"><span class="ruby-identifier">
|
844
|
-
<span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">exec_action</span> <span class="ruby-identifier">action</span>
|
871
|
+
<pre class="ruby"><span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">exec_action</span> <span class="ruby-string">'open "http://www.ruby-lang.org"'</span>
|
845
872
|
<span class="ruby-comment"># => navigates to www.ruby-lang.org</span>
|
846
873
|
</pre>
|
847
874
|
|
@@ -849,32 +876,51 @@ behavior).</p>
|
|
849
876
|
|
850
877
|
|
851
878
|
<div class="method-source-code" id="exec_action-source">
|
852
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
853
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_action</span>(<span class="ruby-identifier">
|
854
|
-
<span class="ruby-
|
855
|
-
|
856
|
-
|
879
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 215</span>
|
880
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_action</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">log</span> = <span class="ruby-keyword">true</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>)
|
881
|
+
<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-identifier">file</span>, <span class="ruby-identifier">line</span>)
|
882
|
+
<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-identifier">text</span>, <span class="ruby-identifier">log</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span>)
|
883
|
+
<span class="ruby-keyword">end</span></pre>
|
884
|
+
</div>
|
885
|
+
|
886
|
+
</div>
|
887
|
+
|
857
888
|
|
858
|
-
<span class="ruby-identifier">ret</span> = <span class="ruby-identifier">handle_errors</span>(<span class="ruby-keyword">true</span>) <span class="ruby-keyword">do</span>
|
859
889
|
|
860
|
-
|
890
|
+
|
891
|
+
</div>
|
861
892
|
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
|
893
|
+
|
894
|
+
<div id="method-i-exec_file" class="method-detail ">
|
895
|
+
|
896
|
+
<div class="method-heading">
|
897
|
+
<span class="method-name">exec_file</span><span
|
898
|
+
class="method-args">(file)</span>
|
899
|
+
|
900
|
+
<span class="method-click-advice">click to toggle source</span>
|
901
|
+
|
902
|
+
</div>
|
903
|
+
|
904
|
+
|
905
|
+
<div class="method-description">
|
906
|
+
|
907
|
+
<p>Executes the specified <code>file</code>.</p>
|
908
|
+
|
909
|
+
<p>For example:</p>
|
910
|
+
|
911
|
+
<pre class="ruby"><span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">exec_file</span>(<span class="ruby-string">'file'</span>)
|
912
|
+
<span class="ruby-comment"># => executes every action defined in 'file'</span>
|
913
|
+
</pre>
|
914
|
+
|
915
|
+
|
916
|
+
|
917
|
+
|
918
|
+
<div class="method-source-code" id="exec_file-source">
|
919
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 226</span>
|
920
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_file</span>(<span class="ruby-identifier">file</span>)
|
921
|
+
<span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">file</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">action</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><span class="ruby-operator">|</span>
|
922
|
+
<span class="ruby-identifier">_exec_parsed_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-keyword">true</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span>)
|
876
923
|
<span class="ruby-keyword">end</span>
|
877
|
-
<span class="ruby-identifier">ret</span>.<span class="ruby-identifier">call</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-value">:call</span> <span class="ruby-comment"># delayed actions (after log_cmd)</span>
|
878
924
|
<span class="ruby-keyword">end</span></pre>
|
879
925
|
</div>
|
880
926
|
|
@@ -925,7 +971,7 @@ handler will not exit after printing the error message.</p>
|
|
925
971
|
|
926
972
|
|
927
973
|
<div class="method-source-code" id="handle_errors-source">
|
928
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
974
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 251</span>
|
929
975
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">handle_errors</span>(<span class="ruby-identifier">break_into_debug</span> = <span class="ruby-keyword">false</span>, <span class="ruby-identifier">exit_on_error</span> = <span class="ruby-keyword">true</span>)
|
930
976
|
<span class="ruby-keyword">yield</span>
|
931
977
|
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
@@ -957,51 +1003,6 @@ handler will not exit after printing the error message.</p>
|
|
957
1003
|
|
958
1004
|
|
959
1005
|
|
960
|
-
</div>
|
961
|
-
|
962
|
-
|
963
|
-
<div id="method-i-parse_file" class="method-detail ">
|
964
|
-
|
965
|
-
<div class="method-heading">
|
966
|
-
<span class="method-name">parse_file</span><span
|
967
|
-
class="method-args">(file)</span>
|
968
|
-
|
969
|
-
<span class="method-click-advice">click to toggle source</span>
|
970
|
-
|
971
|
-
</div>
|
972
|
-
|
973
|
-
|
974
|
-
<div class="method-description">
|
975
|
-
|
976
|
-
<p>Parses the specified text into a test action array.</p>
|
977
|
-
|
978
|
-
<p>See parse_action for more details.</p>
|
979
|
-
|
980
|
-
<p>For example:</p>
|
981
|
-
|
982
|
-
<pre class="ruby"><span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">parse_file</span>(<span class="ruby-string">'file'</span>)
|
983
|
-
<span class="ruby-comment"># => [ { :cmd => 'echo', ... } ]</span>
|
984
|
-
</pre>
|
985
|
-
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
<div class="method-source-code" id="parse_file-source">
|
990
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/Context.rb, line 251</span>
|
991
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">parse_file</span>(<span class="ruby-identifier">file</span>)
|
992
|
-
<span class="ruby-keyword">if</span> (<span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-string">'stdin'</span>)
|
993
|
-
<span class="ruby-identifier">_parse_file</span>(<span class="ruby-identifier">$stdin</span>, <span class="ruby-identifier">file</span>)
|
994
|
-
<span class="ruby-keyword">else</span>
|
995
|
-
<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">io</span><span class="ruby-operator">|</span> <span class="ruby-identifier">_parse_file</span>(<span class="ruby-identifier">io</span>, <span class="ruby-identifier">file</span>) }
|
996
|
-
<span class="ruby-keyword">end</span>
|
997
|
-
<span class="ruby-keyword">end</span></pre>
|
998
|
-
</div>
|
999
|
-
|
1000
|
-
</div>
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
1006
|
</div>
|
1006
1007
|
|
1007
1008
|
|
@@ -1035,7 +1036,7 @@ to execute the block itself.</p>
|
|
1035
1036
|
|
1036
1037
|
|
1037
1038
|
<div class="method-source-code" id="with_timeout-source">
|
1038
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
1039
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 287</span>
|
1039
1040
|
<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>)
|
1040
1041
|
<span class="ruby-identifier">stime</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>
|
1041
1042
|
<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>]
|
@@ -1116,7 +1117,7 @@ to execute the block itself.</p>
|
|
1116
1117
|
|
1117
1118
|
|
1118
1119
|
<div class="method-source-code" id="action_args-source">
|
1119
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
1120
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 390</span>
|
1120
1121
|
<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>)
|
1121
1122
|
<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>
|
1122
1123
|
<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> }
|
@@ -1156,7 +1157,7 @@ to execute the block itself.</p>
|
|
1156
1157
|
|
1157
1158
|
|
1158
1159
|
<div class="method-source-code" id="actions-source">
|
1159
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
1160
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 380</span>
|
1160
1161
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">actions</span>
|
1161
1162
|
<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>) }
|
1162
1163
|
<span class="ruby-keyword">end</span></pre>
|
@@ -1195,7 +1196,7 @@ to execute the block itself.</p>
|
|
1195
1196
|
|
1196
1197
|
|
1197
1198
|
<div class="method-source-code" id="loggers-source">
|
1198
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
1199
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 419</span>
|
1199
1200
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">loggers</span>
|
1200
1201
|
<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>) }
|
1201
1202
|
<span class="ruby-keyword">end</span></pre>
|
@@ -1237,7 +1238,7 @@ to execute the block itself.</p>
|
|
1237
1238
|
|
1238
1239
|
|
1239
1240
|
<div class="method-source-code" id="max_action_name_size-source">
|
1240
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
1241
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 443</span>
|
1241
1242
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">max_action_name_size</span>
|
1242
1243
|
<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> }
|
1243
1244
|
<span class="ruby-keyword">end</span></pre>
|
@@ -1248,6 +1249,46 @@ to execute the block itself.</p>
|
|
1248
1249
|
|
1249
1250
|
|
1250
1251
|
|
1252
|
+
</div>
|
1253
|
+
|
1254
|
+
|
1255
|
+
<div id="method-c-parsers" class="method-detail ">
|
1256
|
+
|
1257
|
+
<div class="method-heading">
|
1258
|
+
<span class="method-name">parsers</span><span
|
1259
|
+
class="method-args">()</span>
|
1260
|
+
|
1261
|
+
<span class="method-click-advice">click to toggle source</span>
|
1262
|
+
|
1263
|
+
</div>
|
1264
|
+
|
1265
|
+
|
1266
|
+
<div class="method-description">
|
1267
|
+
|
1268
|
+
<p>Returns an array with the names of every parser available.</p>
|
1269
|
+
|
1270
|
+
<p>For example:</p>
|
1271
|
+
|
1272
|
+
<pre class="ruby"><span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">parsers</span>
|
1273
|
+
<span class="ruby-comment"># => [ "default", "html", ... ]</span>
|
1274
|
+
</pre>
|
1275
|
+
|
1276
|
+
|
1277
|
+
|
1278
|
+
|
1279
|
+
<div class="method-source-code" id="parsers-source">
|
1280
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 429</span>
|
1281
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">parsers</span>
|
1282
|
+
(<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>))
|
1283
|
+
.<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> }
|
1284
|
+
<span class="ruby-keyword">end</span></pre>
|
1285
|
+
</div>
|
1286
|
+
|
1287
|
+
</div>
|
1288
|
+
|
1289
|
+
|
1290
|
+
|
1291
|
+
|
1251
1292
|
</div>
|
1252
1293
|
|
1253
1294
|
|
@@ -1280,7 +1321,7 @@ custom selectors are returned.</p>
|
|
1280
1321
|
|
1281
1322
|
|
1282
1323
|
<div class="method-source-code" id="selectors-source">
|
1283
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
1324
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 405</span>
|
1284
1325
|
<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>)
|
1285
1326
|
<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>) }
|
1286
1327
|
<span class="ruby-keyword">if</span> <span class="ruby-identifier">include_standard_selectors</span>
|
@@ -1362,7 +1403,7 @@ with the corresponding variable value.</p>
|
|
1362
1403
|
|
1363
1404
|
|
1364
1405
|
<div class="method-source-code" id="expand-source">
|
1365
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
1406
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 464</span>
|
1366
1407
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">expand</span>(<span class="ruby-identifier">s</span>)
|
1367
1408
|
<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>
|
1368
1409
|
<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>)
|
@@ -1415,7 +1456,7 @@ variables is restored.</p>
|
|
1415
1456
|
|
1416
1457
|
|
1417
1458
|
<div class="method-source-code" id="with_vars-source">
|
1418
|
-
<pre><span class="ruby-comment"># File lib/bauxite/core/
|
1459
|
+
<pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 487</span>
|
1419
1460
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">with_vars</span>(<span class="ruby-identifier">vars</span>)
|
1420
1461
|
<span class="ruby-identifier">current</span> = <span class="ruby-ivar">@variables</span>
|
1421
1462
|
<span class="ruby-ivar">@variables</span> = <span class="ruby-ivar">@variables</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">vars</span>)
|
@@ -1441,7 +1482,7 @@ variables is restored.</p>
|
|
1441
1482
|
|
1442
1483
|
<footer id="validator-badges" role="contentinfo">
|
1443
1484
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
1444
|
-
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.
|
1485
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.0.
|
1445
1486
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
1446
1487
|
</footer>
|
1447
1488
|
|
@@ -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.0.
|
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
|
|