doc/Bauxite/Context.html in bauxite-0.4.4 vs doc/Bauxite/Context.html in bauxite-0.4.5
- old
+ new
@@ -121,16 +121,20 @@
<li ><a href="#method-i-debug">#debug</a>
<li ><a href="#method-i-exec_action">#exec_action</a>
+ <li ><a href="#method-i-exec_action_object">#exec_action_object</a>
+
<li ><a href="#method-i-exec_file">#exec_file</a>
<li ><a href="#method-i-expand">#expand</a>
<li ><a href="#method-i-find">#find</a>
+ <li ><a href="#method-i-get_action">#get_action</a>
+
<li ><a href="#method-i-get_value">#get_value</a>
<li ><a href="#method-i-handle_errors">#handle_errors</a>
<li ><a href="#method-i-reset_driver">#reset_driver</a>
@@ -628,11 +632,11 @@
<span class="ruby-string">'open "http://www.ruby-lang.org"'</span>,
<span class="ruby-string">'write "name=q" "ljust"'</span>,
<span class="ruby-string">'click "name=sa"'</span>,
<span class="ruby-string">'break'</span>
]
-<span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">start</span>(<span class="ruby-identifier">lines</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">ctx</span>.<span class="ruby-identifier">parse_action</span>(<span class="ruby-identifier">l</span>) })
+<span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">start</span>(<span class="ruby-identifier">lines</span>)
<span class="ruby-comment"># => navigates to www.ruby-lang.org, types ljust in the search box</span>
<span class="ruby-comment"># and clicks the "Search" button.</span>
</pre>
@@ -972,10 +976,62 @@
</div>
+ <div id="method-i-exec_action_object" class="method-detail ">
+
+ <div class="method-heading">
+ <span class="method-name">exec_action_object</span><span
+ class="method-args">(action)</span>
+
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+
+ <div class="method-description">
+
+ <p>Executes the specified action object injecting built-in variables. Note
+that the result returned by this method might be a lambda. If this is the
+case, a further <code>call</code> method must be issued.</p>
+
+<p>This method if part of the action execution chain and is intended for
+advanced use (e.g. in complex actions). To execute an <a
+href="Action.html">Action</a> directly, the <a
+href="Context.html#method-i-exec_action">exec_action</a> method is
+preferred.</p>
+
+<p>For example:</p>
+
+<pre>action = ctx.get_action("echo", ['Hi!'], 'echo "Hi!"')
+ret = ctx.exec_action_object(action)
+ret.call if ret.respond_to? :call</pre>
+
+
+
+
+ <div class="method-source-code" id="exec_action_object-source">
+ <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 488</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_action_object</span>(<span class="ruby-identifier">action</span>)
+ <span class="ruby-comment"># Inject built-in variables</span>
+ <span class="ruby-identifier">file</span> = <span class="ruby-identifier">action</span>.<span class="ruby-identifier">file</span>
+ <span class="ruby-identifier">dir</span> = (<span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span> <span class="ruby-identifier">file</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">file</span>) <span class="ruby-operator">:</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
+ <span class="ruby-ivar">@variables</span>[<span class="ruby-string">'__FILE__'</span>] = <span class="ruby-identifier">file</span>
+ <span class="ruby-ivar">@variables</span>[<span class="ruby-string">'__DIR__'</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">absolute_path</span>(<span class="ruby-identifier">dir</span>)
+ <span class="ruby-identifier">action</span>.<span class="ruby-identifier">execute</span>
+<span class="ruby-keyword">end</span></pre>
+ </div>
+
+ </div>
+
+
+
+
+ </div>
+
+
<div id="method-i-exec_file" class="method-detail ">
<div class="method-heading">
<span class="method-name">exec_file</span><span
class="method-args">(file)</span>
@@ -1013,10 +1069,71 @@
</div>
+ <div id="method-i-get_action" class="method-detail ">
+
+ <div class="method-heading">
+ <span class="method-name">get_action</span><span
+ class="method-args">(action, args, text, file, line)</span>
+
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+
+ <div class="method-description">
+
+ <p>Returns an executable <a href="Action.html">Action</a> object constructed
+from the specified arguments resolving action aliases.</p>
+
+<p>This method if part of the action execution chain and is intended for
+advanced use (e.g. in complex actions). To execute an <a
+href="Action.html">Action</a> directly, the <a
+href="Context.html#method-i-exec_action">exec_action</a> method is
+preferred.</p>
+
+
+
+
+ <div class="method-source-code" id="get_action-source">
+ <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 450</span>
+<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-identifier">file</span>, <span class="ruby-identifier">line</span>)
+ <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>])
+ <span class="ruby-identifier">action</span> = <span class="ruby-identifier">alias_action</span>[<span class="ruby-value">:action</span>]
+ <span class="ruby-identifier">args</span> = <span class="ruby-identifier">alias_action</span>[<span class="ruby-value">:args</span>].<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</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">gsub</span>(<span class="ruby-regexp">/\$\{(\d+)(\*q?)?\}/</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
+ <span class="ruby-comment"># expand ${1} to args[0], ${2} to args[1], etc.</span>
+ <span class="ruby-comment"># expand ${4*} to "#{args[4]} #{args[5]} ..."</span>
+ <span class="ruby-comment"># expand ${4*q} to "\"#{args[4]}\" \"#{args[5]}\" ..."</span>
+ <span class="ruby-identifier">idx</span> = <span class="ruby-node">$1</span>.<span class="ruby-identifier">to_i</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>
+ <span class="ruby-keyword">if</span> <span class="ruby-node">$2</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span>
+ <span class="ruby-identifier">args</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">||</span> <span class="ruby-string">''</span>
+ <span class="ruby-keyword">else</span>
+ <span class="ruby-identifier">range</span> = <span class="ruby-identifier">args</span>[<span class="ruby-identifier">idx</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
+ <span class="ruby-identifier">range</span> = <span class="ruby-identifier">range</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span> <span class="ruby-string">'"'</span><span class="ruby-operator">+</span><span class="ruby-identifier">arg</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-node">$2</span> <span class="ruby-operator">==</span> <span class="ruby-string">'*q'</span>
+ <span class="ruby-identifier">range</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">' '</span>)
+ <span class="ruby-keyword">end</span>
+ <span class="ruby-keyword">end</span>
+ <span class="ruby-keyword">end</span>
+ <span class="ruby-keyword">end</span>
+
+ <span class="ruby-identifier">text</span> = ([<span class="ruby-identifier">action</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">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-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-identifier">join</span>(<span class="ruby-string">' '</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">text</span>
+
+ <span class="ruby-constant">Action</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</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-keyword">end</span></pre>
+ </div>
+
+ </div>
+
+
+
+
+ </div>
+
+
<div id="method-i-handle_errors" class="method-detail ">
<div class="method-heading">
<span class="method-name">handle_errors</span><span
class="method-args">(break_into_debug = false, exit_on_error = true) { || ... }</span>
@@ -1249,11 +1366,11 @@
<div class="method-source-code" id="action_args-source">
- <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 463</span>
+ <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 518</span>
<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>)
<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>
<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> }
<span class="ruby-keyword">end</span></pre>
</div>
@@ -1289,11 +1406,11 @@
<div class="method-source-code" id="actions-source">
- <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 453</span>
+ <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 508</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">actions</span>
<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>) }
<span class="ruby-keyword">end</span></pre>
</div>
@@ -1328,11 +1445,11 @@
<div class="method-source-code" id="loggers-source">
- <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 492</span>
+ <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 547</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">loggers</span>
<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>) }
<span class="ruby-keyword">end</span></pre>
</div>
@@ -1370,11 +1487,11 @@
<div class="method-source-code" id="max_action_name_size-source">
- <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 516</span>
+ <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 571</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">max_action_name_size</span>
<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> }
<span class="ruby-keyword">end</span></pre>
</div>
@@ -1409,11 +1526,11 @@
<div class="method-source-code" id="parsers-source">
- <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 502</span>
+ <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 557</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">parsers</span>
(<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>))
.<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> }
<span class="ruby-keyword">end</span></pre>
</div>
@@ -1453,11 +1570,11 @@
<div class="method-source-code" id="selectors-source">
- <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 478</span>
+ <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 533</span>
<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>)
<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>) }
<span class="ruby-keyword">if</span> <span class="ruby-identifier">include_standard_selectors</span>
<span class="ruby-identifier">ret</span> <span class="ruby-operator">+=</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">SearchContext</span><span class="ruby-operator">::</span><span class="ruby-constant">FINDERS</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span> }
<span class="ruby-keyword">end</span>
@@ -1535,11 +1652,11 @@
<div class="method-source-code" id="expand-source">
- <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 537</span>
+ <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 592</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">expand</span>(<span class="ruby-identifier">s</span>)
<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>
<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>)
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">result</span> = <span class="ruby-identifier">expand</span>(<span class="ruby-identifier">result</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">result</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">s</span>
@@ -1588,11 +1705,11 @@
<div class="method-source-code" id="with_vars-source">
- <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 560</span>
+ <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 615</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">with_vars</span>(<span class="ruby-identifier">vars</span>)
<span class="ruby-identifier">current</span> = <span class="ruby-ivar">@variables</span>
<span class="ruby-ivar">@variables</span> = <span class="ruby-ivar">@variables</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">vars</span>)
<span class="ruby-keyword">yield</span>
<span class="ruby-keyword">ensure</span>
@@ -1614,9 +1731,9 @@
</main>
<footer id="validator-badges" role="contentinfo">
<p><a href="http://validator.w3.org/check/referer">Validate</a>
- <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.0.
+ <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
</footer>