doc/Bauxite/Context.html in bauxite-0.6.0 vs doc/Bauxite/Context.html in bauxite-0.6.1

- old
+ new

@@ -418,11 +418,12 @@ <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> <span class="ruby-ivar">@variables</span> = { <span class="ruby-string">&#39;__TIMEOUT__&#39;</span> =<span class="ruby-operator">&gt;</span> (<span class="ruby-identifier">options</span>[<span class="ruby-value">:timeout</span>] <span class="ruby-operator">||</span> <span class="ruby-value">10</span>).<span class="ruby-identifier">to_i</span>, <span class="ruby-string">&#39;__DEBUG__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>, <span class="ruby-string">&#39;__SELECTOR__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:selector</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&#39;sid&#39;</span>, - <span class="ruby-string">&#39;__OUTPUT__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:output</span>] + <span class="ruby-string">&#39;__OUTPUT__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:output</span>], + <span class="ruby-string">&#39;__DIR__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">absolute_path</span>(<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>) } <span class="ruby-ivar">@aliases</span> = {} <span class="ruby-ivar">@tests</span> = [] <span class="ruby-identifier">client</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">Remote</span><span class="ruby-operator">::</span><span class="ruby-constant">Http</span><span class="ruby-operator">::</span><span class="ruby-constant">Default</span>.<span class="ruby-identifier">new</span> @@ -477,13 +478,13 @@ <div class="method-source-code" id="debug-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 258</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 259</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">debug</span> - <span class="ruby-identifier">exec_action</span>(<span class="ruby-string">&#39;debug&#39;</span>, <span class="ruby-keyword">false</span>) + <span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-string">&#39;debug&#39;</span>, [], <span class="ruby-keyword">false</span>) <span class="ruby-keyword">end</span></pre> </div> </div> @@ -534,11 +535,11 @@ <div class="method-source-code" id="find-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 247</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 248</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-comment"># yields: element</span> <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> <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">&#39;__SELECTOR__&#39;</span>]).<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> @@ -584,11 +585,11 @@ <div class="method-source-code" id="get_value-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 277</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 278</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">element</span>) <span class="ruby-keyword">if</span> [<span class="ruby-string">&#39;input&#39;</span>,<span class="ruby-string">&#39;select&#39;</span>,<span class="ruby-string">&#39;textarea&#39;</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> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-string">&#39;value&#39;</span>) <span class="ruby-keyword">else</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">text</span> @@ -627,11 +628,11 @@ <div class="method-source-code" id="reset_driver-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 202</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 203</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">reset_driver</span> <span class="ruby-ivar">@driver</span>.<span class="ruby-identifier">quit</span> <span class="ruby-identifier">_load_driver</span> <span class="ruby-keyword">end</span></pre> </div> @@ -676,11 +677,11 @@ <div class="method-source-code" id="start-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 178</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 179</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">start</span>(<span class="ruby-identifier">actions</span> = []) <span class="ruby-identifier">_load_driver</span> <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">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-keyword">begin</span> <span class="ruby-identifier">actions</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">action</span><span class="ruby-operator">|</span> @@ -741,11 +742,11 @@ <div class="method-source-code" id="stop-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 222</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 223</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">stop</span> <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>] <span class="ruby-ivar">@driver</span>.<span class="ruby-identifier">quit</span> <span class="ruby-keyword">end</span></pre> </div> @@ -807,11 +808,11 @@ <div class="method-source-code" id="load_logger-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 404</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 416</span> <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>) <span class="ruby-identifier">log_name</span> = (<span class="ruby-identifier">name</span> <span class="ruby-operator">||</span> <span class="ruby-string">&#39;null&#39;</span>).<span class="ruby-identifier">downcase</span> <span class="ruby-identifier">class_name</span> = <span class="ruby-node">&quot;#{log_name.capitalize}Logger&quot;</span> @@ -849,11 +850,11 @@ <div class="method-source-code" id="parse_action_default-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 426</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 438</span> <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">&#39;&lt;unknown&gt;&#39;</span>, <span class="ruby-identifier">line</span> = <span class="ruby-value">0</span>) <span class="ruby-identifier">data</span> = <span class="ruby-identifier">text</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">&#39; &#39;</span>, <span class="ruby-value">2</span>) <span class="ruby-keyword">begin</span> <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">&#39;&#39;</span> <span class="ruby-identifier">args</span> = [] @@ -917,11 +918,11 @@ <div class="method-source-code" id="wait-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 397</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 409</span> <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">wait</span> <span class="ruby-constant">Readline</span>.<span class="ruby-identifier">readline</span>(<span class="ruby-string">&quot;Press ENTER to continue\n&quot;</span>) <span class="ruby-keyword">end</span></pre> </div> @@ -959,11 +960,11 @@ <div class="method-source-code" id="add_alias-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 420</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 432</span> <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>) <span class="ruby-ivar">@aliases</span>[<span class="ruby-identifier">name</span>] = { <span class="ruby-value">:action</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">action</span>, <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">args</span> } <span class="ruby-keyword">end</span></pre> </div> @@ -977,11 +978,11 @@ <div id="method-i-exec_action" class="method-detail "> <div class="method-heading"> <span class="method-name">exec_action</span><span - class="method-args">(text, log = true, file = '<unknown>', line = 0)</span> + class="method-args">(text)</span> <span class="method-click-advice">click to toggle source</span> </div> @@ -1002,14 +1003,14 @@ <div class="method-source-code" id="exec_action-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 298</span> -<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">&#39;&lt;unknown&gt;&#39;</span>, <span class="ruby-identifier">line</span> = <span class="ruby-value">0</span>) - <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>) - <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">log</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span>) + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 299</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_action</span>(<span class="ruby-identifier">text</span>) + <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">&#39;&lt;unknown&gt;&#39;</span>, <span class="ruby-value">0</span>) + <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>) <span class="ruby-keyword">end</span></pre> </div> </div> @@ -1050,17 +1051,12 @@ <div class="method-source-code" id="exec_action_object-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 506</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 518</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">&#39;__FILE__&#39;</span>] = <span class="ruby-identifier">file</span> - <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__DIR__&#39;</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> @@ -1094,15 +1090,26 @@ <div class="method-source-code" id="exec_file-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 309</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 310</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_file</span>(<span class="ruby-identifier">file</span>) + <span class="ruby-identifier">current_dir</span> = <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__DIR__&#39;</span> ] + <span class="ruby-identifier">current_file</span> = <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__FILE__&#39;</span>] + <span class="ruby-identifier">current_line</span> = <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__LINE__&#39;</span>] + <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> - <span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>, <span class="ruby-keyword">true</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span>) + <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__DIR__&#39;</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">absolute_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">file</span>)) + <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__FILE__&#39;</span>] = <span class="ruby-identifier">file</span> + <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__LINE__&#39;</span>] = <span class="ruby-identifier">line</span> + <span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>, <span class="ruby-keyword">true</span>, <span class="ruby-identifier">text</span>) <span class="ruby-keyword">end</span> + + <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__DIR__&#39;</span> ] = <span class="ruby-identifier">current_dir</span> + <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__FILE__&#39;</span>] = <span class="ruby-identifier">current_file</span> + <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__LINE__&#39;</span>] = <span class="ruby-identifier">current_line</span> <span class="ruby-keyword">end</span></pre> </div> </div> @@ -1114,11 +1121,11 @@ <div id="method-i-exec_parsed_action" class="method-detail "> <div class="method-heading"> <span class="method-name">exec_parsed_action</span><span - class="method-args">(action, args, log = true, text = nil, file = nil, line = nil)</span> + class="method-args">(action, args, log = true, text = nil)</span> <span class="method-click-advice">click to toggle source</span> </div> @@ -1144,13 +1151,13 @@ <div class="method-source-code" id="exec_parsed_action-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 328</span> -<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>, <span class="ruby-identifier">file</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">line</span> = <span class="ruby-keyword">nil</span>) - <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>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span>) + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 340</span> +<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>) + <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>) <span class="ruby-identifier">ret</span> = <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">log</span> <span class="ruby-ivar">@logger</span>.<span class="ruby-identifier">log_cmd</span>(<span class="ruby-identifier">action</span>) <span class="ruby-keyword">do</span> <span class="ruby-constant">Readline</span><span class="ruby-operator">::</span><span class="ruby-constant">HISTORY</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">action</span>.<span class="ruby-identifier">text</span> <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">exec_action_object</span>(<span class="ruby-identifier">action</span>) @@ -1173,11 +1180,11 @@ <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 = nil, file = nil, line = nil)</span> + class="method-args">(action, args, text = nil)</span> <span class="method-click-advice">click to toggle source</span> </div> @@ -1195,12 +1202,12 @@ <div class="method-source-code" id="get_action-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 466</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-keyword">nil</span>, <span class="ruby-identifier">file</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">line</span> = <span class="ruby-keyword">nil</span>) + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 478</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-keyword">nil</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> @@ -1217,12 +1224,12 @@ <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">&#39;&quot;&#39;</span><span class="ruby-operator">+</span><span class="ruby-identifier">a</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">&#39;&quot;&#39;</span>, <span class="ruby-string">&#39;&quot;&quot;&#39;</span>)<span class="ruby-operator">+</span><span class="ruby-string">&#39;&quot;&#39;</span> }).<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39; &#39;</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">text</span> - <span class="ruby-identifier">file</span> = <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__FILE__&#39;</span>] <span class="ruby-keyword">unless</span> <span class="ruby-identifier">file</span> - <span class="ruby-identifier">line</span> = <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__LINE__&#39;</span>] <span class="ruby-keyword">unless</span> <span class="ruby-identifier">line</span> + <span class="ruby-identifier">file</span> = <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__FILE__&#39;</span>] + <span class="ruby-identifier">line</span> = <span class="ruby-ivar">@variables</span>[<span class="ruby-string">&#39;__LINE__&#39;</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> @@ -1236,11 +1243,11 @@ <div id="method-i-print_error" class="method-detail "> <div class="method-heading"> <span class="method-name">print_error</span><span - class="method-args">(e)</span> + class="method-args">(e, capture = true)</span> <span class="method-click-advice">click to toggle source</span> </div> @@ -1262,21 +1269,26 @@ <div class="method-source-code" id="print_error-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 526</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier">print_error</span>(<span class="ruby-identifier">e</span>) + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 533</span> +<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>) <span class="ruby-keyword">if</span> <span class="ruby-ivar">@logger</span> <span class="ruby-ivar">@logger</span>.<span class="ruby-identifier">log</span> <span class="ruby-node">&quot;#{e.message}\n&quot;</span>, <span class="ruby-value">:error</span> <span class="ruby-keyword">else</span> <span class="ruby-identifier">puts</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:verbose</span>] <span class="ruby-identifier">p</span> <span class="ruby-identifier">e</span> <span class="ruby-identifier">puts</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">backtrace</span> <span class="ruby-keyword">end</span> + <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>] + <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> + <span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-string">&#39;capture&#39;</span>, [] , <span class="ruby-keyword">false</span>) + <span class="ruby-keyword">end</span> + <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div> </div> @@ -1316,11 +1328,11 @@ <div class="method-source-code" id="with_driver_timeout-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 382</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 394</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">with_driver_timeout</span>(<span class="ruby-identifier">timeout</span>) <span class="ruby-identifier">current</span> = <span class="ruby-ivar">@driver_timeout</span> <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> <span class="ruby-keyword">yield</span> <span class="ruby-keyword">ensure</span> @@ -1365,11 +1377,11 @@ <div class="method-source-code" id="with_timeout-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 354</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 366</span> <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>) <span class="ruby-identifier">stime</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span> <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">&#39;__TIMEOUT__&#39;</span>] <span class="ruby-keyword">yield</span> <span class="ruby-keyword">rescue</span> <span class="ruby-operator">*</span><span class="ruby-identifier">error_types</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span> @@ -1446,11 +1458,11 @@ <div class="method-source-code" id="action_args-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 558</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 570</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">&#39;_action&#39;</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> @@ -1486,11 +1498,11 @@ <div class="method-source-code" id="actions-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 548</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 560</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">&#39;&#39;</span>) } <span class="ruby-keyword">end</span></pre> </div> @@ -1525,11 +1537,11 @@ <div class="method-source-code" id="loggers-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 587</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 599</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">&#39;&#39;</span>) } <span class="ruby-keyword">end</span></pre> </div> @@ -1567,11 +1579,11 @@ <div class="method-source-code" id="max_action_name_size-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 611</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 623</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">&gt;</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> @@ -1606,11 +1618,11 @@ <div class="method-source-code" id="parsers-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 597</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 609</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> @@ -1650,11 +1662,11 @@ <div class="method-source-code" id="selectors-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 573</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 585</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">&#39;&#39;</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> @@ -1732,11 +1744,11 @@ <div class="method-source-code" id="expand-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 632</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 644</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> @@ -1785,14 +1797,20 @@ <div class="method-source-code" id="with_vars-source"> - <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 655</span> + <pre><span class="ruby-comment"># File lib/bauxite/core/context.rb, line 667</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">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span> + <span class="ruby-identifier">e</span>.<span class="ruby-identifier">instance_variable_set</span> <span class="ruby-string">&quot;@variables&quot;</span>, <span class="ruby-ivar">@variables</span> + <span class="ruby-keyword">def</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">variables</span> + <span class="ruby-ivar">@variables</span> + <span class="ruby-keyword">end</span> + <span class="ruby-identifier">raise</span> <span class="ruby-keyword">ensure</span> <span class="ruby-ivar">@variables</span> = <span class="ruby-identifier">current</span> <span class="ruby-keyword">end</span></pre> </div>