brauser 3.2.6 → 3.3.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/.gitignore +1 -0
 - data/.rubocop.yml +29 -0
 - data/.travis-gemfile +1 -1
 - data/.travis.yml +2 -1
 - data/Gemfile +3 -3
 - data/README.md +6 -6
 - data/brauser.gemspec +1 -1
 - data/doc/Brauser.html +7 -7
 - data/doc/Brauser/Browseable.html +127 -0
 - data/doc/Brauser/{BrowserMethods → Browseable}/Attributes.html +34 -30
 - data/doc/Brauser/Browseable/DefaultDefinitions.html +387 -0
 - data/doc/Brauser/{BrowserMethods → Browseable}/General.html +9 -9
 - data/doc/Brauser/{BrowserMethods → Browseable}/General/ClassMethods.html +33 -33
 - data/doc/Brauser/{BrowserMethods → Browseable}/Parsing.html +23 -23
 - data/doc/Brauser/{BrowserMethods → Browseable}/PartialQuerying.html +59 -53
 - data/doc/Brauser/{BrowserMethods → Browseable}/Querying.html +43 -37
 - data/doc/Brauser/{BrowserMethods → Browseable}/Register.html +9 -9
 - data/doc/Brauser/Browseable/Register/ClassMethods.html +516 -0
 - data/doc/Brauser/Browser.html +787 -1362
 - data/doc/Brauser/Definition.html +230 -40
 - data/doc/Brauser/Hooks.html +4 -4
 - data/doc/Brauser/Hooks/RubyOnRails.html +4 -4
 - data/doc/Brauser/Query.html +53 -53
 - data/doc/Brauser/{BrowserMethods.html → Queryable.html} +13 -11
 - data/doc/Brauser/{Chainers.html → Queryable/Chainers.html} +51 -45
 - data/doc/Brauser/{Queries.html → Queryable/Queries.html} +47 -41
 - data/doc/Brauser/Version.html +6 -6
 - data/doc/_index.html +41 -27
 - data/doc/class_list.html +1 -1
 - data/doc/css/style.css +1 -0
 - data/doc/file.README.html +10 -10
 - data/doc/frames.html +1 -1
 - data/doc/index.html +10 -10
 - data/doc/method_list.html +68 -74
 - data/doc/top-level-namespace.html +4 -4
 - data/lib/brauser.rb +14 -3
 - data/lib/brauser/browseable/attributes.rb +95 -0
 - data/lib/brauser/browseable/general.rb +104 -0
 - data/lib/brauser/browseable/parsing.rb +127 -0
 - data/lib/brauser/browseable/partial_querying.rb +116 -0
 - data/lib/brauser/browseable/querying.rb +63 -0
 - data/lib/brauser/browseable/register.rb +73 -0
 - data/lib/brauser/browser.rb +34 -741
 - data/lib/brauser/definition.rb +30 -5
 - data/lib/brauser/definitions/browsers.rb +66 -0
 - data/lib/brauser/definitions/languages.rb +130 -0
 - data/lib/brauser/definitions/platforms.rb +30 -0
 - data/lib/brauser/query.rb +4 -99
 - data/lib/brauser/queryable/chainers.rb +56 -0
 - data/lib/brauser/queryable/queries.rb +60 -0
 - data/lib/brauser/version.rb +3 -2
 - data/spec/brauser/browser_spec.rb +26 -29
 - data/spec/brauser/query_spec.rb +15 -13
 - metadata +30 -17
 - data/.bundle/install.log +0 -106
 - data/doc/Brauser/BrowserMethods/Register/ClassMethods.html +0 -770
 
    
        data/doc/Brauser/Browser.html
    CHANGED
    
    | 
         @@ -6,7 +6,7 @@ 
     | 
|
| 
       6 
6 
     | 
    
         
             
            <title>
         
     | 
| 
       7 
7 
     | 
    
         
             
              Class: Brauser::Browser
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
                — Documentation by YARD 0.8.7. 
     | 
| 
      
 9 
     | 
    
         
            +
                — Documentation by YARD 0.8.7.4
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            </title>
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
         @@ -17,7 +17,7 @@ 
     | 
|
| 
       17 
17 
     | 
    
         
             
            <script type="text/javascript" charset="utf-8">
         
     | 
| 
       18 
18 
     | 
    
         
             
              hasFrames = window.top.frames.main ? true : false;
         
     | 
| 
       19 
19 
     | 
    
         
             
              relpath = '../';
         
     | 
| 
       20 
     | 
    
         
            -
              framesUrl = "../frames.html#!" 
     | 
| 
      
 20 
     | 
    
         
            +
              framesUrl = "../frames.html#!Brauser/Browser.html";
         
     | 
| 
       21 
21 
     | 
    
         
             
            </script>
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         | 
| 
         @@ -91,7 +91,7 @@ 
     | 
|
| 
       91 
91 
     | 
    
         | 
| 
       92 
92 
     | 
    
         | 
| 
       93 
93 
     | 
    
         
             
                  <dt class="r2">Includes:</dt>
         
     | 
| 
       94 
     | 
    
         
            -
                  <dd class="r2"><span class='object_link'><a href=" 
     | 
| 
      
 94 
     | 
    
         
            +
                  <dd class="r2"><span class='object_link'><a href="Browseable/Attributes.html" title="Brauser::Browseable::Attributes (module)">Brauser::Browseable::Attributes</a></span>, <span class='object_link'><a href="Browseable/DefaultDefinitions.html" title="Brauser::Browseable::DefaultDefinitions (module)">Brauser::Browseable::DefaultDefinitions</a></span>, <span class='object_link'><a href="Browseable/General.html" title="Brauser::Browseable::General (module)">Brauser::Browseable::General</a></span>, <span class='object_link'><a href="Browseable/Parsing.html" title="Brauser::Browseable::Parsing (module)">Brauser::Browseable::Parsing</a></span>, <span class='object_link'><a href="Browseable/PartialQuerying.html" title="Brauser::Browseable::PartialQuerying (module)">Brauser::Browseable::PartialQuerying</a></span>, <span class='object_link'><a href="Browseable/Querying.html" title="Brauser::Browseable::Querying (module)">Brauser::Browseable::Querying</a></span>, <span class='object_link'><a href="Browseable/Register.html" title="Brauser::Browseable::Register (module)">Brauser::Browseable::Register</a></span></dd>
         
     | 
| 
       95 
95 
     | 
    
         | 
| 
       96 
96 
     | 
    
         | 
| 
       97 
97 
     | 
    
         | 
| 
         @@ -114,7 +114,16 @@ 
     | 
|
| 
       114 
114 
     | 
    
         | 
| 
       115 
115 
     | 
    
         | 
| 
       116 
116 
     | 
    
         
             
            </div>
         
     | 
| 
      
 117 
     | 
    
         
            +
              <h2>Constant Summary</h2>
         
     | 
| 
      
 118 
     | 
    
         
            +
              
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
       117 
121 
     | 
    
         | 
| 
      
 122 
     | 
    
         
            +
              <h2>Constant Summary</h2>
         
     | 
| 
      
 123 
     | 
    
         
            +
              
         
     | 
| 
      
 124 
     | 
    
         
            +
              <h3 class="inherited">Constants included
         
     | 
| 
      
 125 
     | 
    
         
            +
                 from <span class='object_link'><a href="Browseable/DefaultDefinitions.html" title="Brauser::Browseable::DefaultDefinitions (module)">Brauser::Browseable::DefaultDefinitions</a></span></h3>
         
     | 
| 
      
 126 
     | 
    
         
            +
              <p class="inherited"><span class='object_link'><a href="Browseable/DefaultDefinitions.html#LANGUAGES-constant" title="Brauser::Browseable::DefaultDefinitions::LANGUAGES (constant)">Brauser::Browseable::DefaultDefinitions::LANGUAGES</a></span>, <span class='object_link'><a href="Browseable/DefaultDefinitions.html#MAJOR_DESKTOP_BROWSERS-constant" title="Brauser::Browseable::DefaultDefinitions::MAJOR_DESKTOP_BROWSERS (constant)">Brauser::Browseable::DefaultDefinitions::MAJOR_DESKTOP_BROWSERS</a></span>, <span class='object_link'><a href="Browseable/DefaultDefinitions.html#MINOR_DESKTOP_BROWSERS-constant" title="Brauser::Browseable::DefaultDefinitions::MINOR_DESKTOP_BROWSERS (constant)">Brauser::Browseable::DefaultDefinitions::MINOR_DESKTOP_BROWSERS</a></span>, <span class='object_link'><a href="Browseable/DefaultDefinitions.html#MOBILE_BROWSERS-constant" title="Brauser::Browseable::DefaultDefinitions::MOBILE_BROWSERS (constant)">Brauser::Browseable::DefaultDefinitions::MOBILE_BROWSERS</a></span>, <span class='object_link'><a href="Browseable/DefaultDefinitions.html#MSIE_BROWSERS-constant" title="Brauser::Browseable::DefaultDefinitions::MSIE_BROWSERS (constant)">Brauser::Browseable::DefaultDefinitions::MSIE_BROWSERS</a></span>, <span class='object_link'><a href="Browseable/DefaultDefinitions.html#PLATFORMS-constant" title="Brauser::Browseable::DefaultDefinitions::PLATFORMS (constant)">Brauser::Browseable::DefaultDefinitions::PLATFORMS</a></span></p>
         
     | 
| 
       118 
127 
     | 
    
         | 
| 
       119 
128 
     | 
    
         | 
| 
       120 
129 
     | 
    
         
             
              <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
         
     | 
| 
         @@ -153,8 +162,6 @@ 
     | 
|
| 
       153 
162 
     | 
    
         | 
| 
       154 
163 
     | 
    
         | 
| 
       155 
164 
     | 
    
         | 
| 
       156 
     | 
    
         
            -
                  (also: #ua)
         
     | 
| 
       157 
     | 
    
         
            -
                
         
     | 
| 
       158 
165 
     | 
    
         
             
              </span>
         
     | 
| 
       159 
166 
     | 
    
         | 
| 
       160 
167 
     | 
    
         | 
| 
         @@ -255,7 +262,7 @@ 
     | 
|
| 
       255 
262 
     | 
    
         
             
                  <li class="public ">
         
     | 
| 
       256 
263 
     | 
    
         
             
              <span class="summary_signature">
         
     | 
| 
       257 
264 
     | 
    
         | 
| 
       258 
     | 
    
         
            -
                  <a href="#version-instance_method" title="#version (instance method)">- (String) <strong>version</strong> </a>
         
     | 
| 
      
 265 
     | 
    
         
            +
                  <a href="#version-instance_method" title="#version (instance method)">- (String|Query) <strong>version</strong>(versions = nil) </a>
         
     | 
| 
       259 
266 
     | 
    
         | 
| 
       260 
267 
     | 
    
         | 
| 
       261 
268 
     | 
    
         | 
| 
         @@ -272,7 +279,7 @@ 
     | 
|
| 
       272 
279 
     | 
    
         | 
| 
       273 
280 
     | 
    
         | 
| 
       274 
281 
     | 
    
         | 
| 
       275 
     | 
    
         
            -
                <span class="summary_desc"><div class='inline'><p> 
     | 
| 
      
 282 
     | 
    
         
            +
                <span class="summary_desc"><div class='inline'><p>Get the current browser version (if called without arguments) or checks if the browser is a specific version.</p>
         
     | 
| 
       276 
283 
     | 
    
         
             
            </div></span>
         
     | 
| 
       277 
284 
     | 
    
         | 
| 
       278 
285 
     | 
    
         
             
            </li>
         
     | 
| 
         @@ -339,32 +346,20 @@ 
     | 
|
| 
       339 
346 
     | 
    
         
             
            </li>
         
     | 
| 
       340 
347 
     | 
    
         | 
| 
       341 
348 
     | 
    
         | 
| 
       342 
     | 
    
         
            -
             
     | 
| 
       343 
     | 
    
         
            -
              <span class="summary_signature">
         
     | 
| 
       344 
     | 
    
         
            -
                
         
     | 
| 
       345 
     | 
    
         
            -
                  <a href="#to_s-instance_method" title="#to_s (instance method)">- (String) <strong>to_s</strong> </a>
         
     | 
| 
       346 
     | 
    
         
            -
                
         
     | 
| 
       347 
     | 
    
         
            -
             
     | 
| 
       348 
     | 
    
         
            -
                
         
     | 
| 
       349 
     | 
    
         
            -
              </span>
         
     | 
| 
       350 
     | 
    
         
            -
              
         
     | 
| 
      
 349 
     | 
    
         
            +
                </ul>
         
     | 
| 
       351 
350 
     | 
    
         | 
| 
      
 351 
     | 
    
         
            +
             
     | 
| 
      
 352 
     | 
    
         
            +
             
     | 
| 
       352 
353 
     | 
    
         | 
| 
       353 
354 
     | 
    
         | 
| 
       354 
355 
     | 
    
         | 
| 
       355 
356 
     | 
    
         | 
| 
       356 
357 
     | 
    
         | 
| 
       357 
     | 
    
         
            -
             
     | 
| 
       358 
358 
     | 
    
         | 
| 
       359 
     | 
    
         
            -
                <span class="summary_desc"><div class='inline'><p>Returns the current browser as a string.</p>
         
     | 
| 
       360 
     | 
    
         
            -
            </div></span>
         
     | 
| 
       361 
359 
     | 
    
         | 
| 
       362 
     | 
    
         
            -
            </li>
         
     | 
| 
       363 
     | 
    
         
            -
             
     | 
| 
       364 
     | 
    
         
            -
                  
         
     | 
| 
       365 
     | 
    
         
            -
                </ul>
         
     | 
| 
       366 
360 
     | 
    
         | 
| 
       367 
     | 
    
         
            -
             
     | 
| 
      
 361 
     | 
    
         
            +
              <h3 class="inherited">Methods included from <span class='object_link'><a href="Browseable/Querying.html" title="Brauser::Browseable::Querying (module)">Brauser::Browseable::Querying</a></span></h3>
         
     | 
| 
      
 362 
     | 
    
         
            +
              <p class="inherited"><span class='object_link'><a href="Browseable/Querying.html#accepts%3F-instance_method" title="Brauser::Browseable::Querying#accepts? (method)">#accepts?</a></span>, <span class='object_link'><a href="Browseable/Querying.html#is%3F-instance_method" title="Brauser::Browseable::Querying#is? (method)">#is?</a></span>, <span class='object_link'><a href="Browseable/Querying.html#on%3F-instance_method" title="Brauser::Browseable::Querying#on? (method)">#on?</a></span>, <span class='object_link'><a href="Browseable/Querying.html#supported%3F-instance_method" title="Brauser::Browseable::Querying#supported? (method)">#supported?</a></span>, <span class='object_link'><a href="Browseable/Querying.html#version%3F-instance_method" title="Brauser::Browseable::Querying#version? (method)">#version?</a></span></p>
         
     | 
| 
       368 
363 
     | 
    
         | 
| 
       369 
364 
     | 
    
         | 
| 
       370 
365 
     | 
    
         | 
| 
         @@ -374,8 +369,8 @@ 
     | 
|
| 
       374 
369 
     | 
    
         | 
| 
       375 
370 
     | 
    
         | 
| 
       376 
371 
     | 
    
         | 
| 
       377 
     | 
    
         
            -
              <h3 class="inherited">Methods included from <span class='object_link'><a href=" 
     | 
| 
       378 
     | 
    
         
            -
              <p class="inherited"><span class='object_link'><a href=" 
     | 
| 
      
 372 
     | 
    
         
            +
              <h3 class="inherited">Methods included from <span class='object_link'><a href="Browseable/PartialQuerying.html" title="Brauser::Browseable::PartialQuerying (module)">Brauser::Browseable::PartialQuerying</a></span></h3>
         
     | 
| 
      
 373 
     | 
    
         
            +
              <p class="inherited"><span class='object_link'><a href="Browseable/PartialQuerying.html#accepts-instance_method" title="Brauser::Browseable::PartialQuerying#accepts (method)">#accepts</a></span>, <span class='object_link'><a href="Browseable/PartialQuerying.html#is-instance_method" title="Brauser::Browseable::PartialQuerying#is (method)">#is</a></span>, <span class='object_link'><a href="Browseable/PartialQuerying.html#on-instance_method" title="Brauser::Browseable::PartialQuerying#on (method)">#on</a></span>, <span class='object_link'><a href="Browseable/PartialQuerying.html#version_equals_to-instance_method" title="Brauser::Browseable::PartialQuerying#version_equals_to (method)">#version_equals_to</a></span></p>
         
     | 
| 
       379 
374 
     | 
    
         | 
| 
       380 
375 
     | 
    
         | 
| 
       381 
376 
     | 
    
         | 
| 
         @@ -385,8 +380,8 @@ 
     | 
|
| 
       385 
380 
     | 
    
         | 
| 
       386 
381 
     | 
    
         | 
| 
       387 
382 
     | 
    
         | 
| 
       388 
     | 
    
         
            -
              <h3 class="inherited">Methods included from <span class='object_link'><a href=" 
     | 
| 
       389 
     | 
    
         
            -
              <p class="inherited"><span class='object_link'><a href=" 
     | 
| 
      
 383 
     | 
    
         
            +
              <h3 class="inherited">Methods included from <span class='object_link'><a href="Browseable/Parsing.html" title="Brauser::Browseable::Parsing (module)">Brauser::Browseable::Parsing</a></span></h3>
         
     | 
| 
      
 384 
     | 
    
         
            +
              <p class="inherited"><span class='object_link'><a href="Browseable/Parsing.html#parse_accept_language-instance_method" title="Brauser::Browseable::Parsing#parse_accept_language (method)">#parse_accept_language</a></span>, <span class='object_link'><a href="Browseable/Parsing.html#parse_agent-instance_method" title="Brauser::Browseable::Parsing#parse_agent (method)">#parse_agent</a></span></p>
         
     | 
| 
       390 
385 
     | 
    
         | 
| 
       391 
386 
     | 
    
         | 
| 
       392 
387 
     | 
    
         | 
| 
         @@ -396,11 +391,6 @@ 
     | 
|
| 
       396 
391 
     | 
    
         | 
| 
       397 
392 
     | 
    
         | 
| 
       398 
393 
     | 
    
         | 
| 
       399 
     | 
    
         
            -
              <h3 class="inherited">Methods included from <span class='object_link'><a href="BrowserMethods/Parsing.html" title="Brauser::BrowserMethods::Parsing (module)">Brauser::BrowserMethods::Parsing</a></span></h3>
         
     | 
| 
       400 
     | 
    
         
            -
              <p class="inherited"><span class='object_link'><a href="BrowserMethods/Parsing.html#parse_accept_language-instance_method" title="Brauser::BrowserMethods::Parsing#parse_accept_language (method)">#parse_accept_language</a></span>, <span class='object_link'><a href="BrowserMethods/Parsing.html#parse_agent-instance_method" title="Brauser::BrowserMethods::Parsing#parse_agent (method)">#parse_agent</a></span></p>
         
     | 
| 
       401 
     | 
    
         
            -
             
     | 
| 
       402 
     | 
    
         
            -
              
         
     | 
| 
       403 
     | 
    
         
            -
              
         
     | 
| 
       404 
394 
     | 
    
         | 
| 
       405 
395 
     | 
    
         | 
| 
       406 
396 
     | 
    
         | 
| 
         @@ -414,8 +404,8 @@ 
     | 
|
| 
       414 
404 
     | 
    
         | 
| 
       415 
405 
     | 
    
         | 
| 
       416 
406 
     | 
    
         | 
| 
       417 
     | 
    
         
            -
              <h3 class="inherited">Methods included from <span class='object_link'><a href=" 
     | 
| 
       418 
     | 
    
         
            -
              <p class="inherited"><span class='object_link'><a href=" 
     | 
| 
      
 407 
     | 
    
         
            +
              <h3 class="inherited">Methods included from <span class='object_link'><a href="Browseable/Attributes.html" title="Brauser::Browseable::Attributes (module)">Brauser::Browseable::Attributes</a></span></h3>
         
     | 
| 
      
 408 
     | 
    
         
            +
              <p class="inherited"><span class='object_link'><a href="Browseable/Attributes.html#classes-instance_method" title="Brauser::Browseable::Attributes#classes (method)">#classes</a></span>, <span class='object_link'><a href="Browseable/Attributes.html#platform_name-instance_method" title="Brauser::Browseable::Attributes#platform_name (method)">#platform_name</a></span>, <span class='object_link'><a href="Browseable/Attributes.html#readable_name-instance_method" title="Brauser::Browseable::Attributes#readable_name (method)">#readable_name</a></span></p>
         
     | 
| 
       419 
409 
     | 
    
         | 
| 
       420 
410 
     | 
    
         | 
| 
       421 
411 
     | 
    
         | 
| 
         @@ -489,20 +479,20 @@ 
     | 
|
| 
       489 
479 
     | 
    
         
             
                  <pre class="lines">
         
     | 
| 
       490 
480 
     | 
    
         | 
| 
       491 
481 
     | 
    
         | 
| 
       492 
     | 
    
         
            -
             
     | 
| 
       493 
     | 
    
         
            -
             
     | 
| 
       494 
     | 
    
         
            -
             
     | 
| 
       495 
     | 
    
         
            -
             
     | 
| 
       496 
     | 
    
         
            -
             
     | 
| 
       497 
     | 
    
         
            -
             
     | 
| 
       498 
     | 
    
         
            -
             
     | 
| 
       499 
     | 
    
         
            -
             
     | 
| 
       500 
     | 
    
         
            -
             
     | 
| 
       501 
     | 
    
         
            -
             
     | 
| 
       502 
     | 
    
         
            -
             
     | 
| 
      
 482 
     | 
    
         
            +
            46
         
     | 
| 
      
 483 
     | 
    
         
            +
            47
         
     | 
| 
      
 484 
     | 
    
         
            +
            48
         
     | 
| 
      
 485 
     | 
    
         
            +
            49
         
     | 
| 
      
 486 
     | 
    
         
            +
            50
         
     | 
| 
      
 487 
     | 
    
         
            +
            51
         
     | 
| 
      
 488 
     | 
    
         
            +
            52
         
     | 
| 
      
 489 
     | 
    
         
            +
            53
         
     | 
| 
      
 490 
     | 
    
         
            +
            54
         
     | 
| 
      
 491 
     | 
    
         
            +
            55
         
     | 
| 
      
 492 
     | 
    
         
            +
            56</pre>
         
     | 
| 
       503 
493 
     | 
    
         
             
                </td>
         
     | 
| 
       504 
494 
     | 
    
         
             
                <td>
         
     | 
| 
       505 
     | 
    
         
            -
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line  
     | 
| 
      
 495 
     | 
    
         
            +
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line 46</span>
         
     | 
| 
       506 
496 
     | 
    
         | 
| 
       507 
497 
     | 
    
         
             
            <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_agent'>agent</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_accept_language'>accept_language</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
         
     | 
| 
       508 
498 
     | 
    
         
             
              <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browser</span><span class='period'>.</span><span class='id identifier rubyid_add_default_browsers'>add_default_browsers</span>
         
     | 
| 
         @@ -630,27 +620,23 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       630 
620 
     | 
    
         
             
                  <pre class="lines">
         
     | 
| 
       631 
621 
     | 
    
         | 
| 
       632 
622 
     | 
    
         | 
| 
       633 
     | 
    
         
            -
             
     | 
| 
       634 
     | 
    
         
            -
             
     | 
| 
       635 
     | 
    
         
            -
             
     | 
| 
       636 
     | 
    
         
            -
             
     | 
| 
       637 
     | 
    
         
            -
             
     | 
| 
       638 
     | 
    
         
            -
             
     | 
| 
       639 
     | 
    
         
            -
             
     | 
| 
       640 
     | 
    
         
            -
            746
         
     | 
| 
       641 
     | 
    
         
            -
            747</pre>
         
     | 
| 
      
 623 
     | 
    
         
            +
            85
         
     | 
| 
      
 624 
     | 
    
         
            +
            86
         
     | 
| 
      
 625 
     | 
    
         
            +
            87
         
     | 
| 
      
 626 
     | 
    
         
            +
            88
         
     | 
| 
      
 627 
     | 
    
         
            +
            89
         
     | 
| 
      
 628 
     | 
    
         
            +
            90
         
     | 
| 
      
 629 
     | 
    
         
            +
            91</pre>
         
     | 
| 
       642 
630 
     | 
    
         
             
                </td>
         
     | 
| 
       643 
631 
     | 
    
         
             
                <td>
         
     | 
| 
       644 
     | 
    
         
            -
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line  
     | 
| 
      
 632 
     | 
    
         
            +
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line 85</span>
         
     | 
| 
       645 
633 
     | 
    
         | 
| 
       646 
634 
     | 
    
         
             
            <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       647 
     | 
    
         
            -
              <span class=' 
     | 
| 
       648 
     | 
    
         
            -
             
     | 
| 
       649 
     | 
    
         
            -
             
     | 
| 
       650 
     | 
    
         
            -
             
     | 
| 
       651 
     | 
    
         
            -
              <span class='kw'> 
     | 
| 
       652 
     | 
    
         
            -
                <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       653 
     | 
    
         
            -
              <span class='kw'>end</span>
         
     | 
| 
      
 635 
     | 
    
         
            +
              <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=</span> <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
         
     | 
| 
      
 636 
     | 
    
         
            +
              <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query_s'>query_s</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span>
         
     | 
| 
      
 637 
     | 
    
         
            +
              <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span> <span class='op'>?</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span> <span class='op'>:</span> <span class='id identifier rubyid_rv'>rv</span>
         
     | 
| 
      
 638 
     | 
    
         
            +
            <span class='kw'>rescue</span> <span class='const'>NoMethodError</span>
         
     | 
| 
      
 639 
     | 
    
         
            +
              <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       654 
640 
     | 
    
         
             
            <span class='kw'>end</span></pre>
         
     | 
| 
       655 
641 
     | 
    
         
             
                </td>
         
     | 
| 
       656 
642 
     | 
    
         
             
              </tr>
         
     | 
| 
         @@ -706,135 +692,92 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       706 
692 
     | 
    
         
             
                  <pre class="lines">
         
     | 
| 
       707 
693 
     | 
    
         | 
| 
       708 
694 
     | 
    
         | 
| 
       709 
     | 
    
         
            -
             
     | 
| 
       710 
     | 
    
         
            -
             
     | 
| 
       711 
     | 
    
         
            -
             
     | 
| 
       712 
     | 
    
         
            -
             
     | 
| 
       713 
     | 
    
         
            -
             
     | 
| 
       714 
     | 
    
         
            -
             
     | 
| 
       715 
     | 
    
         
            -
             
     | 
| 
       716 
     | 
    
         
            -
             
     | 
| 
       717 
     | 
    
         
            -
             
     | 
| 
       718 
     | 
    
         
            -
             
     | 
| 
       719 
     | 
    
         
            -
             
     | 
| 
       720 
     | 
    
         
            -
             
     | 
| 
       721 
     | 
    
         
            -
             
     | 
| 
       722 
     | 
    
         
            -
             
     | 
| 
       723 
     | 
    
         
            -
             
     | 
| 
       724 
     | 
    
         
            -
             
     | 
| 
       725 
     | 
    
         
            -
             
     | 
| 
       726 
     | 
    
         
            -
             
     | 
| 
       727 
     | 
    
         
            -
             
     | 
| 
       728 
     | 
    
         
            -
             
     | 
| 
       729 
     | 
    
         
            -
             
     | 
| 
       730 
     | 
    
         
            -
             
     | 
| 
       731 
     | 
    
         
            -
             
     | 
| 
       732 
     | 
    
         
            -
             
     | 
| 
       733 
     | 
    
         
            -
             
     | 
| 
       734 
     | 
    
         
            -
             
     | 
| 
       735 
     | 
    
         
            -
             
     | 
| 
       736 
     | 
    
         
            -
             
     | 
| 
       737 
     | 
    
         
            -
             
     | 
| 
       738 
     | 
    
         
            -
             
     | 
| 
       739 
     | 
    
         
            -
             
     | 
| 
       740 
     | 
    
         
            -
             
     | 
| 
       741 
     | 
    
         
            -
             
     | 
| 
       742 
     | 
    
         
            -
             
     | 
| 
       743 
     | 
    
         
            -
             
     | 
| 
       744 
     | 
    
         
            -
             
     | 
| 
       745 
     | 
    
         
            -
             
     | 
| 
       746 
     | 
    
         
            -
             
     | 
| 
       747 
     | 
    
         
            -
             
     | 
| 
       748 
     | 
    
         
            -
             
     | 
| 
       749 
     | 
    
         
            -
             
     | 
| 
       750 
     | 
    
         
            -
             
     | 
| 
       751 
     | 
    
         
            -
             
     | 
| 
       752 
     | 
    
         
            -
             
     | 
| 
       753 
     | 
    
         
            -
             
     | 
| 
       754 
     | 
    
         
            -
             
     | 
| 
       755 
     | 
    
         
            -
             
     | 
| 
       756 
     | 
    
         
            -
             
     | 
| 
       757 
     | 
    
         
            -
             
     | 
| 
       758 
     | 
    
         
            -
             
     | 
| 
       759 
     | 
    
         
            -
             
     | 
| 
       760 
     | 
    
         
            -
             
     | 
| 
       761 
     | 
    
         
            -
             
     | 
| 
       762 
     | 
    
         
            -
             
     | 
| 
       763 
     | 
    
         
            -
             
     | 
| 
       764 
     | 
    
         
            -
             
     | 
| 
       765 
     | 
    
         
            -
             
     | 
| 
       766 
     | 
    
         
            -
             
     | 
| 
       767 
     | 
    
         
            -
             
     | 
| 
       768 
     | 
    
         
            -
             
     | 
| 
       769 
     | 
    
         
            -
             
     | 
| 
       770 
     | 
    
         
            -
             
     | 
| 
       771 
     | 
    
         
            -
             
     | 
| 
       772 
     | 
    
         
            -
             
     | 
| 
       773 
     | 
    
         
            -
             
     | 
| 
       774 
     | 
    
         
            -
             
     | 
| 
       775 
     | 
    
         
            -
             
     | 
| 
       776 
     | 
    
         
            -
             
     | 
| 
       777 
     | 
    
         
            -
             
     | 
| 
       778 
     | 
    
         
            -
             
     | 
| 
       779 
     | 
    
         
            -
             
     | 
| 
       780 
     | 
    
         
            -
             
     | 
| 
       781 
     | 
    
         
            -
             
     | 
| 
       782 
     | 
    
         
            -
             
     | 
| 
       783 
     | 
    
         
            -
             
     | 
| 
       784 
     | 
    
         
            -
             
     | 
| 
       785 
     | 
    
         
            -
             
     | 
| 
       786 
     | 
    
         
            -
             
     | 
| 
       787 
     | 
    
         
            -
             
     | 
| 
       788 
     | 
    
         
            -
             
     | 
| 
       789 
     | 
    
         
            -
             
     | 
| 
       790 
     | 
    
         
            -
             
     | 
| 
       791 
     | 
    
         
            -
             
     | 
| 
       792 
     | 
    
         
            -
            770
         
     | 
| 
       793 
     | 
    
         
            -
            771
         
     | 
| 
       794 
     | 
    
         
            -
            772
         
     | 
| 
       795 
     | 
    
         
            -
            773
         
     | 
| 
       796 
     | 
    
         
            -
            774
         
     | 
| 
       797 
     | 
    
         
            -
            775
         
     | 
| 
       798 
     | 
    
         
            -
            776
         
     | 
| 
       799 
     | 
    
         
            -
            777
         
     | 
| 
       800 
     | 
    
         
            -
            778
         
     | 
| 
       801 
     | 
    
         
            -
            779
         
     | 
| 
       802 
     | 
    
         
            -
            780
         
     | 
| 
       803 
     | 
    
         
            -
            781
         
     | 
| 
       804 
     | 
    
         
            -
            782
         
     | 
| 
       805 
     | 
    
         
            -
            783
         
     | 
| 
       806 
     | 
    
         
            -
            784
         
     | 
| 
       807 
     | 
    
         
            -
            785
         
     | 
| 
       808 
     | 
    
         
            -
            786
         
     | 
| 
       809 
     | 
    
         
            -
            787
         
     | 
| 
       810 
     | 
    
         
            -
            788
         
     | 
| 
       811 
     | 
    
         
            -
            789
         
     | 
| 
       812 
     | 
    
         
            -
            790
         
     | 
| 
       813 
     | 
    
         
            -
            791
         
     | 
| 
       814 
     | 
    
         
            -
            792
         
     | 
| 
       815 
     | 
    
         
            -
            793
         
     | 
| 
       816 
     | 
    
         
            -
            794
         
     | 
| 
       817 
     | 
    
         
            -
            795
         
     | 
| 
       818 
     | 
    
         
            -
            796
         
     | 
| 
       819 
     | 
    
         
            -
            797
         
     | 
| 
       820 
     | 
    
         
            -
            798
         
     | 
| 
       821 
     | 
    
         
            -
            799
         
     | 
| 
       822 
     | 
    
         
            -
            800
         
     | 
| 
       823 
     | 
    
         
            -
            801
         
     | 
| 
       824 
     | 
    
         
            -
            802
         
     | 
| 
       825 
     | 
    
         
            -
            803
         
     | 
| 
       826 
     | 
    
         
            -
            804
         
     | 
| 
       827 
     | 
    
         
            -
            805
         
     | 
| 
       828 
     | 
    
         
            -
            806
         
     | 
| 
       829 
     | 
    
         
            -
            807
         
     | 
| 
       830 
     | 
    
         
            -
            808
         
     | 
| 
       831 
     | 
    
         
            -
            809
         
     | 
| 
       832 
     | 
    
         
            -
            810
         
     | 
| 
       833 
     | 
    
         
            -
            811
         
     | 
| 
       834 
     | 
    
         
            -
            812</pre>
         
     | 
| 
      
 695 
     | 
    
         
            +
            23
         
     | 
| 
      
 696 
     | 
    
         
            +
            24
         
     | 
| 
      
 697 
     | 
    
         
            +
            25
         
     | 
| 
      
 698 
     | 
    
         
            +
            26
         
     | 
| 
      
 699 
     | 
    
         
            +
            27
         
     | 
| 
      
 700 
     | 
    
         
            +
            28
         
     | 
| 
      
 701 
     | 
    
         
            +
            29
         
     | 
| 
      
 702 
     | 
    
         
            +
            30
         
     | 
| 
      
 703 
     | 
    
         
            +
            31
         
     | 
| 
      
 704 
     | 
    
         
            +
            32
         
     | 
| 
      
 705 
     | 
    
         
            +
            33
         
     | 
| 
      
 706 
     | 
    
         
            +
            34
         
     | 
| 
      
 707 
     | 
    
         
            +
            35
         
     | 
| 
      
 708 
     | 
    
         
            +
            36
         
     | 
| 
      
 709 
     | 
    
         
            +
            37
         
     | 
| 
      
 710 
     | 
    
         
            +
            38
         
     | 
| 
      
 711 
     | 
    
         
            +
            39
         
     | 
| 
      
 712 
     | 
    
         
            +
            40
         
     | 
| 
      
 713 
     | 
    
         
            +
            41
         
     | 
| 
      
 714 
     | 
    
         
            +
            42
         
     | 
| 
      
 715 
     | 
    
         
            +
            43
         
     | 
| 
      
 716 
     | 
    
         
            +
            44
         
     | 
| 
      
 717 
     | 
    
         
            +
            45
         
     | 
| 
      
 718 
     | 
    
         
            +
            46
         
     | 
| 
      
 719 
     | 
    
         
            +
            47
         
     | 
| 
      
 720 
     | 
    
         
            +
            48
         
     | 
| 
      
 721 
     | 
    
         
            +
            49
         
     | 
| 
      
 722 
     | 
    
         
            +
            50
         
     | 
| 
      
 723 
     | 
    
         
            +
            51
         
     | 
| 
      
 724 
     | 
    
         
            +
            52
         
     | 
| 
      
 725 
     | 
    
         
            +
            53
         
     | 
| 
      
 726 
     | 
    
         
            +
            54
         
     | 
| 
      
 727 
     | 
    
         
            +
            55
         
     | 
| 
      
 728 
     | 
    
         
            +
            56
         
     | 
| 
      
 729 
     | 
    
         
            +
            57
         
     | 
| 
      
 730 
     | 
    
         
            +
            58
         
     | 
| 
      
 731 
     | 
    
         
            +
            59
         
     | 
| 
      
 732 
     | 
    
         
            +
            60
         
     | 
| 
      
 733 
     | 
    
         
            +
            61
         
     | 
| 
      
 734 
     | 
    
         
            +
            62
         
     | 
| 
      
 735 
     | 
    
         
            +
            63
         
     | 
| 
      
 736 
     | 
    
         
            +
            64
         
     | 
| 
      
 737 
     | 
    
         
            +
            65
         
     | 
| 
      
 738 
     | 
    
         
            +
            66
         
     | 
| 
      
 739 
     | 
    
         
            +
            67
         
     | 
| 
      
 740 
     | 
    
         
            +
            68
         
     | 
| 
      
 741 
     | 
    
         
            +
            69
         
     | 
| 
      
 742 
     | 
    
         
            +
            70
         
     | 
| 
      
 743 
     | 
    
         
            +
            71
         
     | 
| 
      
 744 
     | 
    
         
            +
            72
         
     | 
| 
      
 745 
     | 
    
         
            +
            73
         
     | 
| 
      
 746 
     | 
    
         
            +
            74
         
     | 
| 
      
 747 
     | 
    
         
            +
            75
         
     | 
| 
      
 748 
     | 
    
         
            +
            76
         
     | 
| 
      
 749 
     | 
    
         
            +
            77
         
     | 
| 
      
 750 
     | 
    
         
            +
            78
         
     | 
| 
      
 751 
     | 
    
         
            +
            79
         
     | 
| 
      
 752 
     | 
    
         
            +
            80
         
     | 
| 
      
 753 
     | 
    
         
            +
            81
         
     | 
| 
      
 754 
     | 
    
         
            +
            82
         
     | 
| 
      
 755 
     | 
    
         
            +
            83
         
     | 
| 
      
 756 
     | 
    
         
            +
            84
         
     | 
| 
      
 757 
     | 
    
         
            +
            85
         
     | 
| 
      
 758 
     | 
    
         
            +
            86
         
     | 
| 
      
 759 
     | 
    
         
            +
            87
         
     | 
| 
      
 760 
     | 
    
         
            +
            88
         
     | 
| 
      
 761 
     | 
    
         
            +
            89
         
     | 
| 
      
 762 
     | 
    
         
            +
            90
         
     | 
| 
      
 763 
     | 
    
         
            +
            91
         
     | 
| 
      
 764 
     | 
    
         
            +
            92
         
     | 
| 
      
 765 
     | 
    
         
            +
            93
         
     | 
| 
      
 766 
     | 
    
         
            +
            94
         
     | 
| 
      
 767 
     | 
    
         
            +
            95
         
     | 
| 
      
 768 
     | 
    
         
            +
            96
         
     | 
| 
      
 769 
     | 
    
         
            +
            97
         
     | 
| 
      
 770 
     | 
    
         
            +
            98
         
     | 
| 
      
 771 
     | 
    
         
            +
            99
         
     | 
| 
      
 772 
     | 
    
         
            +
            100
         
     | 
| 
      
 773 
     | 
    
         
            +
            101
         
     | 
| 
      
 774 
     | 
    
         
            +
            102
         
     | 
| 
      
 775 
     | 
    
         
            +
            103
         
     | 
| 
      
 776 
     | 
    
         
            +
            104
         
     | 
| 
      
 777 
     | 
    
         
            +
            105</pre>
         
     | 
| 
       835 
778 
     | 
    
         
             
                </td>
         
     | 
| 
       836 
779 
     | 
    
         
             
                <td>
         
     | 
| 
       837 
     | 
    
         
            -
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line  
     | 
| 
      
 780 
     | 
    
         
            +
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line 23</span>
         
     | 
| 
       838 
781 
     | 
    
         | 
| 
       839 
782 
     | 
    
         
             
            <span class='kw'>class</span> <span class='const'>Browser</span>
         
     | 
| 
       840 
783 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:agent</span>
         
     | 
| 
         @@ -845,15 +788,15 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       845 
788 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:platform</span>
         
     | 
| 
       846 
789 
     | 
    
         | 
| 
       847 
790 
     | 
    
         
             
              <span class='comment'># Aliases
         
     | 
| 
       848 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       849 
     | 
    
         
            -
              <span class='kw'>alias</span> <span class='symbol'>:ua=</span> <span class='symbol'>:agent=</span>
         
     | 
| 
      
 791 
     | 
    
         
            +
            </span>  <span class='id identifier rubyid_alias_attribute'>alias_attribute</span> <span class='symbol'>:ua</span><span class='comma'>,</span> <span class='symbol'>:agent</span>
         
     | 
| 
       850 
792 
     | 
    
         | 
| 
       851 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       852 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       853 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       854 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       855 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       856 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
      
 793 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>General</span>
         
     | 
| 
      
 794 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Attributes</span>
         
     | 
| 
      
 795 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>DefaultDefinitions</span>
         
     | 
| 
      
 796 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Register</span>
         
     | 
| 
      
 797 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Parsing</span>
         
     | 
| 
      
 798 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>PartialQuerying</span>
         
     | 
| 
      
 799 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Querying</span>
         
     | 
| 
       857 
800 
     | 
    
         | 
| 
       858 
801 
     | 
    
         
             
              <span class='comment'># Creates a new browser.
         
     | 
| 
       859 
802 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
         @@ -871,6 +814,16 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       871 
814 
     | 
    
         
             
                <span class='id identifier rubyid_parse_agent'>parse_agent</span><span class='lparen'>(</span><span class='ivar'>@agent</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@agent</span>
         
     | 
| 
       872 
815 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       873 
816 
     | 
    
         | 
| 
      
 817 
     | 
    
         
            +
              <span class='comment'># Get the current browser version (if called without arguments) or checks if the browser is a specific version.
         
     | 
| 
      
 818 
     | 
    
         
            +
            </span>  <span class='comment'>#
         
     | 
| 
      
 819 
     | 
    
         
            +
            </span>  <span class='comment'># @see #is_version
         
     | 
| 
      
 820 
     | 
    
         
            +
            </span>  <span class='comment'># @param versions [String|Hash] A string in the form `operator version && ...` (example: `>= 7 && < 4`) or an hash with specific version to match against,
         
     | 
| 
      
 821 
     | 
    
         
            +
            </span>  <span class='comment'>#   in form `{:operator => version}`, where operator is one of `:lt, :lte, :eq, :gt, :gte`.
         
     | 
| 
      
 822 
     | 
    
         
            +
            </span>  <span class='comment'># @return [String|Query] The browser version or a query which can evaluated for concatenation or result.
         
     | 
| 
      
 823 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
         
     | 
| 
      
 824 
     | 
    
         
            +
                <span class='op'>!</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>?</span> <span class='ivar'>@version</span> <span class='op'>:</span> <span class='id identifier rubyid_version_equals_to'>version_equals_to</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span><span class='rparen'>)</span>
         
     | 
| 
      
 825 
     | 
    
         
            +
              <span class='kw'>end</span>
         
     | 
| 
      
 826 
     | 
    
         
            +
             
     | 
| 
       874 
827 
     | 
    
         
             
              <span class='comment'># This method enables the use of dynamic queries in just one method.
         
     | 
| 
       875 
828 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       876 
829 
     | 
    
         
             
            </span>  <span class='comment'># For example:
         
     | 
| 
         @@ -889,78 +842,25 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       889 
842 
     | 
    
         
             
            </span>  <span class='comment'># @param block [Proc] A block to pass to the method. Unused from the query.
         
     | 
| 
       890 
843 
     | 
    
         
             
            </span>  <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       891 
844 
     | 
    
         
             
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       892 
     | 
    
         
            -
                <span class=' 
     | 
| 
       893 
     | 
    
         
            -
             
     | 
| 
       894 
     | 
    
         
            -
             
     | 
| 
       895 
     | 
    
         
            -
             
     | 
| 
       896 
     | 
    
         
            -
                <span class='kw'> 
     | 
| 
       897 
     | 
    
         
            -
                  <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       898 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
      
 845 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=</span> <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
         
     | 
| 
      
 846 
     | 
    
         
            +
                <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query_s'>query_s</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span>
         
     | 
| 
      
 847 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span> <span class='op'>?</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span> <span class='op'>:</span> <span class='id identifier rubyid_rv'>rv</span>
         
     | 
| 
      
 848 
     | 
    
         
            +
              <span class='kw'>rescue</span> <span class='const'>NoMethodError</span>
         
     | 
| 
      
 849 
     | 
    
         
            +
                <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       899 
850 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       900 
851 
     | 
    
         | 
| 
       901 
     | 
    
         
            -
              <span class=' 
     | 
| 
       902 
     | 
    
         
            -
             
     | 
| 
       903 
     | 
    
         
            -
             
     | 
| 
      
 852 
     | 
    
         
            +
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
      
 853 
     | 
    
         
            +
             
     | 
| 
      
 854 
     | 
    
         
            +
              <span class='comment'># Executes a parsed query
         
     | 
| 
       904 
855 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       905 
     | 
    
         
            -
            </span>  <span class='comment'># @ 
     | 
| 
       906 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       907 
     | 
    
         
            -
             
     | 
| 
      
 856 
     | 
    
         
            +
            </span>  <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
      
 857 
     | 
    
         
            +
            </span>  <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
      
 858 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
      
 859 
     | 
    
         
            +
                <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
      
 860 
     | 
    
         
            +
                  <span class='kw'>break</span> <span class='kw'>unless</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
      
 861 
     | 
    
         
            +
                  <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
      
 862 
     | 
    
         
            +
                <span class='rbrace'>}</span>
         
     | 
| 
       908 
863 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       909 
     | 
    
         
            -
             
     | 
| 
       910 
     | 
    
         
            -
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
       911 
     | 
    
         
            -
                <span class='comment'># Parse query, getting all arguments.
         
     | 
| 
       912 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       913 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [String] The query to issue. Use `__` to separate query and `_` in place of `.` in the version.
         
     | 
| 
       914 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       915 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       916 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(_(v|on|is))</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> \\2</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_part'>part</span><span class='op'>|</span>
         
     | 
| 
       917 
     | 
    
         
            -
                    <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       918 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       919 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       920 
     | 
    
         
            -
             
     | 
| 
       921 
     | 
    
         
            -
                <span class='comment'># Handles a part of a query.
         
     | 
| 
       922 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       923 
     | 
    
         
            -
            </span>    <span class='comment'># @param part [String] A part of a query.
         
     | 
| 
       924 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       925 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       926 
     | 
    
         
            -
                  <span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_part'>part</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='int'>2</span><span class='rparen'>)</span>
         
     | 
| 
       927 
     | 
    
         
            -
             
     | 
| 
       928 
     | 
    
         
            -
                  <span class='kw'>if</span> <span class='id identifier rubyid_method'>method</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>v</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
         
     | 
| 
       929 
     | 
    
         
            -
                    <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_arguments'>arguments</span><span class='rparen'>)</span>
         
     | 
| 
       930 
     | 
    
         
            -
                  <span class='kw'>elsif</span> <span class='op'>!</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>is</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>on</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
         
     | 
| 
       931 
     | 
    
         
            -
                    <span class='id identifier rubyid_raise'>raise</span> <span class='const'>NoMethodError</span>
         
     | 
| 
       932 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       933 
     | 
    
         
            -
             
     | 
| 
       934 
     | 
    
         
            -
                  <span class='lbracket'>[</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span><span class='rbracket'>]</span>
         
     | 
| 
       935 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       936 
     | 
    
         
            -
             
     | 
| 
       937 
     | 
    
         
            -
                <span class='comment'># Parses the version for a query.
         
     | 
| 
       938 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       939 
     | 
    
         
            -
            </span>    <span class='comment'># @param version [String] The version to parse.
         
     | 
| 
       940 
     | 
    
         
            -
            </span>    <span class='comment'># @return [String] The parsed version.
         
     | 
| 
       941 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span>
         
     | 
| 
       942 
     | 
    
         
            -
                  <span class='lbracket'>[</span>
         
     | 
| 
       943 
     | 
    
         
            -
                    <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?eq_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> == </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse ==
         
     | 
| 
       944 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> <= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <=
         
     | 
| 
       945 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> >= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >=
         
     | 
| 
       946 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> < </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <
         
     | 
| 
       947 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> > </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >
         
     | 
| 
       948 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?and_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> && </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse &&
         
     | 
| 
       949 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>.</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Dot notation
         
     | 
| 
       950 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s+</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
         
     | 
| 
       951 
     | 
    
         
            -
                  <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_current'>current</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='op'>|</span> <span class='id identifier rubyid_current'>current</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
         
     | 
| 
       952 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       953 
     | 
    
         
            -
             
     | 
| 
       954 
     | 
    
         
            -
                <span class='comment'># Executes a parsed query
         
     | 
| 
       955 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       956 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       957 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
       958 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       959 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
       960 
     | 
    
         
            -
                    <span class='kw'>break</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
       961 
     | 
    
         
            -
                    <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
       962 
     | 
    
         
            -
                  <span class='rbrace'>}</span>
         
     | 
| 
       963 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       964 
864 
     | 
    
         
             
            <span class='kw'>end</span></pre>
         
     | 
| 
       965 
865 
     | 
    
         
             
                </td>
         
     | 
| 
       966 
866 
     | 
    
         
             
              </tr>
         
     | 
| 
         @@ -976,10 +876,6 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       976 
876 
     | 
    
         | 
| 
       977 
877 
     | 
    
         | 
| 
       978 
878 
     | 
    
         | 
| 
       979 
     | 
    
         
            -
                <span class="aliases">Also known as:
         
     | 
| 
       980 
     | 
    
         
            -
                <span class="names"><span id='ua-instance_method'>ua</span></span>
         
     | 
| 
       981 
     | 
    
         
            -
                </span>
         
     | 
| 
       982 
     | 
    
         
            -
              
         
     | 
| 
       983 
879 
     | 
    
         | 
| 
       984 
880 
     | 
    
         | 
| 
       985 
881 
     | 
    
         
             
            </h3><div class="docstring">
         
     | 
| 
         @@ -1015,135 +911,92 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1015 
911 
     | 
    
         
             
                  <pre class="lines">
         
     | 
| 
       1016 
912 
     | 
    
         | 
| 
       1017 
913 
     | 
    
         | 
| 
       1018 
     | 
    
         
            -
             
     | 
| 
       1019 
     | 
    
         
            -
             
     | 
| 
       1020 
     | 
    
         
            -
             
     | 
| 
       1021 
     | 
    
         
            -
             
     | 
| 
       1022 
     | 
    
         
            -
             
     | 
| 
       1023 
     | 
    
         
            -
             
     | 
| 
       1024 
     | 
    
         
            -
             
     | 
| 
       1025 
     | 
    
         
            -
             
     | 
| 
       1026 
     | 
    
         
            -
             
     | 
| 
       1027 
     | 
    
         
            -
             
     | 
| 
       1028 
     | 
    
         
            -
             
     | 
| 
       1029 
     | 
    
         
            -
             
     | 
| 
       1030 
     | 
    
         
            -
             
     | 
| 
       1031 
     | 
    
         
            -
             
     | 
| 
       1032 
     | 
    
         
            -
             
     | 
| 
       1033 
     | 
    
         
            -
             
     | 
| 
       1034 
     | 
    
         
            -
             
     | 
| 
       1035 
     | 
    
         
            -
             
     | 
| 
       1036 
     | 
    
         
            -
             
     | 
| 
       1037 
     | 
    
         
            -
             
     | 
| 
       1038 
     | 
    
         
            -
             
     | 
| 
       1039 
     | 
    
         
            -
             
     | 
| 
       1040 
     | 
    
         
            -
             
     | 
| 
       1041 
     | 
    
         
            -
             
     | 
| 
       1042 
     | 
    
         
            -
             
     | 
| 
       1043 
     | 
    
         
            -
             
     | 
| 
       1044 
     | 
    
         
            -
             
     | 
| 
       1045 
     | 
    
         
            -
             
     | 
| 
       1046 
     | 
    
         
            -
             
     | 
| 
       1047 
     | 
    
         
            -
             
     | 
| 
       1048 
     | 
    
         
            -
             
     | 
| 
       1049 
     | 
    
         
            -
             
     | 
| 
       1050 
     | 
    
         
            -
             
     | 
| 
       1051 
     | 
    
         
            -
             
     | 
| 
       1052 
     | 
    
         
            -
             
     | 
| 
       1053 
     | 
    
         
            -
             
     | 
| 
       1054 
     | 
    
         
            -
             
     | 
| 
       1055 
     | 
    
         
            -
             
     | 
| 
       1056 
     | 
    
         
            -
             
     | 
| 
       1057 
     | 
    
         
            -
             
     | 
| 
       1058 
     | 
    
         
            -
             
     | 
| 
       1059 
     | 
    
         
            -
             
     | 
| 
       1060 
     | 
    
         
            -
             
     | 
| 
       1061 
     | 
    
         
            -
             
     | 
| 
       1062 
     | 
    
         
            -
             
     | 
| 
       1063 
     | 
    
         
            -
             
     | 
| 
       1064 
     | 
    
         
            -
             
     | 
| 
       1065 
     | 
    
         
            -
             
     | 
| 
       1066 
     | 
    
         
            -
             
     | 
| 
       1067 
     | 
    
         
            -
             
     | 
| 
       1068 
     | 
    
         
            -
             
     | 
| 
       1069 
     | 
    
         
            -
             
     | 
| 
       1070 
     | 
    
         
            -
             
     | 
| 
       1071 
     | 
    
         
            -
             
     | 
| 
       1072 
     | 
    
         
            -
             
     | 
| 
       1073 
     | 
    
         
            -
             
     | 
| 
       1074 
     | 
    
         
            -
             
     | 
| 
       1075 
     | 
    
         
            -
             
     | 
| 
       1076 
     | 
    
         
            -
             
     | 
| 
       1077 
     | 
    
         
            -
             
     | 
| 
       1078 
     | 
    
         
            -
             
     | 
| 
       1079 
     | 
    
         
            -
             
     | 
| 
       1080 
     | 
    
         
            -
             
     | 
| 
       1081 
     | 
    
         
            -
             
     | 
| 
       1082 
     | 
    
         
            -
             
     | 
| 
       1083 
     | 
    
         
            -
             
     | 
| 
       1084 
     | 
    
         
            -
             
     | 
| 
       1085 
     | 
    
         
            -
             
     | 
| 
       1086 
     | 
    
         
            -
             
     | 
| 
       1087 
     | 
    
         
            -
             
     | 
| 
       1088 
     | 
    
         
            -
             
     | 
| 
       1089 
     | 
    
         
            -
             
     | 
| 
       1090 
     | 
    
         
            -
             
     | 
| 
       1091 
     | 
    
         
            -
             
     | 
| 
       1092 
     | 
    
         
            -
             
     | 
| 
       1093 
     | 
    
         
            -
             
     | 
| 
       1094 
     | 
    
         
            -
             
     | 
| 
       1095 
     | 
    
         
            -
             
     | 
| 
       1096 
     | 
    
         
            -
             
     | 
| 
       1097 
     | 
    
         
            -
             
     | 
| 
       1098 
     | 
    
         
            -
             
     | 
| 
       1099 
     | 
    
         
            -
             
     | 
| 
       1100 
     | 
    
         
            -
             
     | 
| 
       1101 
     | 
    
         
            -
            770
         
     | 
| 
       1102 
     | 
    
         
            -
            771
         
     | 
| 
       1103 
     | 
    
         
            -
            772
         
     | 
| 
       1104 
     | 
    
         
            -
            773
         
     | 
| 
       1105 
     | 
    
         
            -
            774
         
     | 
| 
       1106 
     | 
    
         
            -
            775
         
     | 
| 
       1107 
     | 
    
         
            -
            776
         
     | 
| 
       1108 
     | 
    
         
            -
            777
         
     | 
| 
       1109 
     | 
    
         
            -
            778
         
     | 
| 
       1110 
     | 
    
         
            -
            779
         
     | 
| 
       1111 
     | 
    
         
            -
            780
         
     | 
| 
       1112 
     | 
    
         
            -
            781
         
     | 
| 
       1113 
     | 
    
         
            -
            782
         
     | 
| 
       1114 
     | 
    
         
            -
            783
         
     | 
| 
       1115 
     | 
    
         
            -
            784
         
     | 
| 
       1116 
     | 
    
         
            -
            785
         
     | 
| 
       1117 
     | 
    
         
            -
            786
         
     | 
| 
       1118 
     | 
    
         
            -
            787
         
     | 
| 
       1119 
     | 
    
         
            -
            788
         
     | 
| 
       1120 
     | 
    
         
            -
            789
         
     | 
| 
       1121 
     | 
    
         
            -
            790
         
     | 
| 
       1122 
     | 
    
         
            -
            791
         
     | 
| 
       1123 
     | 
    
         
            -
            792
         
     | 
| 
       1124 
     | 
    
         
            -
            793
         
     | 
| 
       1125 
     | 
    
         
            -
            794
         
     | 
| 
       1126 
     | 
    
         
            -
            795
         
     | 
| 
       1127 
     | 
    
         
            -
            796
         
     | 
| 
       1128 
     | 
    
         
            -
            797
         
     | 
| 
       1129 
     | 
    
         
            -
            798
         
     | 
| 
       1130 
     | 
    
         
            -
            799
         
     | 
| 
       1131 
     | 
    
         
            -
            800
         
     | 
| 
       1132 
     | 
    
         
            -
            801
         
     | 
| 
       1133 
     | 
    
         
            -
            802
         
     | 
| 
       1134 
     | 
    
         
            -
            803
         
     | 
| 
       1135 
     | 
    
         
            -
            804
         
     | 
| 
       1136 
     | 
    
         
            -
            805
         
     | 
| 
       1137 
     | 
    
         
            -
            806
         
     | 
| 
       1138 
     | 
    
         
            -
            807
         
     | 
| 
       1139 
     | 
    
         
            -
            808
         
     | 
| 
       1140 
     | 
    
         
            -
            809
         
     | 
| 
       1141 
     | 
    
         
            -
            810
         
     | 
| 
       1142 
     | 
    
         
            -
            811
         
     | 
| 
       1143 
     | 
    
         
            -
            812</pre>
         
     | 
| 
      
 914 
     | 
    
         
            +
            23
         
     | 
| 
      
 915 
     | 
    
         
            +
            24
         
     | 
| 
      
 916 
     | 
    
         
            +
            25
         
     | 
| 
      
 917 
     | 
    
         
            +
            26
         
     | 
| 
      
 918 
     | 
    
         
            +
            27
         
     | 
| 
      
 919 
     | 
    
         
            +
            28
         
     | 
| 
      
 920 
     | 
    
         
            +
            29
         
     | 
| 
      
 921 
     | 
    
         
            +
            30
         
     | 
| 
      
 922 
     | 
    
         
            +
            31
         
     | 
| 
      
 923 
     | 
    
         
            +
            32
         
     | 
| 
      
 924 
     | 
    
         
            +
            33
         
     | 
| 
      
 925 
     | 
    
         
            +
            34
         
     | 
| 
      
 926 
     | 
    
         
            +
            35
         
     | 
| 
      
 927 
     | 
    
         
            +
            36
         
     | 
| 
      
 928 
     | 
    
         
            +
            37
         
     | 
| 
      
 929 
     | 
    
         
            +
            38
         
     | 
| 
      
 930 
     | 
    
         
            +
            39
         
     | 
| 
      
 931 
     | 
    
         
            +
            40
         
     | 
| 
      
 932 
     | 
    
         
            +
            41
         
     | 
| 
      
 933 
     | 
    
         
            +
            42
         
     | 
| 
      
 934 
     | 
    
         
            +
            43
         
     | 
| 
      
 935 
     | 
    
         
            +
            44
         
     | 
| 
      
 936 
     | 
    
         
            +
            45
         
     | 
| 
      
 937 
     | 
    
         
            +
            46
         
     | 
| 
      
 938 
     | 
    
         
            +
            47
         
     | 
| 
      
 939 
     | 
    
         
            +
            48
         
     | 
| 
      
 940 
     | 
    
         
            +
            49
         
     | 
| 
      
 941 
     | 
    
         
            +
            50
         
     | 
| 
      
 942 
     | 
    
         
            +
            51
         
     | 
| 
      
 943 
     | 
    
         
            +
            52
         
     | 
| 
      
 944 
     | 
    
         
            +
            53
         
     | 
| 
      
 945 
     | 
    
         
            +
            54
         
     | 
| 
      
 946 
     | 
    
         
            +
            55
         
     | 
| 
      
 947 
     | 
    
         
            +
            56
         
     | 
| 
      
 948 
     | 
    
         
            +
            57
         
     | 
| 
      
 949 
     | 
    
         
            +
            58
         
     | 
| 
      
 950 
     | 
    
         
            +
            59
         
     | 
| 
      
 951 
     | 
    
         
            +
            60
         
     | 
| 
      
 952 
     | 
    
         
            +
            61
         
     | 
| 
      
 953 
     | 
    
         
            +
            62
         
     | 
| 
      
 954 
     | 
    
         
            +
            63
         
     | 
| 
      
 955 
     | 
    
         
            +
            64
         
     | 
| 
      
 956 
     | 
    
         
            +
            65
         
     | 
| 
      
 957 
     | 
    
         
            +
            66
         
     | 
| 
      
 958 
     | 
    
         
            +
            67
         
     | 
| 
      
 959 
     | 
    
         
            +
            68
         
     | 
| 
      
 960 
     | 
    
         
            +
            69
         
     | 
| 
      
 961 
     | 
    
         
            +
            70
         
     | 
| 
      
 962 
     | 
    
         
            +
            71
         
     | 
| 
      
 963 
     | 
    
         
            +
            72
         
     | 
| 
      
 964 
     | 
    
         
            +
            73
         
     | 
| 
      
 965 
     | 
    
         
            +
            74
         
     | 
| 
      
 966 
     | 
    
         
            +
            75
         
     | 
| 
      
 967 
     | 
    
         
            +
            76
         
     | 
| 
      
 968 
     | 
    
         
            +
            77
         
     | 
| 
      
 969 
     | 
    
         
            +
            78
         
     | 
| 
      
 970 
     | 
    
         
            +
            79
         
     | 
| 
      
 971 
     | 
    
         
            +
            80
         
     | 
| 
      
 972 
     | 
    
         
            +
            81
         
     | 
| 
      
 973 
     | 
    
         
            +
            82
         
     | 
| 
      
 974 
     | 
    
         
            +
            83
         
     | 
| 
      
 975 
     | 
    
         
            +
            84
         
     | 
| 
      
 976 
     | 
    
         
            +
            85
         
     | 
| 
      
 977 
     | 
    
         
            +
            86
         
     | 
| 
      
 978 
     | 
    
         
            +
            87
         
     | 
| 
      
 979 
     | 
    
         
            +
            88
         
     | 
| 
      
 980 
     | 
    
         
            +
            89
         
     | 
| 
      
 981 
     | 
    
         
            +
            90
         
     | 
| 
      
 982 
     | 
    
         
            +
            91
         
     | 
| 
      
 983 
     | 
    
         
            +
            92
         
     | 
| 
      
 984 
     | 
    
         
            +
            93
         
     | 
| 
      
 985 
     | 
    
         
            +
            94
         
     | 
| 
      
 986 
     | 
    
         
            +
            95
         
     | 
| 
      
 987 
     | 
    
         
            +
            96
         
     | 
| 
      
 988 
     | 
    
         
            +
            97
         
     | 
| 
      
 989 
     | 
    
         
            +
            98
         
     | 
| 
      
 990 
     | 
    
         
            +
            99
         
     | 
| 
      
 991 
     | 
    
         
            +
            100
         
     | 
| 
      
 992 
     | 
    
         
            +
            101
         
     | 
| 
      
 993 
     | 
    
         
            +
            102
         
     | 
| 
      
 994 
     | 
    
         
            +
            103
         
     | 
| 
      
 995 
     | 
    
         
            +
            104
         
     | 
| 
      
 996 
     | 
    
         
            +
            105</pre>
         
     | 
| 
       1144 
997 
     | 
    
         
             
                </td>
         
     | 
| 
       1145 
998 
     | 
    
         
             
                <td>
         
     | 
| 
       1146 
     | 
    
         
            -
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line  
     | 
| 
      
 999 
     | 
    
         
            +
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line 23</span>
         
     | 
| 
       1147 
1000 
     | 
    
         | 
| 
       1148 
1001 
     | 
    
         
             
            <span class='kw'>class</span> <span class='const'>Browser</span>
         
     | 
| 
       1149 
1002 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:agent</span>
         
     | 
| 
         @@ -1154,15 +1007,15 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1154 
1007 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:platform</span>
         
     | 
| 
       1155 
1008 
     | 
    
         | 
| 
       1156 
1009 
     | 
    
         
             
              <span class='comment'># Aliases
         
     | 
| 
       1157 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       1158 
     | 
    
         
            -
              <span class='kw'>alias</span> <span class='symbol'>:ua=</span> <span class='symbol'>:agent=</span>
         
     | 
| 
      
 1010 
     | 
    
         
            +
            </span>  <span class='id identifier rubyid_alias_attribute'>alias_attribute</span> <span class='symbol'>:ua</span><span class='comma'>,</span> <span class='symbol'>:agent</span>
         
     | 
| 
       1159 
1011 
     | 
    
         | 
| 
       1160 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1161 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1162 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1163 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1164 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1165 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
      
 1012 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>General</span>
         
     | 
| 
      
 1013 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Attributes</span>
         
     | 
| 
      
 1014 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>DefaultDefinitions</span>
         
     | 
| 
      
 1015 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Register</span>
         
     | 
| 
      
 1016 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Parsing</span>
         
     | 
| 
      
 1017 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>PartialQuerying</span>
         
     | 
| 
      
 1018 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Querying</span>
         
     | 
| 
       1166 
1019 
     | 
    
         | 
| 
       1167 
1020 
     | 
    
         
             
              <span class='comment'># Creates a new browser.
         
     | 
| 
       1168 
1021 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
         @@ -1180,6 +1033,16 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1180 
1033 
     | 
    
         
             
                <span class='id identifier rubyid_parse_agent'>parse_agent</span><span class='lparen'>(</span><span class='ivar'>@agent</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@agent</span>
         
     | 
| 
       1181 
1034 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       1182 
1035 
     | 
    
         | 
| 
      
 1036 
     | 
    
         
            +
              <span class='comment'># Get the current browser version (if called without arguments) or checks if the browser is a specific version.
         
     | 
| 
      
 1037 
     | 
    
         
            +
            </span>  <span class='comment'>#
         
     | 
| 
      
 1038 
     | 
    
         
            +
            </span>  <span class='comment'># @see #is_version
         
     | 
| 
      
 1039 
     | 
    
         
            +
            </span>  <span class='comment'># @param versions [String|Hash] A string in the form `operator version && ...` (example: `>= 7 && < 4`) or an hash with specific version to match against,
         
     | 
| 
      
 1040 
     | 
    
         
            +
            </span>  <span class='comment'>#   in form `{:operator => version}`, where operator is one of `:lt, :lte, :eq, :gt, :gte`.
         
     | 
| 
      
 1041 
     | 
    
         
            +
            </span>  <span class='comment'># @return [String|Query] The browser version or a query which can evaluated for concatenation or result.
         
     | 
| 
      
 1042 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
         
     | 
| 
      
 1043 
     | 
    
         
            +
                <span class='op'>!</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>?</span> <span class='ivar'>@version</span> <span class='op'>:</span> <span class='id identifier rubyid_version_equals_to'>version_equals_to</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span><span class='rparen'>)</span>
         
     | 
| 
      
 1044 
     | 
    
         
            +
              <span class='kw'>end</span>
         
     | 
| 
      
 1045 
     | 
    
         
            +
             
     | 
| 
       1183 
1046 
     | 
    
         
             
              <span class='comment'># This method enables the use of dynamic queries in just one method.
         
     | 
| 
       1184 
1047 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       1185 
1048 
     | 
    
         
             
            </span>  <span class='comment'># For example:
         
     | 
| 
         @@ -1198,78 +1061,25 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1198 
1061 
     | 
    
         
             
            </span>  <span class='comment'># @param block [Proc] A block to pass to the method. Unused from the query.
         
     | 
| 
       1199 
1062 
     | 
    
         
             
            </span>  <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       1200 
1063 
     | 
    
         
             
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       1201 
     | 
    
         
            -
                <span class=' 
     | 
| 
       1202 
     | 
    
         
            -
             
     | 
| 
       1203 
     | 
    
         
            -
             
     | 
| 
       1204 
     | 
    
         
            -
             
     | 
| 
       1205 
     | 
    
         
            -
                <span class='kw'> 
     | 
| 
       1206 
     | 
    
         
            -
                  <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       1207 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
      
 1064 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=</span> <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
         
     | 
| 
      
 1065 
     | 
    
         
            +
                <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query_s'>query_s</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span>
         
     | 
| 
      
 1066 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span> <span class='op'>?</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span> <span class='op'>:</span> <span class='id identifier rubyid_rv'>rv</span>
         
     | 
| 
      
 1067 
     | 
    
         
            +
              <span class='kw'>rescue</span> <span class='const'>NoMethodError</span>
         
     | 
| 
      
 1068 
     | 
    
         
            +
                <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       1208 
1069 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       1209 
1070 
     | 
    
         | 
| 
       1210 
     | 
    
         
            -
              <span class=' 
     | 
| 
       1211 
     | 
    
         
            -
             
     | 
| 
       1212 
     | 
    
         
            -
             
     | 
| 
      
 1071 
     | 
    
         
            +
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
      
 1072 
     | 
    
         
            +
             
     | 
| 
      
 1073 
     | 
    
         
            +
              <span class='comment'># Executes a parsed query
         
     | 
| 
       1213 
1074 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       1214 
     | 
    
         
            -
            </span>  <span class='comment'># @ 
     | 
| 
       1215 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       1216 
     | 
    
         
            -
             
     | 
| 
      
 1075 
     | 
    
         
            +
            </span>  <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
      
 1076 
     | 
    
         
            +
            </span>  <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
      
 1077 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
      
 1078 
     | 
    
         
            +
                <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
      
 1079 
     | 
    
         
            +
                  <span class='kw'>break</span> <span class='kw'>unless</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
      
 1080 
     | 
    
         
            +
                  <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
      
 1081 
     | 
    
         
            +
                <span class='rbrace'>}</span>
         
     | 
| 
       1217 
1082 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       1218 
     | 
    
         
            -
             
     | 
| 
       1219 
     | 
    
         
            -
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
       1220 
     | 
    
         
            -
                <span class='comment'># Parse query, getting all arguments.
         
     | 
| 
       1221 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1222 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [String] The query to issue. Use `__` to separate query and `_` in place of `.` in the version.
         
     | 
| 
       1223 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       1224 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       1225 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(_(v|on|is))</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> \\2</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_part'>part</span><span class='op'>|</span>
         
     | 
| 
       1226 
     | 
    
         
            -
                    <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       1227 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       1228 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1229 
     | 
    
         
            -
             
     | 
| 
       1230 
     | 
    
         
            -
                <span class='comment'># Handles a part of a query.
         
     | 
| 
       1231 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1232 
     | 
    
         
            -
            </span>    <span class='comment'># @param part [String] A part of a query.
         
     | 
| 
       1233 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       1234 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       1235 
     | 
    
         
            -
                  <span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_part'>part</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='int'>2</span><span class='rparen'>)</span>
         
     | 
| 
       1236 
     | 
    
         
            -
             
     | 
| 
       1237 
     | 
    
         
            -
                  <span class='kw'>if</span> <span class='id identifier rubyid_method'>method</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>v</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
         
     | 
| 
       1238 
     | 
    
         
            -
                    <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_arguments'>arguments</span><span class='rparen'>)</span>
         
     | 
| 
       1239 
     | 
    
         
            -
                  <span class='kw'>elsif</span> <span class='op'>!</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>is</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>on</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
         
     | 
| 
       1240 
     | 
    
         
            -
                    <span class='id identifier rubyid_raise'>raise</span> <span class='const'>NoMethodError</span>
         
     | 
| 
       1241 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       1242 
     | 
    
         
            -
             
     | 
| 
       1243 
     | 
    
         
            -
                  <span class='lbracket'>[</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span><span class='rbracket'>]</span>
         
     | 
| 
       1244 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1245 
     | 
    
         
            -
             
     | 
| 
       1246 
     | 
    
         
            -
                <span class='comment'># Parses the version for a query.
         
     | 
| 
       1247 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1248 
     | 
    
         
            -
            </span>    <span class='comment'># @param version [String] The version to parse.
         
     | 
| 
       1249 
     | 
    
         
            -
            </span>    <span class='comment'># @return [String] The parsed version.
         
     | 
| 
       1250 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span>
         
     | 
| 
       1251 
     | 
    
         
            -
                  <span class='lbracket'>[</span>
         
     | 
| 
       1252 
     | 
    
         
            -
                    <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?eq_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> == </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse ==
         
     | 
| 
       1253 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> <= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <=
         
     | 
| 
       1254 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> >= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >=
         
     | 
| 
       1255 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> < </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <
         
     | 
| 
       1256 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> > </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >
         
     | 
| 
       1257 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?and_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> && </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse &&
         
     | 
| 
       1258 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>.</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Dot notation
         
     | 
| 
       1259 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s+</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
         
     | 
| 
       1260 
     | 
    
         
            -
                  <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_current'>current</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='op'>|</span> <span class='id identifier rubyid_current'>current</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
         
     | 
| 
       1261 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1262 
     | 
    
         
            -
             
     | 
| 
       1263 
     | 
    
         
            -
                <span class='comment'># Executes a parsed query
         
     | 
| 
       1264 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1265 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       1266 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
       1267 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       1268 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
       1269 
     | 
    
         
            -
                    <span class='kw'>break</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
       1270 
     | 
    
         
            -
                    <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
       1271 
     | 
    
         
            -
                  <span class='rbrace'>}</span>
         
     | 
| 
       1272 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1273 
1083 
     | 
    
         
             
            <span class='kw'>end</span></pre>
         
     | 
| 
       1274 
1084 
     | 
    
         
             
                </td>
         
     | 
| 
       1275 
1085 
     | 
    
         
             
              </tr>
         
     | 
| 
         @@ -1320,135 +1130,92 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1320 
1130 
     | 
    
         
             
                  <pre class="lines">
         
     | 
| 
       1321 
1131 
     | 
    
         | 
| 
       1322 
1132 
     | 
    
         | 
| 
       1323 
     | 
    
         
            -
             
     | 
| 
       1324 
     | 
    
         
            -
             
     | 
| 
       1325 
     | 
    
         
            -
             
     | 
| 
       1326 
     | 
    
         
            -
             
     | 
| 
       1327 
     | 
    
         
            -
             
     | 
| 
       1328 
     | 
    
         
            -
             
     | 
| 
       1329 
     | 
    
         
            -
             
     | 
| 
       1330 
     | 
    
         
            -
             
     | 
| 
       1331 
     | 
    
         
            -
             
     | 
| 
       1332 
     | 
    
         
            -
             
     | 
| 
       1333 
     | 
    
         
            -
             
     | 
| 
       1334 
     | 
    
         
            -
             
     | 
| 
       1335 
     | 
    
         
            -
             
     | 
| 
       1336 
     | 
    
         
            -
             
     | 
| 
       1337 
     | 
    
         
            -
             
     | 
| 
       1338 
     | 
    
         
            -
             
     | 
| 
       1339 
     | 
    
         
            -
             
     | 
| 
       1340 
     | 
    
         
            -
             
     | 
| 
       1341 
     | 
    
         
            -
             
     | 
| 
       1342 
     | 
    
         
            -
             
     | 
| 
       1343 
     | 
    
         
            -
             
     | 
| 
       1344 
     | 
    
         
            -
             
     | 
| 
       1345 
     | 
    
         
            -
             
     | 
| 
       1346 
     | 
    
         
            -
             
     | 
| 
       1347 
     | 
    
         
            -
             
     | 
| 
       1348 
     | 
    
         
            -
             
     | 
| 
       1349 
     | 
    
         
            -
             
     | 
| 
       1350 
     | 
    
         
            -
             
     | 
| 
       1351 
     | 
    
         
            -
             
     | 
| 
       1352 
     | 
    
         
            -
             
     | 
| 
       1353 
     | 
    
         
            -
             
     | 
| 
       1354 
     | 
    
         
            -
             
     | 
| 
       1355 
     | 
    
         
            -
             
     | 
| 
       1356 
     | 
    
         
            -
             
     | 
| 
       1357 
     | 
    
         
            -
             
     | 
| 
       1358 
     | 
    
         
            -
             
     | 
| 
       1359 
     | 
    
         
            -
             
     | 
| 
       1360 
     | 
    
         
            -
             
     | 
| 
       1361 
     | 
    
         
            -
             
     | 
| 
       1362 
     | 
    
         
            -
             
     | 
| 
       1363 
     | 
    
         
            -
             
     | 
| 
       1364 
     | 
    
         
            -
             
     | 
| 
       1365 
     | 
    
         
            -
             
     | 
| 
       1366 
     | 
    
         
            -
             
     | 
| 
       1367 
     | 
    
         
            -
             
     | 
| 
       1368 
     | 
    
         
            -
             
     | 
| 
       1369 
     | 
    
         
            -
             
     | 
| 
       1370 
     | 
    
         
            -
             
     | 
| 
       1371 
     | 
    
         
            -
             
     | 
| 
       1372 
     | 
    
         
            -
             
     | 
| 
       1373 
     | 
    
         
            -
             
     | 
| 
       1374 
     | 
    
         
            -
             
     | 
| 
       1375 
     | 
    
         
            -
             
     | 
| 
       1376 
     | 
    
         
            -
             
     | 
| 
       1377 
     | 
    
         
            -
             
     | 
| 
       1378 
     | 
    
         
            -
             
     | 
| 
       1379 
     | 
    
         
            -
             
     | 
| 
       1380 
     | 
    
         
            -
             
     | 
| 
       1381 
     | 
    
         
            -
             
     | 
| 
       1382 
     | 
    
         
            -
             
     | 
| 
       1383 
     | 
    
         
            -
             
     | 
| 
       1384 
     | 
    
         
            -
             
     | 
| 
       1385 
     | 
    
         
            -
             
     | 
| 
       1386 
     | 
    
         
            -
             
     | 
| 
       1387 
     | 
    
         
            -
             
     | 
| 
       1388 
     | 
    
         
            -
             
     | 
| 
       1389 
     | 
    
         
            -
             
     | 
| 
       1390 
     | 
    
         
            -
             
     | 
| 
       1391 
     | 
    
         
            -
             
     | 
| 
       1392 
     | 
    
         
            -
             
     | 
| 
       1393 
     | 
    
         
            -
             
     | 
| 
       1394 
     | 
    
         
            -
             
     | 
| 
       1395 
     | 
    
         
            -
             
     | 
| 
       1396 
     | 
    
         
            -
             
     | 
| 
       1397 
     | 
    
         
            -
             
     | 
| 
       1398 
     | 
    
         
            -
             
     | 
| 
       1399 
     | 
    
         
            -
             
     | 
| 
       1400 
     | 
    
         
            -
             
     | 
| 
       1401 
     | 
    
         
            -
             
     | 
| 
       1402 
     | 
    
         
            -
             
     | 
| 
       1403 
     | 
    
         
            -
             
     | 
| 
       1404 
     | 
    
         
            -
             
     | 
| 
       1405 
     | 
    
         
            -
             
     | 
| 
       1406 
     | 
    
         
            -
            770
         
     | 
| 
       1407 
     | 
    
         
            -
            771
         
     | 
| 
       1408 
     | 
    
         
            -
            772
         
     | 
| 
       1409 
     | 
    
         
            -
            773
         
     | 
| 
       1410 
     | 
    
         
            -
            774
         
     | 
| 
       1411 
     | 
    
         
            -
            775
         
     | 
| 
       1412 
     | 
    
         
            -
            776
         
     | 
| 
       1413 
     | 
    
         
            -
            777
         
     | 
| 
       1414 
     | 
    
         
            -
            778
         
     | 
| 
       1415 
     | 
    
         
            -
            779
         
     | 
| 
       1416 
     | 
    
         
            -
            780
         
     | 
| 
       1417 
     | 
    
         
            -
            781
         
     | 
| 
       1418 
     | 
    
         
            -
            782
         
     | 
| 
       1419 
     | 
    
         
            -
            783
         
     | 
| 
       1420 
     | 
    
         
            -
            784
         
     | 
| 
       1421 
     | 
    
         
            -
            785
         
     | 
| 
       1422 
     | 
    
         
            -
            786
         
     | 
| 
       1423 
     | 
    
         
            -
            787
         
     | 
| 
       1424 
     | 
    
         
            -
            788
         
     | 
| 
       1425 
     | 
    
         
            -
            789
         
     | 
| 
       1426 
     | 
    
         
            -
            790
         
     | 
| 
       1427 
     | 
    
         
            -
            791
         
     | 
| 
       1428 
     | 
    
         
            -
            792
         
     | 
| 
       1429 
     | 
    
         
            -
            793
         
     | 
| 
       1430 
     | 
    
         
            -
            794
         
     | 
| 
       1431 
     | 
    
         
            -
            795
         
     | 
| 
       1432 
     | 
    
         
            -
            796
         
     | 
| 
       1433 
     | 
    
         
            -
            797
         
     | 
| 
       1434 
     | 
    
         
            -
            798
         
     | 
| 
       1435 
     | 
    
         
            -
            799
         
     | 
| 
       1436 
     | 
    
         
            -
            800
         
     | 
| 
       1437 
     | 
    
         
            -
            801
         
     | 
| 
       1438 
     | 
    
         
            -
            802
         
     | 
| 
       1439 
     | 
    
         
            -
            803
         
     | 
| 
       1440 
     | 
    
         
            -
            804
         
     | 
| 
       1441 
     | 
    
         
            -
            805
         
     | 
| 
       1442 
     | 
    
         
            -
            806
         
     | 
| 
       1443 
     | 
    
         
            -
            807
         
     | 
| 
       1444 
     | 
    
         
            -
            808
         
     | 
| 
       1445 
     | 
    
         
            -
            809
         
     | 
| 
       1446 
     | 
    
         
            -
            810
         
     | 
| 
       1447 
     | 
    
         
            -
            811
         
     | 
| 
       1448 
     | 
    
         
            -
            812</pre>
         
     | 
| 
      
 1133 
     | 
    
         
            +
            23
         
     | 
| 
      
 1134 
     | 
    
         
            +
            24
         
     | 
| 
      
 1135 
     | 
    
         
            +
            25
         
     | 
| 
      
 1136 
     | 
    
         
            +
            26
         
     | 
| 
      
 1137 
     | 
    
         
            +
            27
         
     | 
| 
      
 1138 
     | 
    
         
            +
            28
         
     | 
| 
      
 1139 
     | 
    
         
            +
            29
         
     | 
| 
      
 1140 
     | 
    
         
            +
            30
         
     | 
| 
      
 1141 
     | 
    
         
            +
            31
         
     | 
| 
      
 1142 
     | 
    
         
            +
            32
         
     | 
| 
      
 1143 
     | 
    
         
            +
            33
         
     | 
| 
      
 1144 
     | 
    
         
            +
            34
         
     | 
| 
      
 1145 
     | 
    
         
            +
            35
         
     | 
| 
      
 1146 
     | 
    
         
            +
            36
         
     | 
| 
      
 1147 
     | 
    
         
            +
            37
         
     | 
| 
      
 1148 
     | 
    
         
            +
            38
         
     | 
| 
      
 1149 
     | 
    
         
            +
            39
         
     | 
| 
      
 1150 
     | 
    
         
            +
            40
         
     | 
| 
      
 1151 
     | 
    
         
            +
            41
         
     | 
| 
      
 1152 
     | 
    
         
            +
            42
         
     | 
| 
      
 1153 
     | 
    
         
            +
            43
         
     | 
| 
      
 1154 
     | 
    
         
            +
            44
         
     | 
| 
      
 1155 
     | 
    
         
            +
            45
         
     | 
| 
      
 1156 
     | 
    
         
            +
            46
         
     | 
| 
      
 1157 
     | 
    
         
            +
            47
         
     | 
| 
      
 1158 
     | 
    
         
            +
            48
         
     | 
| 
      
 1159 
     | 
    
         
            +
            49
         
     | 
| 
      
 1160 
     | 
    
         
            +
            50
         
     | 
| 
      
 1161 
     | 
    
         
            +
            51
         
     | 
| 
      
 1162 
     | 
    
         
            +
            52
         
     | 
| 
      
 1163 
     | 
    
         
            +
            53
         
     | 
| 
      
 1164 
     | 
    
         
            +
            54
         
     | 
| 
      
 1165 
     | 
    
         
            +
            55
         
     | 
| 
      
 1166 
     | 
    
         
            +
            56
         
     | 
| 
      
 1167 
     | 
    
         
            +
            57
         
     | 
| 
      
 1168 
     | 
    
         
            +
            58
         
     | 
| 
      
 1169 
     | 
    
         
            +
            59
         
     | 
| 
      
 1170 
     | 
    
         
            +
            60
         
     | 
| 
      
 1171 
     | 
    
         
            +
            61
         
     | 
| 
      
 1172 
     | 
    
         
            +
            62
         
     | 
| 
      
 1173 
     | 
    
         
            +
            63
         
     | 
| 
      
 1174 
     | 
    
         
            +
            64
         
     | 
| 
      
 1175 
     | 
    
         
            +
            65
         
     | 
| 
      
 1176 
     | 
    
         
            +
            66
         
     | 
| 
      
 1177 
     | 
    
         
            +
            67
         
     | 
| 
      
 1178 
     | 
    
         
            +
            68
         
     | 
| 
      
 1179 
     | 
    
         
            +
            69
         
     | 
| 
      
 1180 
     | 
    
         
            +
            70
         
     | 
| 
      
 1181 
     | 
    
         
            +
            71
         
     | 
| 
      
 1182 
     | 
    
         
            +
            72
         
     | 
| 
      
 1183 
     | 
    
         
            +
            73
         
     | 
| 
      
 1184 
     | 
    
         
            +
            74
         
     | 
| 
      
 1185 
     | 
    
         
            +
            75
         
     | 
| 
      
 1186 
     | 
    
         
            +
            76
         
     | 
| 
      
 1187 
     | 
    
         
            +
            77
         
     | 
| 
      
 1188 
     | 
    
         
            +
            78
         
     | 
| 
      
 1189 
     | 
    
         
            +
            79
         
     | 
| 
      
 1190 
     | 
    
         
            +
            80
         
     | 
| 
      
 1191 
     | 
    
         
            +
            81
         
     | 
| 
      
 1192 
     | 
    
         
            +
            82
         
     | 
| 
      
 1193 
     | 
    
         
            +
            83
         
     | 
| 
      
 1194 
     | 
    
         
            +
            84
         
     | 
| 
      
 1195 
     | 
    
         
            +
            85
         
     | 
| 
      
 1196 
     | 
    
         
            +
            86
         
     | 
| 
      
 1197 
     | 
    
         
            +
            87
         
     | 
| 
      
 1198 
     | 
    
         
            +
            88
         
     | 
| 
      
 1199 
     | 
    
         
            +
            89
         
     | 
| 
      
 1200 
     | 
    
         
            +
            90
         
     | 
| 
      
 1201 
     | 
    
         
            +
            91
         
     | 
| 
      
 1202 
     | 
    
         
            +
            92
         
     | 
| 
      
 1203 
     | 
    
         
            +
            93
         
     | 
| 
      
 1204 
     | 
    
         
            +
            94
         
     | 
| 
      
 1205 
     | 
    
         
            +
            95
         
     | 
| 
      
 1206 
     | 
    
         
            +
            96
         
     | 
| 
      
 1207 
     | 
    
         
            +
            97
         
     | 
| 
      
 1208 
     | 
    
         
            +
            98
         
     | 
| 
      
 1209 
     | 
    
         
            +
            99
         
     | 
| 
      
 1210 
     | 
    
         
            +
            100
         
     | 
| 
      
 1211 
     | 
    
         
            +
            101
         
     | 
| 
      
 1212 
     | 
    
         
            +
            102
         
     | 
| 
      
 1213 
     | 
    
         
            +
            103
         
     | 
| 
      
 1214 
     | 
    
         
            +
            104
         
     | 
| 
      
 1215 
     | 
    
         
            +
            105</pre>
         
     | 
| 
       1449 
1216 
     | 
    
         
             
                </td>
         
     | 
| 
       1450 
1217 
     | 
    
         
             
                <td>
         
     | 
| 
       1451 
     | 
    
         
            -
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line  
     | 
| 
      
 1218 
     | 
    
         
            +
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line 23</span>
         
     | 
| 
       1452 
1219 
     | 
    
         | 
| 
       1453 
1220 
     | 
    
         
             
            <span class='kw'>class</span> <span class='const'>Browser</span>
         
     | 
| 
       1454 
1221 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:agent</span>
         
     | 
| 
         @@ -1459,15 +1226,15 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1459 
1226 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:platform</span>
         
     | 
| 
       1460 
1227 
     | 
    
         | 
| 
       1461 
1228 
     | 
    
         
             
              <span class='comment'># Aliases
         
     | 
| 
       1462 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       1463 
     | 
    
         
            -
              <span class='kw'>alias</span> <span class='symbol'>:ua=</span> <span class='symbol'>:agent=</span>
         
     | 
| 
      
 1229 
     | 
    
         
            +
            </span>  <span class='id identifier rubyid_alias_attribute'>alias_attribute</span> <span class='symbol'>:ua</span><span class='comma'>,</span> <span class='symbol'>:agent</span>
         
     | 
| 
       1464 
1230 
     | 
    
         | 
| 
       1465 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1466 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1467 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1468 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1469 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1470 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
      
 1231 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>General</span>
         
     | 
| 
      
 1232 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Attributes</span>
         
     | 
| 
      
 1233 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>DefaultDefinitions</span>
         
     | 
| 
      
 1234 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Register</span>
         
     | 
| 
      
 1235 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Parsing</span>
         
     | 
| 
      
 1236 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>PartialQuerying</span>
         
     | 
| 
      
 1237 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Querying</span>
         
     | 
| 
       1471 
1238 
     | 
    
         | 
| 
       1472 
1239 
     | 
    
         
             
              <span class='comment'># Creates a new browser.
         
     | 
| 
       1473 
1240 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
         @@ -1485,6 +1252,16 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1485 
1252 
     | 
    
         
             
                <span class='id identifier rubyid_parse_agent'>parse_agent</span><span class='lparen'>(</span><span class='ivar'>@agent</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@agent</span>
         
     | 
| 
       1486 
1253 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       1487 
1254 
     | 
    
         | 
| 
      
 1255 
     | 
    
         
            +
              <span class='comment'># Get the current browser version (if called without arguments) or checks if the browser is a specific version.
         
     | 
| 
      
 1256 
     | 
    
         
            +
            </span>  <span class='comment'>#
         
     | 
| 
      
 1257 
     | 
    
         
            +
            </span>  <span class='comment'># @see #is_version
         
     | 
| 
      
 1258 
     | 
    
         
            +
            </span>  <span class='comment'># @param versions [String|Hash] A string in the form `operator version && ...` (example: `>= 7 && < 4`) or an hash with specific version to match against,
         
     | 
| 
      
 1259 
     | 
    
         
            +
            </span>  <span class='comment'>#   in form `{:operator => version}`, where operator is one of `:lt, :lte, :eq, :gt, :gte`.
         
     | 
| 
      
 1260 
     | 
    
         
            +
            </span>  <span class='comment'># @return [String|Query] The browser version or a query which can evaluated for concatenation or result.
         
     | 
| 
      
 1261 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
         
     | 
| 
      
 1262 
     | 
    
         
            +
                <span class='op'>!</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>?</span> <span class='ivar'>@version</span> <span class='op'>:</span> <span class='id identifier rubyid_version_equals_to'>version_equals_to</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span><span class='rparen'>)</span>
         
     | 
| 
      
 1263 
     | 
    
         
            +
              <span class='kw'>end</span>
         
     | 
| 
      
 1264 
     | 
    
         
            +
             
     | 
| 
       1488 
1265 
     | 
    
         
             
              <span class='comment'># This method enables the use of dynamic queries in just one method.
         
     | 
| 
       1489 
1266 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       1490 
1267 
     | 
    
         
             
            </span>  <span class='comment'># For example:
         
     | 
| 
         @@ -1503,78 +1280,25 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1503 
1280 
     | 
    
         
             
            </span>  <span class='comment'># @param block [Proc] A block to pass to the method. Unused from the query.
         
     | 
| 
       1504 
1281 
     | 
    
         
             
            </span>  <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       1505 
1282 
     | 
    
         
             
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       1506 
     | 
    
         
            -
                <span class=' 
     | 
| 
       1507 
     | 
    
         
            -
             
     | 
| 
       1508 
     | 
    
         
            -
             
     | 
| 
       1509 
     | 
    
         
            -
             
     | 
| 
       1510 
     | 
    
         
            -
                <span class='kw'> 
     | 
| 
       1511 
     | 
    
         
            -
                  <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       1512 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
      
 1283 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=</span> <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
         
     | 
| 
      
 1284 
     | 
    
         
            +
                <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query_s'>query_s</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span>
         
     | 
| 
      
 1285 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span> <span class='op'>?</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span> <span class='op'>:</span> <span class='id identifier rubyid_rv'>rv</span>
         
     | 
| 
      
 1286 
     | 
    
         
            +
              <span class='kw'>rescue</span> <span class='const'>NoMethodError</span>
         
     | 
| 
      
 1287 
     | 
    
         
            +
                <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       1513 
1288 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       1514 
1289 
     | 
    
         | 
| 
       1515 
     | 
    
         
            -
              <span class=' 
     | 
| 
       1516 
     | 
    
         
            -
             
     | 
| 
       1517 
     | 
    
         
            -
             
     | 
| 
      
 1290 
     | 
    
         
            +
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
      
 1291 
     | 
    
         
            +
             
     | 
| 
      
 1292 
     | 
    
         
            +
              <span class='comment'># Executes a parsed query
         
     | 
| 
       1518 
1293 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       1519 
     | 
    
         
            -
            </span>  <span class='comment'># @ 
     | 
| 
       1520 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       1521 
     | 
    
         
            -
             
     | 
| 
      
 1294 
     | 
    
         
            +
            </span>  <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
      
 1295 
     | 
    
         
            +
            </span>  <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
      
 1296 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
      
 1297 
     | 
    
         
            +
                <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
      
 1298 
     | 
    
         
            +
                  <span class='kw'>break</span> <span class='kw'>unless</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
      
 1299 
     | 
    
         
            +
                  <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
      
 1300 
     | 
    
         
            +
                <span class='rbrace'>}</span>
         
     | 
| 
       1522 
1301 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       1523 
     | 
    
         
            -
             
     | 
| 
       1524 
     | 
    
         
            -
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
       1525 
     | 
    
         
            -
                <span class='comment'># Parse query, getting all arguments.
         
     | 
| 
       1526 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1527 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [String] The query to issue. Use `__` to separate query and `_` in place of `.` in the version.
         
     | 
| 
       1528 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       1529 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       1530 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(_(v|on|is))</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> \\2</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_part'>part</span><span class='op'>|</span>
         
     | 
| 
       1531 
     | 
    
         
            -
                    <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       1532 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       1533 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1534 
     | 
    
         
            -
             
     | 
| 
       1535 
     | 
    
         
            -
                <span class='comment'># Handles a part of a query.
         
     | 
| 
       1536 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1537 
     | 
    
         
            -
            </span>    <span class='comment'># @param part [String] A part of a query.
         
     | 
| 
       1538 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       1539 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       1540 
     | 
    
         
            -
                  <span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_part'>part</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='int'>2</span><span class='rparen'>)</span>
         
     | 
| 
       1541 
     | 
    
         
            -
             
     | 
| 
       1542 
     | 
    
         
            -
                  <span class='kw'>if</span> <span class='id identifier rubyid_method'>method</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>v</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
         
     | 
| 
       1543 
     | 
    
         
            -
                    <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_arguments'>arguments</span><span class='rparen'>)</span>
         
     | 
| 
       1544 
     | 
    
         
            -
                  <span class='kw'>elsif</span> <span class='op'>!</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>is</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>on</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
         
     | 
| 
       1545 
     | 
    
         
            -
                    <span class='id identifier rubyid_raise'>raise</span> <span class='const'>NoMethodError</span>
         
     | 
| 
       1546 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       1547 
     | 
    
         
            -
             
     | 
| 
       1548 
     | 
    
         
            -
                  <span class='lbracket'>[</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span><span class='rbracket'>]</span>
         
     | 
| 
       1549 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1550 
     | 
    
         
            -
             
     | 
| 
       1551 
     | 
    
         
            -
                <span class='comment'># Parses the version for a query.
         
     | 
| 
       1552 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1553 
     | 
    
         
            -
            </span>    <span class='comment'># @param version [String] The version to parse.
         
     | 
| 
       1554 
     | 
    
         
            -
            </span>    <span class='comment'># @return [String] The parsed version.
         
     | 
| 
       1555 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span>
         
     | 
| 
       1556 
     | 
    
         
            -
                  <span class='lbracket'>[</span>
         
     | 
| 
       1557 
     | 
    
         
            -
                    <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?eq_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> == </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse ==
         
     | 
| 
       1558 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> <= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <=
         
     | 
| 
       1559 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> >= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >=
         
     | 
| 
       1560 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> < </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <
         
     | 
| 
       1561 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> > </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >
         
     | 
| 
       1562 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?and_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> && </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse &&
         
     | 
| 
       1563 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>.</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Dot notation
         
     | 
| 
       1564 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s+</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
         
     | 
| 
       1565 
     | 
    
         
            -
                  <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_current'>current</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='op'>|</span> <span class='id identifier rubyid_current'>current</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
         
     | 
| 
       1566 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1567 
     | 
    
         
            -
             
     | 
| 
       1568 
     | 
    
         
            -
                <span class='comment'># Executes a parsed query
         
     | 
| 
       1569 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1570 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       1571 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
       1572 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       1573 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
       1574 
     | 
    
         
            -
                    <span class='kw'>break</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
       1575 
     | 
    
         
            -
                    <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
       1576 
     | 
    
         
            -
                  <span class='rbrace'>}</span>
         
     | 
| 
       1577 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1578 
1302 
     | 
    
         
             
            <span class='kw'>end</span></pre>
         
     | 
| 
       1579 
1303 
     | 
    
         
             
                </td>
         
     | 
| 
       1580 
1304 
     | 
    
         
             
              </tr>
         
     | 
| 
         @@ -1625,135 +1349,92 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1625 
1349 
     | 
    
         
             
                  <pre class="lines">
         
     | 
| 
       1626 
1350 
     | 
    
         | 
| 
       1627 
1351 
     | 
    
         | 
| 
       1628 
     | 
    
         
            -
             
     | 
| 
       1629 
     | 
    
         
            -
             
     | 
| 
       1630 
     | 
    
         
            -
             
     | 
| 
       1631 
     | 
    
         
            -
             
     | 
| 
       1632 
     | 
    
         
            -
             
     | 
| 
       1633 
     | 
    
         
            -
             
     | 
| 
       1634 
     | 
    
         
            -
             
     | 
| 
       1635 
     | 
    
         
            -
             
     | 
| 
       1636 
     | 
    
         
            -
             
     | 
| 
       1637 
     | 
    
         
            -
             
     | 
| 
       1638 
     | 
    
         
            -
             
     | 
| 
       1639 
     | 
    
         
            -
             
     | 
| 
       1640 
     | 
    
         
            -
             
     | 
| 
       1641 
     | 
    
         
            -
             
     | 
| 
       1642 
     | 
    
         
            -
             
     | 
| 
       1643 
     | 
    
         
            -
             
     | 
| 
       1644 
     | 
    
         
            -
             
     | 
| 
       1645 
     | 
    
         
            -
             
     | 
| 
       1646 
     | 
    
         
            -
             
     | 
| 
       1647 
     | 
    
         
            -
             
     | 
| 
       1648 
     | 
    
         
            -
             
     | 
| 
       1649 
     | 
    
         
            -
             
     | 
| 
       1650 
     | 
    
         
            -
             
     | 
| 
       1651 
     | 
    
         
            -
             
     | 
| 
       1652 
     | 
    
         
            -
             
     | 
| 
       1653 
     | 
    
         
            -
             
     | 
| 
       1654 
     | 
    
         
            -
             
     | 
| 
       1655 
     | 
    
         
            -
             
     | 
| 
       1656 
     | 
    
         
            -
             
     | 
| 
       1657 
     | 
    
         
            -
             
     | 
| 
       1658 
     | 
    
         
            -
             
     | 
| 
       1659 
     | 
    
         
            -
             
     | 
| 
       1660 
     | 
    
         
            -
             
     | 
| 
       1661 
     | 
    
         
            -
             
     | 
| 
       1662 
     | 
    
         
            -
             
     | 
| 
       1663 
     | 
    
         
            -
             
     | 
| 
       1664 
     | 
    
         
            -
             
     | 
| 
       1665 
     | 
    
         
            -
             
     | 
| 
       1666 
     | 
    
         
            -
             
     | 
| 
       1667 
     | 
    
         
            -
             
     | 
| 
       1668 
     | 
    
         
            -
             
     | 
| 
       1669 
     | 
    
         
            -
             
     | 
| 
       1670 
     | 
    
         
            -
             
     | 
| 
       1671 
     | 
    
         
            -
             
     | 
| 
       1672 
     | 
    
         
            -
             
     | 
| 
       1673 
     | 
    
         
            -
             
     | 
| 
       1674 
     | 
    
         
            -
             
     | 
| 
       1675 
     | 
    
         
            -
             
     | 
| 
       1676 
     | 
    
         
            -
             
     | 
| 
       1677 
     | 
    
         
            -
             
     | 
| 
       1678 
     | 
    
         
            -
             
     | 
| 
       1679 
     | 
    
         
            -
             
     | 
| 
       1680 
     | 
    
         
            -
             
     | 
| 
       1681 
     | 
    
         
            -
             
     | 
| 
       1682 
     | 
    
         
            -
             
     | 
| 
       1683 
     | 
    
         
            -
             
     | 
| 
       1684 
     | 
    
         
            -
             
     | 
| 
       1685 
     | 
    
         
            -
             
     | 
| 
       1686 
     | 
    
         
            -
             
     | 
| 
       1687 
     | 
    
         
            -
             
     | 
| 
       1688 
     | 
    
         
            -
             
     | 
| 
       1689 
     | 
    
         
            -
             
     | 
| 
       1690 
     | 
    
         
            -
             
     | 
| 
       1691 
     | 
    
         
            -
             
     | 
| 
       1692 
     | 
    
         
            -
             
     | 
| 
       1693 
     | 
    
         
            -
             
     | 
| 
       1694 
     | 
    
         
            -
             
     | 
| 
       1695 
     | 
    
         
            -
             
     | 
| 
       1696 
     | 
    
         
            -
             
     | 
| 
       1697 
     | 
    
         
            -
             
     | 
| 
       1698 
     | 
    
         
            -
             
     | 
| 
       1699 
     | 
    
         
            -
             
     | 
| 
       1700 
     | 
    
         
            -
             
     | 
| 
       1701 
     | 
    
         
            -
             
     | 
| 
       1702 
     | 
    
         
            -
             
     | 
| 
       1703 
     | 
    
         
            -
             
     | 
| 
       1704 
     | 
    
         
            -
             
     | 
| 
       1705 
     | 
    
         
            -
             
     | 
| 
       1706 
     | 
    
         
            -
             
     | 
| 
       1707 
     | 
    
         
            -
             
     | 
| 
       1708 
     | 
    
         
            -
             
     | 
| 
       1709 
     | 
    
         
            -
             
     | 
| 
       1710 
     | 
    
         
            -
             
     | 
| 
       1711 
     | 
    
         
            -
            770
         
     | 
| 
       1712 
     | 
    
         
            -
            771
         
     | 
| 
       1713 
     | 
    
         
            -
            772
         
     | 
| 
       1714 
     | 
    
         
            -
            773
         
     | 
| 
       1715 
     | 
    
         
            -
            774
         
     | 
| 
       1716 
     | 
    
         
            -
            775
         
     | 
| 
       1717 
     | 
    
         
            -
            776
         
     | 
| 
       1718 
     | 
    
         
            -
            777
         
     | 
| 
       1719 
     | 
    
         
            -
            778
         
     | 
| 
       1720 
     | 
    
         
            -
            779
         
     | 
| 
       1721 
     | 
    
         
            -
            780
         
     | 
| 
       1722 
     | 
    
         
            -
            781
         
     | 
| 
       1723 
     | 
    
         
            -
            782
         
     | 
| 
       1724 
     | 
    
         
            -
            783
         
     | 
| 
       1725 
     | 
    
         
            -
            784
         
     | 
| 
       1726 
     | 
    
         
            -
            785
         
     | 
| 
       1727 
     | 
    
         
            -
            786
         
     | 
| 
       1728 
     | 
    
         
            -
            787
         
     | 
| 
       1729 
     | 
    
         
            -
            788
         
     | 
| 
       1730 
     | 
    
         
            -
            789
         
     | 
| 
       1731 
     | 
    
         
            -
            790
         
     | 
| 
       1732 
     | 
    
         
            -
            791
         
     | 
| 
       1733 
     | 
    
         
            -
            792
         
     | 
| 
       1734 
     | 
    
         
            -
            793
         
     | 
| 
       1735 
     | 
    
         
            -
            794
         
     | 
| 
       1736 
     | 
    
         
            -
            795
         
     | 
| 
       1737 
     | 
    
         
            -
            796
         
     | 
| 
       1738 
     | 
    
         
            -
            797
         
     | 
| 
       1739 
     | 
    
         
            -
            798
         
     | 
| 
       1740 
     | 
    
         
            -
            799
         
     | 
| 
       1741 
     | 
    
         
            -
            800
         
     | 
| 
       1742 
     | 
    
         
            -
            801
         
     | 
| 
       1743 
     | 
    
         
            -
            802
         
     | 
| 
       1744 
     | 
    
         
            -
            803
         
     | 
| 
       1745 
     | 
    
         
            -
            804
         
     | 
| 
       1746 
     | 
    
         
            -
            805
         
     | 
| 
       1747 
     | 
    
         
            -
            806
         
     | 
| 
       1748 
     | 
    
         
            -
            807
         
     | 
| 
       1749 
     | 
    
         
            -
            808
         
     | 
| 
       1750 
     | 
    
         
            -
            809
         
     | 
| 
       1751 
     | 
    
         
            -
            810
         
     | 
| 
       1752 
     | 
    
         
            -
            811
         
     | 
| 
       1753 
     | 
    
         
            -
            812</pre>
         
     | 
| 
      
 1352 
     | 
    
         
            +
            23
         
     | 
| 
      
 1353 
     | 
    
         
            +
            24
         
     | 
| 
      
 1354 
     | 
    
         
            +
            25
         
     | 
| 
      
 1355 
     | 
    
         
            +
            26
         
     | 
| 
      
 1356 
     | 
    
         
            +
            27
         
     | 
| 
      
 1357 
     | 
    
         
            +
            28
         
     | 
| 
      
 1358 
     | 
    
         
            +
            29
         
     | 
| 
      
 1359 
     | 
    
         
            +
            30
         
     | 
| 
      
 1360 
     | 
    
         
            +
            31
         
     | 
| 
      
 1361 
     | 
    
         
            +
            32
         
     | 
| 
      
 1362 
     | 
    
         
            +
            33
         
     | 
| 
      
 1363 
     | 
    
         
            +
            34
         
     | 
| 
      
 1364 
     | 
    
         
            +
            35
         
     | 
| 
      
 1365 
     | 
    
         
            +
            36
         
     | 
| 
      
 1366 
     | 
    
         
            +
            37
         
     | 
| 
      
 1367 
     | 
    
         
            +
            38
         
     | 
| 
      
 1368 
     | 
    
         
            +
            39
         
     | 
| 
      
 1369 
     | 
    
         
            +
            40
         
     | 
| 
      
 1370 
     | 
    
         
            +
            41
         
     | 
| 
      
 1371 
     | 
    
         
            +
            42
         
     | 
| 
      
 1372 
     | 
    
         
            +
            43
         
     | 
| 
      
 1373 
     | 
    
         
            +
            44
         
     | 
| 
      
 1374 
     | 
    
         
            +
            45
         
     | 
| 
      
 1375 
     | 
    
         
            +
            46
         
     | 
| 
      
 1376 
     | 
    
         
            +
            47
         
     | 
| 
      
 1377 
     | 
    
         
            +
            48
         
     | 
| 
      
 1378 
     | 
    
         
            +
            49
         
     | 
| 
      
 1379 
     | 
    
         
            +
            50
         
     | 
| 
      
 1380 
     | 
    
         
            +
            51
         
     | 
| 
      
 1381 
     | 
    
         
            +
            52
         
     | 
| 
      
 1382 
     | 
    
         
            +
            53
         
     | 
| 
      
 1383 
     | 
    
         
            +
            54
         
     | 
| 
      
 1384 
     | 
    
         
            +
            55
         
     | 
| 
      
 1385 
     | 
    
         
            +
            56
         
     | 
| 
      
 1386 
     | 
    
         
            +
            57
         
     | 
| 
      
 1387 
     | 
    
         
            +
            58
         
     | 
| 
      
 1388 
     | 
    
         
            +
            59
         
     | 
| 
      
 1389 
     | 
    
         
            +
            60
         
     | 
| 
      
 1390 
     | 
    
         
            +
            61
         
     | 
| 
      
 1391 
     | 
    
         
            +
            62
         
     | 
| 
      
 1392 
     | 
    
         
            +
            63
         
     | 
| 
      
 1393 
     | 
    
         
            +
            64
         
     | 
| 
      
 1394 
     | 
    
         
            +
            65
         
     | 
| 
      
 1395 
     | 
    
         
            +
            66
         
     | 
| 
      
 1396 
     | 
    
         
            +
            67
         
     | 
| 
      
 1397 
     | 
    
         
            +
            68
         
     | 
| 
      
 1398 
     | 
    
         
            +
            69
         
     | 
| 
      
 1399 
     | 
    
         
            +
            70
         
     | 
| 
      
 1400 
     | 
    
         
            +
            71
         
     | 
| 
      
 1401 
     | 
    
         
            +
            72
         
     | 
| 
      
 1402 
     | 
    
         
            +
            73
         
     | 
| 
      
 1403 
     | 
    
         
            +
            74
         
     | 
| 
      
 1404 
     | 
    
         
            +
            75
         
     | 
| 
      
 1405 
     | 
    
         
            +
            76
         
     | 
| 
      
 1406 
     | 
    
         
            +
            77
         
     | 
| 
      
 1407 
     | 
    
         
            +
            78
         
     | 
| 
      
 1408 
     | 
    
         
            +
            79
         
     | 
| 
      
 1409 
     | 
    
         
            +
            80
         
     | 
| 
      
 1410 
     | 
    
         
            +
            81
         
     | 
| 
      
 1411 
     | 
    
         
            +
            82
         
     | 
| 
      
 1412 
     | 
    
         
            +
            83
         
     | 
| 
      
 1413 
     | 
    
         
            +
            84
         
     | 
| 
      
 1414 
     | 
    
         
            +
            85
         
     | 
| 
      
 1415 
     | 
    
         
            +
            86
         
     | 
| 
      
 1416 
     | 
    
         
            +
            87
         
     | 
| 
      
 1417 
     | 
    
         
            +
            88
         
     | 
| 
      
 1418 
     | 
    
         
            +
            89
         
     | 
| 
      
 1419 
     | 
    
         
            +
            90
         
     | 
| 
      
 1420 
     | 
    
         
            +
            91
         
     | 
| 
      
 1421 
     | 
    
         
            +
            92
         
     | 
| 
      
 1422 
     | 
    
         
            +
            93
         
     | 
| 
      
 1423 
     | 
    
         
            +
            94
         
     | 
| 
      
 1424 
     | 
    
         
            +
            95
         
     | 
| 
      
 1425 
     | 
    
         
            +
            96
         
     | 
| 
      
 1426 
     | 
    
         
            +
            97
         
     | 
| 
      
 1427 
     | 
    
         
            +
            98
         
     | 
| 
      
 1428 
     | 
    
         
            +
            99
         
     | 
| 
      
 1429 
     | 
    
         
            +
            100
         
     | 
| 
      
 1430 
     | 
    
         
            +
            101
         
     | 
| 
      
 1431 
     | 
    
         
            +
            102
         
     | 
| 
      
 1432 
     | 
    
         
            +
            103
         
     | 
| 
      
 1433 
     | 
    
         
            +
            104
         
     | 
| 
      
 1434 
     | 
    
         
            +
            105</pre>
         
     | 
| 
       1754 
1435 
     | 
    
         
             
                </td>
         
     | 
| 
       1755 
1436 
     | 
    
         
             
                <td>
         
     | 
| 
       1756 
     | 
    
         
            -
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line  
     | 
| 
      
 1437 
     | 
    
         
            +
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line 23</span>
         
     | 
| 
       1757 
1438 
     | 
    
         | 
| 
       1758 
1439 
     | 
    
         
             
            <span class='kw'>class</span> <span class='const'>Browser</span>
         
     | 
| 
       1759 
1440 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:agent</span>
         
     | 
| 
         @@ -1764,15 +1445,15 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1764 
1445 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:platform</span>
         
     | 
| 
       1765 
1446 
     | 
    
         | 
| 
       1766 
1447 
     | 
    
         
             
              <span class='comment'># Aliases
         
     | 
| 
       1767 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       1768 
     | 
    
         
            -
              <span class='kw'>alias</span> <span class='symbol'>:ua=</span> <span class='symbol'>:agent=</span>
         
     | 
| 
      
 1448 
     | 
    
         
            +
            </span>  <span class='id identifier rubyid_alias_attribute'>alias_attribute</span> <span class='symbol'>:ua</span><span class='comma'>,</span> <span class='symbol'>:agent</span>
         
     | 
| 
       1769 
1449 
     | 
    
         | 
| 
       1770 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1771 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1772 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1773 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1774 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       1775 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
      
 1450 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>General</span>
         
     | 
| 
      
 1451 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Attributes</span>
         
     | 
| 
      
 1452 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>DefaultDefinitions</span>
         
     | 
| 
      
 1453 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Register</span>
         
     | 
| 
      
 1454 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Parsing</span>
         
     | 
| 
      
 1455 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>PartialQuerying</span>
         
     | 
| 
      
 1456 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Querying</span>
         
     | 
| 
       1776 
1457 
     | 
    
         | 
| 
       1777 
1458 
     | 
    
         
             
              <span class='comment'># Creates a new browser.
         
     | 
| 
       1778 
1459 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
         @@ -1790,6 +1471,16 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1790 
1471 
     | 
    
         
             
                <span class='id identifier rubyid_parse_agent'>parse_agent</span><span class='lparen'>(</span><span class='ivar'>@agent</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@agent</span>
         
     | 
| 
       1791 
1472 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       1792 
1473 
     | 
    
         | 
| 
      
 1474 
     | 
    
         
            +
              <span class='comment'># Get the current browser version (if called without arguments) or checks if the browser is a specific version.
         
     | 
| 
      
 1475 
     | 
    
         
            +
            </span>  <span class='comment'>#
         
     | 
| 
      
 1476 
     | 
    
         
            +
            </span>  <span class='comment'># @see #is_version
         
     | 
| 
      
 1477 
     | 
    
         
            +
            </span>  <span class='comment'># @param versions [String|Hash] A string in the form `operator version && ...` (example: `>= 7 && < 4`) or an hash with specific version to match against,
         
     | 
| 
      
 1478 
     | 
    
         
            +
            </span>  <span class='comment'>#   in form `{:operator => version}`, where operator is one of `:lt, :lte, :eq, :gt, :gte`.
         
     | 
| 
      
 1479 
     | 
    
         
            +
            </span>  <span class='comment'># @return [String|Query] The browser version or a query which can evaluated for concatenation or result.
         
     | 
| 
      
 1480 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
         
     | 
| 
      
 1481 
     | 
    
         
            +
                <span class='op'>!</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>?</span> <span class='ivar'>@version</span> <span class='op'>:</span> <span class='id identifier rubyid_version_equals_to'>version_equals_to</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span><span class='rparen'>)</span>
         
     | 
| 
      
 1482 
     | 
    
         
            +
              <span class='kw'>end</span>
         
     | 
| 
      
 1483 
     | 
    
         
            +
             
     | 
| 
       1793 
1484 
     | 
    
         
             
              <span class='comment'># This method enables the use of dynamic queries in just one method.
         
     | 
| 
       1794 
1485 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       1795 
1486 
     | 
    
         
             
            </span>  <span class='comment'># For example:
         
     | 
| 
         @@ -1808,78 +1499,25 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1808 
1499 
     | 
    
         
             
            </span>  <span class='comment'># @param block [Proc] A block to pass to the method. Unused from the query.
         
     | 
| 
       1809 
1500 
     | 
    
         
             
            </span>  <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       1810 
1501 
     | 
    
         
             
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       1811 
     | 
    
         
            -
                <span class=' 
     | 
| 
       1812 
     | 
    
         
            -
             
     | 
| 
       1813 
     | 
    
         
            -
             
     | 
| 
       1814 
     | 
    
         
            -
             
     | 
| 
       1815 
     | 
    
         
            -
                <span class='kw'> 
     | 
| 
       1816 
     | 
    
         
            -
                  <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       1817 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
      
 1502 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=</span> <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
         
     | 
| 
      
 1503 
     | 
    
         
            +
                <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query_s'>query_s</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span>
         
     | 
| 
      
 1504 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span> <span class='op'>?</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span> <span class='op'>:</span> <span class='id identifier rubyid_rv'>rv</span>
         
     | 
| 
      
 1505 
     | 
    
         
            +
              <span class='kw'>rescue</span> <span class='const'>NoMethodError</span>
         
     | 
| 
      
 1506 
     | 
    
         
            +
                <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       1818 
1507 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       1819 
1508 
     | 
    
         | 
| 
       1820 
     | 
    
         
            -
              <span class=' 
     | 
| 
       1821 
     | 
    
         
            -
             
     | 
| 
       1822 
     | 
    
         
            -
             
     | 
| 
      
 1509 
     | 
    
         
            +
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
      
 1510 
     | 
    
         
            +
             
     | 
| 
      
 1511 
     | 
    
         
            +
              <span class='comment'># Executes a parsed query
         
     | 
| 
       1823 
1512 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       1824 
     | 
    
         
            -
            </span>  <span class='comment'># @ 
     | 
| 
       1825 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       1826 
     | 
    
         
            -
             
     | 
| 
      
 1513 
     | 
    
         
            +
            </span>  <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
      
 1514 
     | 
    
         
            +
            </span>  <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
      
 1515 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
      
 1516 
     | 
    
         
            +
                <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
      
 1517 
     | 
    
         
            +
                  <span class='kw'>break</span> <span class='kw'>unless</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
      
 1518 
     | 
    
         
            +
                  <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
      
 1519 
     | 
    
         
            +
                <span class='rbrace'>}</span>
         
     | 
| 
       1827 
1520 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       1828 
     | 
    
         
            -
             
     | 
| 
       1829 
     | 
    
         
            -
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
       1830 
     | 
    
         
            -
                <span class='comment'># Parse query, getting all arguments.
         
     | 
| 
       1831 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1832 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [String] The query to issue. Use `__` to separate query and `_` in place of `.` in the version.
         
     | 
| 
       1833 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       1834 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       1835 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(_(v|on|is))</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> \\2</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_part'>part</span><span class='op'>|</span>
         
     | 
| 
       1836 
     | 
    
         
            -
                    <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       1837 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       1838 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1839 
     | 
    
         
            -
             
     | 
| 
       1840 
     | 
    
         
            -
                <span class='comment'># Handles a part of a query.
         
     | 
| 
       1841 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1842 
     | 
    
         
            -
            </span>    <span class='comment'># @param part [String] A part of a query.
         
     | 
| 
       1843 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       1844 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       1845 
     | 
    
         
            -
                  <span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_part'>part</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='int'>2</span><span class='rparen'>)</span>
         
     | 
| 
       1846 
     | 
    
         
            -
             
     | 
| 
       1847 
     | 
    
         
            -
                  <span class='kw'>if</span> <span class='id identifier rubyid_method'>method</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>v</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
         
     | 
| 
       1848 
     | 
    
         
            -
                    <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_arguments'>arguments</span><span class='rparen'>)</span>
         
     | 
| 
       1849 
     | 
    
         
            -
                  <span class='kw'>elsif</span> <span class='op'>!</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>is</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>on</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
         
     | 
| 
       1850 
     | 
    
         
            -
                    <span class='id identifier rubyid_raise'>raise</span> <span class='const'>NoMethodError</span>
         
     | 
| 
       1851 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       1852 
     | 
    
         
            -
             
     | 
| 
       1853 
     | 
    
         
            -
                  <span class='lbracket'>[</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span><span class='rbracket'>]</span>
         
     | 
| 
       1854 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1855 
     | 
    
         
            -
             
     | 
| 
       1856 
     | 
    
         
            -
                <span class='comment'># Parses the version for a query.
         
     | 
| 
       1857 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1858 
     | 
    
         
            -
            </span>    <span class='comment'># @param version [String] The version to parse.
         
     | 
| 
       1859 
     | 
    
         
            -
            </span>    <span class='comment'># @return [String] The parsed version.
         
     | 
| 
       1860 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span>
         
     | 
| 
       1861 
     | 
    
         
            -
                  <span class='lbracket'>[</span>
         
     | 
| 
       1862 
     | 
    
         
            -
                    <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?eq_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> == </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse ==
         
     | 
| 
       1863 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> <= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <=
         
     | 
| 
       1864 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> >= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >=
         
     | 
| 
       1865 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> < </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <
         
     | 
| 
       1866 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> > </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >
         
     | 
| 
       1867 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?and_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> && </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse &&
         
     | 
| 
       1868 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>.</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Dot notation
         
     | 
| 
       1869 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s+</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
         
     | 
| 
       1870 
     | 
    
         
            -
                  <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_current'>current</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='op'>|</span> <span class='id identifier rubyid_current'>current</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
         
     | 
| 
       1871 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1872 
     | 
    
         
            -
             
     | 
| 
       1873 
     | 
    
         
            -
                <span class='comment'># Executes a parsed query
         
     | 
| 
       1874 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       1875 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       1876 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
       1877 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       1878 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
       1879 
     | 
    
         
            -
                    <span class='kw'>break</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
       1880 
     | 
    
         
            -
                    <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
       1881 
     | 
    
         
            -
                  <span class='rbrace'>}</span>
         
     | 
| 
       1882 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       1883 
1521 
     | 
    
         
             
            <span class='kw'>end</span></pre>
         
     | 
| 
       1884 
1522 
     | 
    
         
             
                </td>
         
     | 
| 
       1885 
1523 
     | 
    
         
             
              </tr>
         
     | 
| 
         @@ -1930,135 +1568,92 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       1930 
1568 
     | 
    
         
             
                  <pre class="lines">
         
     | 
| 
       1931 
1569 
     | 
    
         | 
| 
       1932 
1570 
     | 
    
         | 
| 
       1933 
     | 
    
         
            -
             
     | 
| 
       1934 
     | 
    
         
            -
             
     | 
| 
       1935 
     | 
    
         
            -
             
     | 
| 
       1936 
     | 
    
         
            -
             
     | 
| 
       1937 
     | 
    
         
            -
             
     | 
| 
       1938 
     | 
    
         
            -
             
     | 
| 
       1939 
     | 
    
         
            -
             
     | 
| 
       1940 
     | 
    
         
            -
             
     | 
| 
       1941 
     | 
    
         
            -
             
     | 
| 
       1942 
     | 
    
         
            -
             
     | 
| 
       1943 
     | 
    
         
            -
             
     | 
| 
       1944 
     | 
    
         
            -
             
     | 
| 
       1945 
     | 
    
         
            -
             
     | 
| 
       1946 
     | 
    
         
            -
             
     | 
| 
       1947 
     | 
    
         
            -
             
     | 
| 
       1948 
     | 
    
         
            -
             
     | 
| 
       1949 
     | 
    
         
            -
             
     | 
| 
       1950 
     | 
    
         
            -
             
     | 
| 
       1951 
     | 
    
         
            -
             
     | 
| 
       1952 
     | 
    
         
            -
             
     | 
| 
       1953 
     | 
    
         
            -
             
     | 
| 
       1954 
     | 
    
         
            -
             
     | 
| 
       1955 
     | 
    
         
            -
             
     | 
| 
       1956 
     | 
    
         
            -
             
     | 
| 
       1957 
     | 
    
         
            -
             
     | 
| 
       1958 
     | 
    
         
            -
             
     | 
| 
       1959 
     | 
    
         
            -
             
     | 
| 
       1960 
     | 
    
         
            -
             
     | 
| 
       1961 
     | 
    
         
            -
             
     | 
| 
       1962 
     | 
    
         
            -
             
     | 
| 
       1963 
     | 
    
         
            -
             
     | 
| 
       1964 
     | 
    
         
            -
             
     | 
| 
       1965 
     | 
    
         
            -
             
     | 
| 
       1966 
     | 
    
         
            -
             
     | 
| 
       1967 
     | 
    
         
            -
             
     | 
| 
       1968 
     | 
    
         
            -
             
     | 
| 
       1969 
     | 
    
         
            -
             
     | 
| 
       1970 
     | 
    
         
            -
             
     | 
| 
       1971 
     | 
    
         
            -
             
     | 
| 
       1972 
     | 
    
         
            -
             
     | 
| 
       1973 
     | 
    
         
            -
             
     | 
| 
       1974 
     | 
    
         
            -
             
     | 
| 
       1975 
     | 
    
         
            -
             
     | 
| 
       1976 
     | 
    
         
            -
             
     | 
| 
       1977 
     | 
    
         
            -
             
     | 
| 
       1978 
     | 
    
         
            -
             
     | 
| 
       1979 
     | 
    
         
            -
             
     | 
| 
       1980 
     | 
    
         
            -
             
     | 
| 
       1981 
     | 
    
         
            -
             
     | 
| 
       1982 
     | 
    
         
            -
             
     | 
| 
       1983 
     | 
    
         
            -
             
     | 
| 
       1984 
     | 
    
         
            -
             
     | 
| 
       1985 
     | 
    
         
            -
             
     | 
| 
       1986 
     | 
    
         
            -
             
     | 
| 
       1987 
     | 
    
         
            -
             
     | 
| 
       1988 
     | 
    
         
            -
             
     | 
| 
       1989 
     | 
    
         
            -
             
     | 
| 
       1990 
     | 
    
         
            -
             
     | 
| 
       1991 
     | 
    
         
            -
             
     | 
| 
       1992 
     | 
    
         
            -
             
     | 
| 
       1993 
     | 
    
         
            -
             
     | 
| 
       1994 
     | 
    
         
            -
             
     | 
| 
       1995 
     | 
    
         
            -
             
     | 
| 
       1996 
     | 
    
         
            -
             
     | 
| 
       1997 
     | 
    
         
            -
             
     | 
| 
       1998 
     | 
    
         
            -
             
     | 
| 
       1999 
     | 
    
         
            -
             
     | 
| 
       2000 
     | 
    
         
            -
             
     | 
| 
       2001 
     | 
    
         
            -
             
     | 
| 
       2002 
     | 
    
         
            -
             
     | 
| 
       2003 
     | 
    
         
            -
             
     | 
| 
       2004 
     | 
    
         
            -
             
     | 
| 
       2005 
     | 
    
         
            -
             
     | 
| 
       2006 
     | 
    
         
            -
             
     | 
| 
       2007 
     | 
    
         
            -
             
     | 
| 
       2008 
     | 
    
         
            -
             
     | 
| 
       2009 
     | 
    
         
            -
             
     | 
| 
       2010 
     | 
    
         
            -
             
     | 
| 
       2011 
     | 
    
         
            -
             
     | 
| 
       2012 
     | 
    
         
            -
             
     | 
| 
       2013 
     | 
    
         
            -
             
     | 
| 
       2014 
     | 
    
         
            -
             
     | 
| 
       2015 
     | 
    
         
            -
             
     | 
| 
       2016 
     | 
    
         
            -
            770
         
     | 
| 
       2017 
     | 
    
         
            -
            771
         
     | 
| 
       2018 
     | 
    
         
            -
            772
         
     | 
| 
       2019 
     | 
    
         
            -
            773
         
     | 
| 
       2020 
     | 
    
         
            -
            774
         
     | 
| 
       2021 
     | 
    
         
            -
            775
         
     | 
| 
       2022 
     | 
    
         
            -
            776
         
     | 
| 
       2023 
     | 
    
         
            -
            777
         
     | 
| 
       2024 
     | 
    
         
            -
            778
         
     | 
| 
       2025 
     | 
    
         
            -
            779
         
     | 
| 
       2026 
     | 
    
         
            -
            780
         
     | 
| 
       2027 
     | 
    
         
            -
            781
         
     | 
| 
       2028 
     | 
    
         
            -
            782
         
     | 
| 
       2029 
     | 
    
         
            -
            783
         
     | 
| 
       2030 
     | 
    
         
            -
            784
         
     | 
| 
       2031 
     | 
    
         
            -
            785
         
     | 
| 
       2032 
     | 
    
         
            -
            786
         
     | 
| 
       2033 
     | 
    
         
            -
            787
         
     | 
| 
       2034 
     | 
    
         
            -
            788
         
     | 
| 
       2035 
     | 
    
         
            -
            789
         
     | 
| 
       2036 
     | 
    
         
            -
            790
         
     | 
| 
       2037 
     | 
    
         
            -
            791
         
     | 
| 
       2038 
     | 
    
         
            -
            792
         
     | 
| 
       2039 
     | 
    
         
            -
            793
         
     | 
| 
       2040 
     | 
    
         
            -
            794
         
     | 
| 
       2041 
     | 
    
         
            -
            795
         
     | 
| 
       2042 
     | 
    
         
            -
            796
         
     | 
| 
       2043 
     | 
    
         
            -
            797
         
     | 
| 
       2044 
     | 
    
         
            -
            798
         
     | 
| 
       2045 
     | 
    
         
            -
            799
         
     | 
| 
       2046 
     | 
    
         
            -
            800
         
     | 
| 
       2047 
     | 
    
         
            -
            801
         
     | 
| 
       2048 
     | 
    
         
            -
            802
         
     | 
| 
       2049 
     | 
    
         
            -
            803
         
     | 
| 
       2050 
     | 
    
         
            -
            804
         
     | 
| 
       2051 
     | 
    
         
            -
            805
         
     | 
| 
       2052 
     | 
    
         
            -
            806
         
     | 
| 
       2053 
     | 
    
         
            -
            807
         
     | 
| 
       2054 
     | 
    
         
            -
            808
         
     | 
| 
       2055 
     | 
    
         
            -
            809
         
     | 
| 
       2056 
     | 
    
         
            -
            810
         
     | 
| 
       2057 
     | 
    
         
            -
            811
         
     | 
| 
       2058 
     | 
    
         
            -
            812</pre>
         
     | 
| 
      
 1571 
     | 
    
         
            +
            23
         
     | 
| 
      
 1572 
     | 
    
         
            +
            24
         
     | 
| 
      
 1573 
     | 
    
         
            +
            25
         
     | 
| 
      
 1574 
     | 
    
         
            +
            26
         
     | 
| 
      
 1575 
     | 
    
         
            +
            27
         
     | 
| 
      
 1576 
     | 
    
         
            +
            28
         
     | 
| 
      
 1577 
     | 
    
         
            +
            29
         
     | 
| 
      
 1578 
     | 
    
         
            +
            30
         
     | 
| 
      
 1579 
     | 
    
         
            +
            31
         
     | 
| 
      
 1580 
     | 
    
         
            +
            32
         
     | 
| 
      
 1581 
     | 
    
         
            +
            33
         
     | 
| 
      
 1582 
     | 
    
         
            +
            34
         
     | 
| 
      
 1583 
     | 
    
         
            +
            35
         
     | 
| 
      
 1584 
     | 
    
         
            +
            36
         
     | 
| 
      
 1585 
     | 
    
         
            +
            37
         
     | 
| 
      
 1586 
     | 
    
         
            +
            38
         
     | 
| 
      
 1587 
     | 
    
         
            +
            39
         
     | 
| 
      
 1588 
     | 
    
         
            +
            40
         
     | 
| 
      
 1589 
     | 
    
         
            +
            41
         
     | 
| 
      
 1590 
     | 
    
         
            +
            42
         
     | 
| 
      
 1591 
     | 
    
         
            +
            43
         
     | 
| 
      
 1592 
     | 
    
         
            +
            44
         
     | 
| 
      
 1593 
     | 
    
         
            +
            45
         
     | 
| 
      
 1594 
     | 
    
         
            +
            46
         
     | 
| 
      
 1595 
     | 
    
         
            +
            47
         
     | 
| 
      
 1596 
     | 
    
         
            +
            48
         
     | 
| 
      
 1597 
     | 
    
         
            +
            49
         
     | 
| 
      
 1598 
     | 
    
         
            +
            50
         
     | 
| 
      
 1599 
     | 
    
         
            +
            51
         
     | 
| 
      
 1600 
     | 
    
         
            +
            52
         
     | 
| 
      
 1601 
     | 
    
         
            +
            53
         
     | 
| 
      
 1602 
     | 
    
         
            +
            54
         
     | 
| 
      
 1603 
     | 
    
         
            +
            55
         
     | 
| 
      
 1604 
     | 
    
         
            +
            56
         
     | 
| 
      
 1605 
     | 
    
         
            +
            57
         
     | 
| 
      
 1606 
     | 
    
         
            +
            58
         
     | 
| 
      
 1607 
     | 
    
         
            +
            59
         
     | 
| 
      
 1608 
     | 
    
         
            +
            60
         
     | 
| 
      
 1609 
     | 
    
         
            +
            61
         
     | 
| 
      
 1610 
     | 
    
         
            +
            62
         
     | 
| 
      
 1611 
     | 
    
         
            +
            63
         
     | 
| 
      
 1612 
     | 
    
         
            +
            64
         
     | 
| 
      
 1613 
     | 
    
         
            +
            65
         
     | 
| 
      
 1614 
     | 
    
         
            +
            66
         
     | 
| 
      
 1615 
     | 
    
         
            +
            67
         
     | 
| 
      
 1616 
     | 
    
         
            +
            68
         
     | 
| 
      
 1617 
     | 
    
         
            +
            69
         
     | 
| 
      
 1618 
     | 
    
         
            +
            70
         
     | 
| 
      
 1619 
     | 
    
         
            +
            71
         
     | 
| 
      
 1620 
     | 
    
         
            +
            72
         
     | 
| 
      
 1621 
     | 
    
         
            +
            73
         
     | 
| 
      
 1622 
     | 
    
         
            +
            74
         
     | 
| 
      
 1623 
     | 
    
         
            +
            75
         
     | 
| 
      
 1624 
     | 
    
         
            +
            76
         
     | 
| 
      
 1625 
     | 
    
         
            +
            77
         
     | 
| 
      
 1626 
     | 
    
         
            +
            78
         
     | 
| 
      
 1627 
     | 
    
         
            +
            79
         
     | 
| 
      
 1628 
     | 
    
         
            +
            80
         
     | 
| 
      
 1629 
     | 
    
         
            +
            81
         
     | 
| 
      
 1630 
     | 
    
         
            +
            82
         
     | 
| 
      
 1631 
     | 
    
         
            +
            83
         
     | 
| 
      
 1632 
     | 
    
         
            +
            84
         
     | 
| 
      
 1633 
     | 
    
         
            +
            85
         
     | 
| 
      
 1634 
     | 
    
         
            +
            86
         
     | 
| 
      
 1635 
     | 
    
         
            +
            87
         
     | 
| 
      
 1636 
     | 
    
         
            +
            88
         
     | 
| 
      
 1637 
     | 
    
         
            +
            89
         
     | 
| 
      
 1638 
     | 
    
         
            +
            90
         
     | 
| 
      
 1639 
     | 
    
         
            +
            91
         
     | 
| 
      
 1640 
     | 
    
         
            +
            92
         
     | 
| 
      
 1641 
     | 
    
         
            +
            93
         
     | 
| 
      
 1642 
     | 
    
         
            +
            94
         
     | 
| 
      
 1643 
     | 
    
         
            +
            95
         
     | 
| 
      
 1644 
     | 
    
         
            +
            96
         
     | 
| 
      
 1645 
     | 
    
         
            +
            97
         
     | 
| 
      
 1646 
     | 
    
         
            +
            98
         
     | 
| 
      
 1647 
     | 
    
         
            +
            99
         
     | 
| 
      
 1648 
     | 
    
         
            +
            100
         
     | 
| 
      
 1649 
     | 
    
         
            +
            101
         
     | 
| 
      
 1650 
     | 
    
         
            +
            102
         
     | 
| 
      
 1651 
     | 
    
         
            +
            103
         
     | 
| 
      
 1652 
     | 
    
         
            +
            104
         
     | 
| 
      
 1653 
     | 
    
         
            +
            105</pre>
         
     | 
| 
       2059 
1654 
     | 
    
         
             
                </td>
         
     | 
| 
       2060 
1655 
     | 
    
         
             
                <td>
         
     | 
| 
       2061 
     | 
    
         
            -
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line  
     | 
| 
      
 1656 
     | 
    
         
            +
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line 23</span>
         
     | 
| 
       2062 
1657 
     | 
    
         | 
| 
       2063 
1658 
     | 
    
         
             
            <span class='kw'>class</span> <span class='const'>Browser</span>
         
     | 
| 
       2064 
1659 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:agent</span>
         
     | 
| 
         @@ -2069,15 +1664,15 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       2069 
1664 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:platform</span>
         
     | 
| 
       2070 
1665 
     | 
    
         | 
| 
       2071 
1666 
     | 
    
         
             
              <span class='comment'># Aliases
         
     | 
| 
       2072 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       2073 
     | 
    
         
            -
              <span class='kw'>alias</span> <span class='symbol'>:ua=</span> <span class='symbol'>:agent=</span>
         
     | 
| 
      
 1667 
     | 
    
         
            +
            </span>  <span class='id identifier rubyid_alias_attribute'>alias_attribute</span> <span class='symbol'>:ua</span><span class='comma'>,</span> <span class='symbol'>:agent</span>
         
     | 
| 
       2074 
1668 
     | 
    
         | 
| 
       2075 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       2076 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       2077 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       2078 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       2079 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       2080 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
      
 1669 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>General</span>
         
     | 
| 
      
 1670 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Attributes</span>
         
     | 
| 
      
 1671 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>DefaultDefinitions</span>
         
     | 
| 
      
 1672 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Register</span>
         
     | 
| 
      
 1673 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Parsing</span>
         
     | 
| 
      
 1674 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>PartialQuerying</span>
         
     | 
| 
      
 1675 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Querying</span>
         
     | 
| 
       2081 
1676 
     | 
    
         | 
| 
       2082 
1677 
     | 
    
         
             
              <span class='comment'># Creates a new browser.
         
     | 
| 
       2083 
1678 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
         @@ -2095,6 +1690,16 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       2095 
1690 
     | 
    
         
             
                <span class='id identifier rubyid_parse_agent'>parse_agent</span><span class='lparen'>(</span><span class='ivar'>@agent</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@agent</span>
         
     | 
| 
       2096 
1691 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       2097 
1692 
     | 
    
         | 
| 
      
 1693 
     | 
    
         
            +
              <span class='comment'># Get the current browser version (if called without arguments) or checks if the browser is a specific version.
         
     | 
| 
      
 1694 
     | 
    
         
            +
            </span>  <span class='comment'>#
         
     | 
| 
      
 1695 
     | 
    
         
            +
            </span>  <span class='comment'># @see #is_version
         
     | 
| 
      
 1696 
     | 
    
         
            +
            </span>  <span class='comment'># @param versions [String|Hash] A string in the form `operator version && ...` (example: `>= 7 && < 4`) or an hash with specific version to match against,
         
     | 
| 
      
 1697 
     | 
    
         
            +
            </span>  <span class='comment'>#   in form `{:operator => version}`, where operator is one of `:lt, :lte, :eq, :gt, :gte`.
         
     | 
| 
      
 1698 
     | 
    
         
            +
            </span>  <span class='comment'># @return [String|Query] The browser version or a query which can evaluated for concatenation or result.
         
     | 
| 
      
 1699 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
         
     | 
| 
      
 1700 
     | 
    
         
            +
                <span class='op'>!</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>?</span> <span class='ivar'>@version</span> <span class='op'>:</span> <span class='id identifier rubyid_version_equals_to'>version_equals_to</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span><span class='rparen'>)</span>
         
     | 
| 
      
 1701 
     | 
    
         
            +
              <span class='kw'>end</span>
         
     | 
| 
      
 1702 
     | 
    
         
            +
             
     | 
| 
       2098 
1703 
     | 
    
         
             
              <span class='comment'># This method enables the use of dynamic queries in just one method.
         
     | 
| 
       2099 
1704 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       2100 
1705 
     | 
    
         
             
            </span>  <span class='comment'># For example:
         
     | 
| 
         @@ -2113,78 +1718,25 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       2113 
1718 
     | 
    
         
             
            </span>  <span class='comment'># @param block [Proc] A block to pass to the method. Unused from the query.
         
     | 
| 
       2114 
1719 
     | 
    
         
             
            </span>  <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       2115 
1720 
     | 
    
         
             
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       2116 
     | 
    
         
            -
                <span class=' 
     | 
| 
       2117 
     | 
    
         
            -
             
     | 
| 
       2118 
     | 
    
         
            -
             
     | 
| 
       2119 
     | 
    
         
            -
             
     | 
| 
       2120 
     | 
    
         
            -
                <span class='kw'> 
     | 
| 
       2121 
     | 
    
         
            -
                  <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       2122 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
      
 1721 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=</span> <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
         
     | 
| 
      
 1722 
     | 
    
         
            +
                <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query_s'>query_s</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span>
         
     | 
| 
      
 1723 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span> <span class='op'>?</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span> <span class='op'>:</span> <span class='id identifier rubyid_rv'>rv</span>
         
     | 
| 
      
 1724 
     | 
    
         
            +
              <span class='kw'>rescue</span> <span class='const'>NoMethodError</span>
         
     | 
| 
      
 1725 
     | 
    
         
            +
                <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       2123 
1726 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       2124 
1727 
     | 
    
         | 
| 
       2125 
     | 
    
         
            -
              <span class=' 
     | 
| 
       2126 
     | 
    
         
            -
             
     | 
| 
       2127 
     | 
    
         
            -
             
     | 
| 
      
 1728 
     | 
    
         
            +
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
      
 1729 
     | 
    
         
            +
             
     | 
| 
      
 1730 
     | 
    
         
            +
              <span class='comment'># Executes a parsed query
         
     | 
| 
       2128 
1731 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       2129 
     | 
    
         
            -
            </span>  <span class='comment'># @ 
     | 
| 
       2130 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       2131 
     | 
    
         
            -
             
     | 
| 
      
 1732 
     | 
    
         
            +
            </span>  <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
      
 1733 
     | 
    
         
            +
            </span>  <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
      
 1734 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
      
 1735 
     | 
    
         
            +
                <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
      
 1736 
     | 
    
         
            +
                  <span class='kw'>break</span> <span class='kw'>unless</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
      
 1737 
     | 
    
         
            +
                  <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
      
 1738 
     | 
    
         
            +
                <span class='rbrace'>}</span>
         
     | 
| 
       2132 
1739 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       2133 
     | 
    
         
            -
             
     | 
| 
       2134 
     | 
    
         
            -
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
       2135 
     | 
    
         
            -
                <span class='comment'># Parse query, getting all arguments.
         
     | 
| 
       2136 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       2137 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [String] The query to issue. Use `__` to separate query and `_` in place of `.` in the version.
         
     | 
| 
       2138 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       2139 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       2140 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(_(v|on|is))</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> \\2</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_part'>part</span><span class='op'>|</span>
         
     | 
| 
       2141 
     | 
    
         
            -
                    <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       2142 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       2143 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       2144 
     | 
    
         
            -
             
     | 
| 
       2145 
     | 
    
         
            -
                <span class='comment'># Handles a part of a query.
         
     | 
| 
       2146 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       2147 
     | 
    
         
            -
            </span>    <span class='comment'># @param part [String] A part of a query.
         
     | 
| 
       2148 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       2149 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       2150 
     | 
    
         
            -
                  <span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_part'>part</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='int'>2</span><span class='rparen'>)</span>
         
     | 
| 
       2151 
     | 
    
         
            -
             
     | 
| 
       2152 
     | 
    
         
            -
                  <span class='kw'>if</span> <span class='id identifier rubyid_method'>method</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>v</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
         
     | 
| 
       2153 
     | 
    
         
            -
                    <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_arguments'>arguments</span><span class='rparen'>)</span>
         
     | 
| 
       2154 
     | 
    
         
            -
                  <span class='kw'>elsif</span> <span class='op'>!</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>is</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>on</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
         
     | 
| 
       2155 
     | 
    
         
            -
                    <span class='id identifier rubyid_raise'>raise</span> <span class='const'>NoMethodError</span>
         
     | 
| 
       2156 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       2157 
     | 
    
         
            -
             
     | 
| 
       2158 
     | 
    
         
            -
                  <span class='lbracket'>[</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span><span class='rbracket'>]</span>
         
     | 
| 
       2159 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       2160 
     | 
    
         
            -
             
     | 
| 
       2161 
     | 
    
         
            -
                <span class='comment'># Parses the version for a query.
         
     | 
| 
       2162 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       2163 
     | 
    
         
            -
            </span>    <span class='comment'># @param version [String] The version to parse.
         
     | 
| 
       2164 
     | 
    
         
            -
            </span>    <span class='comment'># @return [String] The parsed version.
         
     | 
| 
       2165 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span>
         
     | 
| 
       2166 
     | 
    
         
            -
                  <span class='lbracket'>[</span>
         
     | 
| 
       2167 
     | 
    
         
            -
                    <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?eq_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> == </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse ==
         
     | 
| 
       2168 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> <= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <=
         
     | 
| 
       2169 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> >= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >=
         
     | 
| 
       2170 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> < </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <
         
     | 
| 
       2171 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> > </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >
         
     | 
| 
       2172 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?and_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> && </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse &&
         
     | 
| 
       2173 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>.</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Dot notation
         
     | 
| 
       2174 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s+</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
         
     | 
| 
       2175 
     | 
    
         
            -
                  <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_current'>current</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='op'>|</span> <span class='id identifier rubyid_current'>current</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
         
     | 
| 
       2176 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       2177 
     | 
    
         
            -
             
     | 
| 
       2178 
     | 
    
         
            -
                <span class='comment'># Executes a parsed query
         
     | 
| 
       2179 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       2180 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       2181 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
       2182 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       2183 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
       2184 
     | 
    
         
            -
                    <span class='kw'>break</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
       2185 
     | 
    
         
            -
                    <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
       2186 
     | 
    
         
            -
                  <span class='rbrace'>}</span>
         
     | 
| 
       2187 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       2188 
1740 
     | 
    
         
             
            <span class='kw'>end</span></pre>
         
     | 
| 
       2189 
1741 
     | 
    
         
             
                </td>
         
     | 
| 
       2190 
1742 
     | 
    
         
             
              </tr>
         
     | 
| 
         @@ -2196,7 +1748,7 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       2196 
1748 
     | 
    
         
             
                  <div class="method_details ">
         
     | 
| 
       2197 
1749 
     | 
    
         
             
              <h3 class="signature " id="version-instance_method">
         
     | 
| 
       2198 
1750 
     | 
    
         | 
| 
       2199 
     | 
    
         
            -
                - (<tt>String</tt>) <strong>version</strong> 
         
     | 
| 
      
 1751 
     | 
    
         
            +
                - (<tt>String|<span class='object_link'><a href="Query.html" title="Brauser::Query (class)">Query</a></span></tt>) <strong>version</strong>(versions = nil) 
         
     | 
| 
       2200 
1752 
     | 
    
         | 
| 
       2201 
1753 
     | 
    
         | 
| 
       2202 
1754 
     | 
    
         | 
| 
         @@ -2204,166 +1756,152 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       2204 
1756 
     | 
    
         | 
| 
       2205 
1757 
     | 
    
         
             
            </h3><div class="docstring">
         
     | 
| 
       2206 
1758 
     | 
    
         
             
              <div class="discussion">
         
     | 
| 
       2207 
     | 
    
         
            -
                <p> 
     | 
| 
      
 1759 
     | 
    
         
            +
                <p>Get the current browser version (if called without arguments) or checks if the browser is a specific version.</p>
         
     | 
| 
       2208 
1760 
     | 
    
         | 
| 
       2209 
1761 
     | 
    
         | 
| 
       2210 
1762 
     | 
    
         
             
              </div>
         
     | 
| 
       2211 
1763 
     | 
    
         
             
            </div>
         
     | 
| 
       2212 
1764 
     | 
    
         
             
            <div class="tags">
         
     | 
| 
      
 1765 
     | 
    
         
            +
              <p class="tag_title">Parameters:</p>
         
     | 
| 
      
 1766 
     | 
    
         
            +
            <ul class="param">
         
     | 
| 
      
 1767 
     | 
    
         
            +
              
         
     | 
| 
      
 1768 
     | 
    
         
            +
                <li>
         
     | 
| 
      
 1769 
     | 
    
         
            +
                  
         
     | 
| 
      
 1770 
     | 
    
         
            +
                    <span class='name'>versions</span>
         
     | 
| 
      
 1771 
     | 
    
         
            +
                  
         
     | 
| 
      
 1772 
     | 
    
         
            +
                  
         
     | 
| 
      
 1773 
     | 
    
         
            +
                    <span class='type'>(<tt>String|Hash</tt>)</span>
         
     | 
| 
      
 1774 
     | 
    
         
            +
                  
         
     | 
| 
      
 1775 
     | 
    
         
            +
                  
         
     | 
| 
      
 1776 
     | 
    
         
            +
                    <em class="default">(defaults to: <tt>nil</tt>)</em>
         
     | 
| 
      
 1777 
     | 
    
         
            +
                  
         
     | 
| 
      
 1778 
     | 
    
         
            +
                  
         
     | 
| 
      
 1779 
     | 
    
         
            +
                    —
         
     | 
| 
      
 1780 
     | 
    
         
            +
                    <div class='inline'><p>A string in the form <code>operator version && ...</code> (example: <code>>= 7 && < 4</code>) or an hash with specific version to match against,
         
     | 
| 
      
 1781 
     | 
    
         
            +
            in form <code>{:operator => version}</code>, where operator is one of <code>:lt, :lte, :eq, :gt, :gte</code>.</p>
         
     | 
| 
      
 1782 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 1783 
     | 
    
         
            +
                  
         
     | 
| 
      
 1784 
     | 
    
         
            +
                </li>
         
     | 
| 
       2213 
1785 
     | 
    
         | 
| 
      
 1786 
     | 
    
         
            +
            </ul>
         
     | 
| 
      
 1787 
     | 
    
         
            +
             
     | 
| 
       2214 
1788 
     | 
    
         
             
            <p class="tag_title">Returns:</p>
         
     | 
| 
       2215 
1789 
     | 
    
         
             
            <ul class="return">
         
     | 
| 
       2216 
1790 
     | 
    
         | 
| 
       2217 
1791 
     | 
    
         
             
                <li>
         
     | 
| 
       2218 
1792 
     | 
    
         | 
| 
       2219 
1793 
     | 
    
         | 
| 
       2220 
     | 
    
         
            -
                    <span class='type'>(<tt>String</tt>)</span>
         
     | 
| 
      
 1794 
     | 
    
         
            +
                    <span class='type'>(<tt>String|<span class='object_link'><a href="Query.html" title="Brauser::Query (class)">Query</a></span></tt>)</span>
         
     | 
| 
       2221 
1795 
     | 
    
         | 
| 
       2222 
1796 
     | 
    
         | 
| 
       2223 
1797 
     | 
    
         | 
| 
       2224 
1798 
     | 
    
         
             
                    —
         
     | 
| 
       2225 
     | 
    
         
            -
                    <div class='inline'><p>The  
     | 
| 
      
 1799 
     | 
    
         
            +
                    <div class='inline'><p>The browser version or a query which can evaluated for concatenation or result.</p>
         
     | 
| 
       2226 
1800 
     | 
    
         
             
            </div>
         
     | 
| 
       2227 
1801 
     | 
    
         | 
| 
       2228 
1802 
     | 
    
         
             
                </li>
         
     | 
| 
       2229 
1803 
     | 
    
         | 
| 
       2230 
1804 
     | 
    
         
             
            </ul>
         
     | 
| 
       2231 
1805 
     | 
    
         | 
| 
      
 1806 
     | 
    
         
            +
              <p class="tag_title">See Also:</p>
         
     | 
| 
      
 1807 
     | 
    
         
            +
              <ul class="see">
         
     | 
| 
      
 1808 
     | 
    
         
            +
                
         
     | 
| 
      
 1809 
     | 
    
         
            +
                  <li>#is_version</li>
         
     | 
| 
      
 1810 
     | 
    
         
            +
                
         
     | 
| 
      
 1811 
     | 
    
         
            +
              </ul>
         
     | 
| 
      
 1812 
     | 
    
         
            +
             
     | 
| 
       2232 
1813 
     | 
    
         
             
            </div><table class="source_code">
         
     | 
| 
       2233 
1814 
     | 
    
         
             
              <tr>
         
     | 
| 
       2234 
1815 
     | 
    
         
             
                <td>
         
     | 
| 
       2235 
1816 
     | 
    
         
             
                  <pre class="lines">
         
     | 
| 
       2236 
1817 
     | 
    
         | 
| 
       2237 
1818 
     | 
    
         | 
| 
       2238 
     | 
    
         
            -
             
     | 
| 
       2239 
     | 
    
         
            -
             
     | 
| 
       2240 
     | 
    
         
            -
             
     | 
| 
       2241 
     | 
    
         
            -
             
     | 
| 
       2242 
     | 
    
         
            -
             
     | 
| 
       2243 
     | 
    
         
            -
             
     | 
| 
       2244 
     | 
    
         
            -
             
     | 
| 
       2245 
     | 
    
         
            -
             
     | 
| 
       2246 
     | 
    
         
            -
             
     | 
| 
       2247 
     | 
    
         
            -
             
     | 
| 
       2248 
     | 
    
         
            -
             
     | 
| 
       2249 
     | 
    
         
            -
             
     | 
| 
       2250 
     | 
    
         
            -
             
     | 
| 
       2251 
     | 
    
         
            -
             
     | 
| 
       2252 
     | 
    
         
            -
             
     | 
| 
       2253 
     | 
    
         
            -
             
     | 
| 
       2254 
     | 
    
         
            -
             
     | 
| 
       2255 
     | 
    
         
            -
             
     | 
| 
       2256 
     | 
    
         
            -
             
     | 
| 
       2257 
     | 
    
         
            -
             
     | 
| 
       2258 
     | 
    
         
            -
             
     | 
| 
       2259 
     | 
    
         
            -
             
     | 
| 
       2260 
     | 
    
         
            -
             
     | 
| 
       2261 
     | 
    
         
            -
             
     | 
| 
       2262 
     | 
    
         
            -
             
     | 
| 
       2263 
     | 
    
         
            -
             
     | 
| 
       2264 
     | 
    
         
            -
             
     | 
| 
       2265 
     | 
    
         
            -
             
     | 
| 
       2266 
     | 
    
         
            -
             
     | 
| 
       2267 
     | 
    
         
            -
             
     | 
| 
       2268 
     | 
    
         
            -
             
     | 
| 
       2269 
     | 
    
         
            -
             
     | 
| 
       2270 
     | 
    
         
            -
             
     | 
| 
       2271 
     | 
    
         
            -
             
     | 
| 
       2272 
     | 
    
         
            -
             
     | 
| 
       2273 
     | 
    
         
            -
             
     | 
| 
       2274 
     | 
    
         
            -
             
     | 
| 
       2275 
     | 
    
         
            -
             
     | 
| 
       2276 
     | 
    
         
            -
             
     | 
| 
       2277 
     | 
    
         
            -
             
     | 
| 
       2278 
     | 
    
         
            -
             
     | 
| 
       2279 
     | 
    
         
            -
             
     | 
| 
       2280 
     | 
    
         
            -
             
     | 
| 
       2281 
     | 
    
         
            -
             
     | 
| 
       2282 
     | 
    
         
            -
             
     | 
| 
       2283 
     | 
    
         
            -
             
     | 
| 
       2284 
     | 
    
         
            -
             
     | 
| 
       2285 
     | 
    
         
            -
             
     | 
| 
       2286 
     | 
    
         
            -
             
     | 
| 
       2287 
     | 
    
         
            -
             
     | 
| 
       2288 
     | 
    
         
            -
             
     | 
| 
       2289 
     | 
    
         
            -
             
     | 
| 
       2290 
     | 
    
         
            -
             
     | 
| 
       2291 
     | 
    
         
            -
             
     | 
| 
       2292 
     | 
    
         
            -
             
     | 
| 
       2293 
     | 
    
         
            -
             
     | 
| 
       2294 
     | 
    
         
            -
             
     | 
| 
       2295 
     | 
    
         
            -
             
     | 
| 
       2296 
     | 
    
         
            -
             
     | 
| 
       2297 
     | 
    
         
            -
             
     | 
| 
       2298 
     | 
    
         
            -
             
     | 
| 
       2299 
     | 
    
         
            -
             
     | 
| 
       2300 
     | 
    
         
            -
             
     | 
| 
       2301 
     | 
    
         
            -
             
     | 
| 
       2302 
     | 
    
         
            -
             
     | 
| 
       2303 
     | 
    
         
            -
             
     | 
| 
       2304 
     | 
    
         
            -
             
     | 
| 
       2305 
     | 
    
         
            -
             
     | 
| 
       2306 
     | 
    
         
            -
             
     | 
| 
       2307 
     | 
    
         
            -
             
     | 
| 
       2308 
     | 
    
         
            -
             
     | 
| 
       2309 
     | 
    
         
            -
             
     | 
| 
       2310 
     | 
    
         
            -
             
     | 
| 
       2311 
     | 
    
         
            -
             
     | 
| 
       2312 
     | 
    
         
            -
             
     | 
| 
       2313 
     | 
    
         
            -
             
     | 
| 
       2314 
     | 
    
         
            -
             
     | 
| 
       2315 
     | 
    
         
            -
             
     | 
| 
       2316 
     | 
    
         
            -
             
     | 
| 
       2317 
     | 
    
         
            -
             
     | 
| 
       2318 
     | 
    
         
            -
             
     | 
| 
       2319 
     | 
    
         
            -
             
     | 
| 
       2320 
     | 
    
         
            -
             
     | 
| 
       2321 
     | 
    
         
            -
            770
         
     | 
| 
       2322 
     | 
    
         
            -
            771
         
     | 
| 
       2323 
     | 
    
         
            -
            772
         
     | 
| 
       2324 
     | 
    
         
            -
            773
         
     | 
| 
       2325 
     | 
    
         
            -
            774
         
     | 
| 
       2326 
     | 
    
         
            -
            775
         
     | 
| 
       2327 
     | 
    
         
            -
            776
         
     | 
| 
       2328 
     | 
    
         
            -
            777
         
     | 
| 
       2329 
     | 
    
         
            -
            778
         
     | 
| 
       2330 
     | 
    
         
            -
            779
         
     | 
| 
       2331 
     | 
    
         
            -
            780
         
     | 
| 
       2332 
     | 
    
         
            -
            781
         
     | 
| 
       2333 
     | 
    
         
            -
            782
         
     | 
| 
       2334 
     | 
    
         
            -
            783
         
     | 
| 
       2335 
     | 
    
         
            -
            784
         
     | 
| 
       2336 
     | 
    
         
            -
            785
         
     | 
| 
       2337 
     | 
    
         
            -
            786
         
     | 
| 
       2338 
     | 
    
         
            -
            787
         
     | 
| 
       2339 
     | 
    
         
            -
            788
         
     | 
| 
       2340 
     | 
    
         
            -
            789
         
     | 
| 
       2341 
     | 
    
         
            -
            790
         
     | 
| 
       2342 
     | 
    
         
            -
            791
         
     | 
| 
       2343 
     | 
    
         
            -
            792
         
     | 
| 
       2344 
     | 
    
         
            -
            793
         
     | 
| 
       2345 
     | 
    
         
            -
            794
         
     | 
| 
       2346 
     | 
    
         
            -
            795
         
     | 
| 
       2347 
     | 
    
         
            -
            796
         
     | 
| 
       2348 
     | 
    
         
            -
            797
         
     | 
| 
       2349 
     | 
    
         
            -
            798
         
     | 
| 
       2350 
     | 
    
         
            -
            799
         
     | 
| 
       2351 
     | 
    
         
            -
            800
         
     | 
| 
       2352 
     | 
    
         
            -
            801
         
     | 
| 
       2353 
     | 
    
         
            -
            802
         
     | 
| 
       2354 
     | 
    
         
            -
            803
         
     | 
| 
       2355 
     | 
    
         
            -
            804
         
     | 
| 
       2356 
     | 
    
         
            -
            805
         
     | 
| 
       2357 
     | 
    
         
            -
            806
         
     | 
| 
       2358 
     | 
    
         
            -
            807
         
     | 
| 
       2359 
     | 
    
         
            -
            808
         
     | 
| 
       2360 
     | 
    
         
            -
            809
         
     | 
| 
       2361 
     | 
    
         
            -
            810
         
     | 
| 
       2362 
     | 
    
         
            -
            811
         
     | 
| 
       2363 
     | 
    
         
            -
            812</pre>
         
     | 
| 
      
 1819 
     | 
    
         
            +
            23
         
     | 
| 
      
 1820 
     | 
    
         
            +
            24
         
     | 
| 
      
 1821 
     | 
    
         
            +
            25
         
     | 
| 
      
 1822 
     | 
    
         
            +
            26
         
     | 
| 
      
 1823 
     | 
    
         
            +
            27
         
     | 
| 
      
 1824 
     | 
    
         
            +
            28
         
     | 
| 
      
 1825 
     | 
    
         
            +
            29
         
     | 
| 
      
 1826 
     | 
    
         
            +
            30
         
     | 
| 
      
 1827 
     | 
    
         
            +
            31
         
     | 
| 
      
 1828 
     | 
    
         
            +
            32
         
     | 
| 
      
 1829 
     | 
    
         
            +
            33
         
     | 
| 
      
 1830 
     | 
    
         
            +
            34
         
     | 
| 
      
 1831 
     | 
    
         
            +
            35
         
     | 
| 
      
 1832 
     | 
    
         
            +
            36
         
     | 
| 
      
 1833 
     | 
    
         
            +
            37
         
     | 
| 
      
 1834 
     | 
    
         
            +
            38
         
     | 
| 
      
 1835 
     | 
    
         
            +
            39
         
     | 
| 
      
 1836 
     | 
    
         
            +
            40
         
     | 
| 
      
 1837 
     | 
    
         
            +
            41
         
     | 
| 
      
 1838 
     | 
    
         
            +
            42
         
     | 
| 
      
 1839 
     | 
    
         
            +
            43
         
     | 
| 
      
 1840 
     | 
    
         
            +
            44
         
     | 
| 
      
 1841 
     | 
    
         
            +
            45
         
     | 
| 
      
 1842 
     | 
    
         
            +
            46
         
     | 
| 
      
 1843 
     | 
    
         
            +
            47
         
     | 
| 
      
 1844 
     | 
    
         
            +
            48
         
     | 
| 
      
 1845 
     | 
    
         
            +
            49
         
     | 
| 
      
 1846 
     | 
    
         
            +
            50
         
     | 
| 
      
 1847 
     | 
    
         
            +
            51
         
     | 
| 
      
 1848 
     | 
    
         
            +
            52
         
     | 
| 
      
 1849 
     | 
    
         
            +
            53
         
     | 
| 
      
 1850 
     | 
    
         
            +
            54
         
     | 
| 
      
 1851 
     | 
    
         
            +
            55
         
     | 
| 
      
 1852 
     | 
    
         
            +
            56
         
     | 
| 
      
 1853 
     | 
    
         
            +
            57
         
     | 
| 
      
 1854 
     | 
    
         
            +
            58
         
     | 
| 
      
 1855 
     | 
    
         
            +
            59
         
     | 
| 
      
 1856 
     | 
    
         
            +
            60
         
     | 
| 
      
 1857 
     | 
    
         
            +
            61
         
     | 
| 
      
 1858 
     | 
    
         
            +
            62
         
     | 
| 
      
 1859 
     | 
    
         
            +
            63
         
     | 
| 
      
 1860 
     | 
    
         
            +
            64
         
     | 
| 
      
 1861 
     | 
    
         
            +
            65
         
     | 
| 
      
 1862 
     | 
    
         
            +
            66
         
     | 
| 
      
 1863 
     | 
    
         
            +
            67
         
     | 
| 
      
 1864 
     | 
    
         
            +
            68
         
     | 
| 
      
 1865 
     | 
    
         
            +
            69
         
     | 
| 
      
 1866 
     | 
    
         
            +
            70
         
     | 
| 
      
 1867 
     | 
    
         
            +
            71
         
     | 
| 
      
 1868 
     | 
    
         
            +
            72
         
     | 
| 
      
 1869 
     | 
    
         
            +
            73
         
     | 
| 
      
 1870 
     | 
    
         
            +
            74
         
     | 
| 
      
 1871 
     | 
    
         
            +
            75
         
     | 
| 
      
 1872 
     | 
    
         
            +
            76
         
     | 
| 
      
 1873 
     | 
    
         
            +
            77
         
     | 
| 
      
 1874 
     | 
    
         
            +
            78
         
     | 
| 
      
 1875 
     | 
    
         
            +
            79
         
     | 
| 
      
 1876 
     | 
    
         
            +
            80
         
     | 
| 
      
 1877 
     | 
    
         
            +
            81
         
     | 
| 
      
 1878 
     | 
    
         
            +
            82
         
     | 
| 
      
 1879 
     | 
    
         
            +
            83
         
     | 
| 
      
 1880 
     | 
    
         
            +
            84
         
     | 
| 
      
 1881 
     | 
    
         
            +
            85
         
     | 
| 
      
 1882 
     | 
    
         
            +
            86
         
     | 
| 
      
 1883 
     | 
    
         
            +
            87
         
     | 
| 
      
 1884 
     | 
    
         
            +
            88
         
     | 
| 
      
 1885 
     | 
    
         
            +
            89
         
     | 
| 
      
 1886 
     | 
    
         
            +
            90
         
     | 
| 
      
 1887 
     | 
    
         
            +
            91
         
     | 
| 
      
 1888 
     | 
    
         
            +
            92
         
     | 
| 
      
 1889 
     | 
    
         
            +
            93
         
     | 
| 
      
 1890 
     | 
    
         
            +
            94
         
     | 
| 
      
 1891 
     | 
    
         
            +
            95
         
     | 
| 
      
 1892 
     | 
    
         
            +
            96
         
     | 
| 
      
 1893 
     | 
    
         
            +
            97
         
     | 
| 
      
 1894 
     | 
    
         
            +
            98
         
     | 
| 
      
 1895 
     | 
    
         
            +
            99
         
     | 
| 
      
 1896 
     | 
    
         
            +
            100
         
     | 
| 
      
 1897 
     | 
    
         
            +
            101
         
     | 
| 
      
 1898 
     | 
    
         
            +
            102
         
     | 
| 
      
 1899 
     | 
    
         
            +
            103
         
     | 
| 
      
 1900 
     | 
    
         
            +
            104
         
     | 
| 
      
 1901 
     | 
    
         
            +
            105</pre>
         
     | 
| 
       2364 
1902 
     | 
    
         
             
                </td>
         
     | 
| 
       2365 
1903 
     | 
    
         
             
                <td>
         
     | 
| 
       2366 
     | 
    
         
            -
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line  
     | 
| 
      
 1904 
     | 
    
         
            +
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line 23</span>
         
     | 
| 
       2367 
1905 
     | 
    
         | 
| 
       2368 
1906 
     | 
    
         
             
            <span class='kw'>class</span> <span class='const'>Browser</span>
         
     | 
| 
       2369 
1907 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:agent</span>
         
     | 
| 
         @@ -2374,15 +1912,15 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       2374 
1912 
     | 
    
         
             
              <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:platform</span>
         
     | 
| 
       2375 
1913 
     | 
    
         | 
| 
       2376 
1914 
     | 
    
         
             
              <span class='comment'># Aliases
         
     | 
| 
       2377 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       2378 
     | 
    
         
            -
              <span class='kw'>alias</span> <span class='symbol'>:ua=</span> <span class='symbol'>:agent=</span>
         
     | 
| 
      
 1915 
     | 
    
         
            +
            </span>  <span class='id identifier rubyid_alias_attribute'>alias_attribute</span> <span class='symbol'>:ua</span><span class='comma'>,</span> <span class='symbol'>:agent</span>
         
     | 
| 
       2379 
1916 
     | 
    
         | 
| 
       2380 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       2381 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       2382 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       2383 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       2384 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
       2385 
     | 
    
         
            -
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'> 
     | 
| 
      
 1917 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>General</span>
         
     | 
| 
      
 1918 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Attributes</span>
         
     | 
| 
      
 1919 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>DefaultDefinitions</span>
         
     | 
| 
      
 1920 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Register</span>
         
     | 
| 
      
 1921 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Parsing</span>
         
     | 
| 
      
 1922 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>PartialQuerying</span>
         
     | 
| 
      
 1923 
     | 
    
         
            +
              <span class='id identifier rubyid_include'>include</span> <span class='op'>::</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Browseable</span><span class='op'>::</span><span class='const'>Querying</span>
         
     | 
| 
       2386 
1924 
     | 
    
         | 
| 
       2387 
1925 
     | 
    
         
             
              <span class='comment'># Creates a new browser.
         
     | 
| 
       2388 
1926 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
         @@ -2400,6 +1938,16 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       2400 
1938 
     | 
    
         
             
                <span class='id identifier rubyid_parse_agent'>parse_agent</span><span class='lparen'>(</span><span class='ivar'>@agent</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@agent</span>
         
     | 
| 
       2401 
1939 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       2402 
1940 
     | 
    
         | 
| 
      
 1941 
     | 
    
         
            +
              <span class='comment'># Get the current browser version (if called without arguments) or checks if the browser is a specific version.
         
     | 
| 
      
 1942 
     | 
    
         
            +
            </span>  <span class='comment'>#
         
     | 
| 
      
 1943 
     | 
    
         
            +
            </span>  <span class='comment'># @see #is_version
         
     | 
| 
      
 1944 
     | 
    
         
            +
            </span>  <span class='comment'># @param versions [String|Hash] A string in the form `operator version && ...` (example: `>= 7 && < 4`) or an hash with specific version to match against,
         
     | 
| 
      
 1945 
     | 
    
         
            +
            </span>  <span class='comment'>#   in form `{:operator => version}`, where operator is one of `:lt, :lte, :eq, :gt, :gte`.
         
     | 
| 
      
 1946 
     | 
    
         
            +
            </span>  <span class='comment'># @return [String|Query] The browser version or a query which can evaluated for concatenation or result.
         
     | 
| 
      
 1947 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
         
     | 
| 
      
 1948 
     | 
    
         
            +
                <span class='op'>!</span><span class='id identifier rubyid_versions'>versions</span> <span class='op'>?</span> <span class='ivar'>@version</span> <span class='op'>:</span> <span class='id identifier rubyid_version_equals_to'>version_equals_to</span><span class='lparen'>(</span><span class='id identifier rubyid_versions'>versions</span><span class='rparen'>)</span>
         
     | 
| 
      
 1949 
     | 
    
         
            +
              <span class='kw'>end</span>
         
     | 
| 
      
 1950 
     | 
    
         
            +
             
     | 
| 
       2403 
1951 
     | 
    
         
             
              <span class='comment'># This method enables the use of dynamic queries in just one method.
         
     | 
| 
       2404 
1952 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       2405 
1953 
     | 
    
         
             
            </span>  <span class='comment'># For example:
         
     | 
| 
         @@ -2418,78 +1966,25 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       2418 
1966 
     | 
    
         
             
            </span>  <span class='comment'># @param block [Proc] A block to pass to the method. Unused from the query.
         
     | 
| 
       2419 
1967 
     | 
    
         
             
            </span>  <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       2420 
1968 
     | 
    
         
             
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       2421 
     | 
    
         
            -
                <span class=' 
     | 
| 
       2422 
     | 
    
         
            -
             
     | 
| 
       2423 
     | 
    
         
            -
             
     | 
| 
       2424 
     | 
    
         
            -
             
     | 
| 
       2425 
     | 
    
         
            -
                <span class='kw'> 
     | 
| 
       2426 
     | 
    
         
            -
                  <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       2427 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
      
 1969 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=</span> <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
         
     | 
| 
      
 1970 
     | 
    
         
            +
                <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query_s'>query_s</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span>
         
     | 
| 
      
 1971 
     | 
    
         
            +
                <span class='id identifier rubyid_query_s'>query_s</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span> <span class='op'>?</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span> <span class='op'>:</span> <span class='id identifier rubyid_rv'>rv</span>
         
     | 
| 
      
 1972 
     | 
    
         
            +
              <span class='kw'>rescue</span> <span class='const'>NoMethodError</span>
         
     | 
| 
      
 1973 
     | 
    
         
            +
                <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_arguments'>arguments</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
         
     | 
| 
       2428 
1974 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       2429 
1975 
     | 
    
         | 
| 
       2430 
     | 
    
         
            -
              <span class=' 
     | 
| 
       2431 
     | 
    
         
            -
             
     | 
| 
       2432 
     | 
    
         
            -
             
     | 
| 
      
 1976 
     | 
    
         
            +
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
      
 1977 
     | 
    
         
            +
             
     | 
| 
      
 1978 
     | 
    
         
            +
              <span class='comment'># Executes a parsed query
         
     | 
| 
       2433 
1979 
     | 
    
         
             
            </span>  <span class='comment'>#
         
     | 
| 
       2434 
     | 
    
         
            -
            </span>  <span class='comment'># @ 
     | 
| 
       2435 
     | 
    
         
            -
            </span>  <span class=' 
     | 
| 
       2436 
     | 
    
         
            -
             
     | 
| 
      
 1980 
     | 
    
         
            +
            </span>  <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
      
 1981 
     | 
    
         
            +
            </span>  <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
      
 1982 
     | 
    
         
            +
            </span>  <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
      
 1983 
     | 
    
         
            +
                <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
      
 1984 
     | 
    
         
            +
                  <span class='kw'>break</span> <span class='kw'>unless</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
      
 1985 
     | 
    
         
            +
                  <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
      
 1986 
     | 
    
         
            +
                <span class='rbrace'>}</span>
         
     | 
| 
       2437 
1987 
     | 
    
         
             
              <span class='kw'>end</span>
         
     | 
| 
       2438 
     | 
    
         
            -
             
     | 
| 
       2439 
     | 
    
         
            -
              <span class='id identifier rubyid_private'>private</span>
         
     | 
| 
       2440 
     | 
    
         
            -
                <span class='comment'># Parse query, getting all arguments.
         
     | 
| 
       2441 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       2442 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [String] The query to issue. Use `__` to separate query and `_` in place of `.` in the version.
         
     | 
| 
       2443 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       2444 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query'>parse_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       2445 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\?$</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(_(v|on|is))</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> \\2</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_part'>part</span><span class='op'>|</span>
         
     | 
| 
       2446 
     | 
    
         
            -
                    <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       2447 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       2448 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       2449 
     | 
    
         
            -
             
     | 
| 
       2450 
     | 
    
         
            -
                <span class='comment'># Handles a part of a query.
         
     | 
| 
       2451 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       2452 
     | 
    
         
            -
            </span>    <span class='comment'># @param part [String] A part of a query.
         
     | 
| 
       2453 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Boolean|Query|nil] A query or a boolean value (if `method` ends with `?`). If the query is not valid, `NoMethodError` will be raised.
         
     | 
| 
       2454 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_part'>parse_query_part</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
         
     | 
| 
       2455 
     | 
    
         
            -
                  <span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_part'>part</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='int'>2</span><span class='rparen'>)</span>
         
     | 
| 
       2456 
     | 
    
         
            -
             
     | 
| 
       2457 
     | 
    
         
            -
                  <span class='kw'>if</span> <span class='id identifier rubyid_method'>method</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>v</span><span class='tstring_end'>"</span></span> <span class='kw'>then</span>
         
     | 
| 
       2458 
     | 
    
         
            -
                    <span class='id identifier rubyid_arguments'>arguments</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_arguments'>arguments</span><span class='rparen'>)</span>
         
     | 
| 
       2459 
     | 
    
         
            -
                  <span class='kw'>elsif</span> <span class='op'>!</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>is</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>on</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
         
     | 
| 
       2460 
     | 
    
         
            -
                    <span class='id identifier rubyid_raise'>raise</span> <span class='const'>NoMethodError</span>
         
     | 
| 
       2461 
     | 
    
         
            -
                  <span class='kw'>end</span>
         
     | 
| 
       2462 
     | 
    
         
            -
             
     | 
| 
       2463 
     | 
    
         
            -
                  <span class='lbracket'>[</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_arguments'>arguments</span><span class='rbracket'>]</span>
         
     | 
| 
       2464 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       2465 
     | 
    
         
            -
             
     | 
| 
       2466 
     | 
    
         
            -
                <span class='comment'># Parses the version for a query.
         
     | 
| 
       2467 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       2468 
     | 
    
         
            -
            </span>    <span class='comment'># @param version [String] The version to parse.
         
     | 
| 
       2469 
     | 
    
         
            -
            </span>    <span class='comment'># @return [String] The parsed version.
         
     | 
| 
       2470 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_parse_query_version'>parse_query_version</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span>
         
     | 
| 
       2471 
     | 
    
         
            -
                  <span class='lbracket'>[</span>
         
     | 
| 
       2472 
     | 
    
         
            -
                    <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?eq_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> == </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse ==
         
     | 
| 
       2473 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> <= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <=
         
     | 
| 
       2474 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gte_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> >= </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >=
         
     | 
| 
       2475 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?lt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> < </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse <
         
     | 
| 
       2476 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?gt_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> > </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse >
         
     | 
| 
       2477 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_?and_?</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> && </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Parse &&
         
     | 
| 
       2478 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>_</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>.</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='comment'># Dot notation
         
     | 
| 
       2479 
     | 
    
         
            -
            </span>        <span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s+</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
         
     | 
| 
       2480 
     | 
    
         
            -
                  <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='id identifier rubyid_version'>version</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_current'>current</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='op'>|</span> <span class='id identifier rubyid_current'>current</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_parse'>parse</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
         
     | 
| 
       2481 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       2482 
     | 
    
         
            -
             
     | 
| 
       2483 
     | 
    
         
            -
                <span class='comment'># Executes a parsed query
         
     | 
| 
       2484 
     | 
    
         
            -
            </span>    <span class='comment'>#
         
     | 
| 
       2485 
     | 
    
         
            -
            </span>    <span class='comment'># @param query [Array] And array of `[method, arguments]` entries.
         
     | 
| 
       2486 
     | 
    
         
            -
            </span>    <span class='comment'># @return [Brauser::Query] The result of the query.
         
     | 
| 
       2487 
     | 
    
         
            -
            </span>    <span class='kw'>def</span> <span class='id identifier rubyid_execute_query'>execute_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
         
     | 
| 
       2488 
     | 
    
         
            -
                  <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Brauser</span><span class='op'>::</span><span class='const'>Query</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_call'>call</span><span class='op'>|</span>
         
     | 
| 
       2489 
     | 
    
         
            -
                    <span class='kw'>break</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span>
         
     | 
| 
       2490 
     | 
    
         
            -
                    <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_call'>call</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span>
         
     | 
| 
       2491 
     | 
    
         
            -
                  <span class='rbrace'>}</span>
         
     | 
| 
       2492 
     | 
    
         
            -
                <span class='kw'>end</span>
         
     | 
| 
       2493 
1988 
     | 
    
         
             
            <span class='kw'>end</span></pre>
         
     | 
| 
       2494 
1989 
     | 
    
         
             
                </td>
         
     | 
| 
       2495 
1990 
     | 
    
         
             
              </tr>
         
     | 
| 
         @@ -2499,82 +1994,12 @@ browser.is_msie_v_gt_4_1_on_windows? 
     | 
|
| 
       2499 
1994 
     | 
    
         
             
              </div>
         
     | 
| 
       2500 
1995 
     | 
    
         | 
| 
       2501 
1996 
     | 
    
         | 
| 
       2502 
     | 
    
         
            -
              <div id="instance_method_details" class="method_details_list">
         
     | 
| 
       2503 
     | 
    
         
            -
                <h2>Instance Method Details</h2>
         
     | 
| 
       2504 
     | 
    
         
            -
             
     | 
| 
       2505 
     | 
    
         
            -
                
         
     | 
| 
       2506 
     | 
    
         
            -
                  <div class="method_details first">
         
     | 
| 
       2507 
     | 
    
         
            -
              <h3 class="signature first" id="to_s-instance_method">
         
     | 
| 
       2508 
     | 
    
         
            -
              
         
     | 
| 
       2509 
     | 
    
         
            -
                - (<tt>String</tt>) <strong>to_s</strong> 
         
     | 
| 
       2510 
     | 
    
         
            -
              
         
     | 
| 
       2511 
     | 
    
         
            -
             
     | 
| 
       2512 
     | 
    
         
            -
              
         
     | 
| 
       2513 
     | 
    
         
            -
             
     | 
| 
       2514 
     | 
    
         
            -
              
         
     | 
| 
       2515 
     | 
    
         
            -
            </h3><div class="docstring">
         
     | 
| 
       2516 
     | 
    
         
            -
              <div class="discussion">
         
     | 
| 
       2517 
     | 
    
         
            -
                <p>Returns the current browser as a string.</p>
         
     | 
| 
       2518 
     | 
    
         
            -
             
     | 
| 
       2519 
     | 
    
         
            -
             
     | 
| 
       2520 
     | 
    
         
            -
              </div>
         
     | 
| 
       2521 
     | 
    
         
            -
            </div>
         
     | 
| 
       2522 
     | 
    
         
            -
            <div class="tags">
         
     | 
| 
       2523 
     | 
    
         
            -
              
         
     | 
| 
       2524 
     | 
    
         
            -
            <p class="tag_title">Returns:</p>
         
     | 
| 
       2525 
     | 
    
         
            -
            <ul class="return">
         
     | 
| 
       2526 
     | 
    
         
            -
              
         
     | 
| 
       2527 
     | 
    
         
            -
                <li>
         
     | 
| 
       2528 
     | 
    
         
            -
                  
         
     | 
| 
       2529 
     | 
    
         
            -
                  
         
     | 
| 
       2530 
     | 
    
         
            -
                    <span class='type'>(<tt>String</tt>)</span>
         
     | 
| 
       2531 
     | 
    
         
            -
                  
         
     | 
| 
       2532 
     | 
    
         
            -
                  
         
     | 
| 
       2533 
     | 
    
         
            -
                  
         
     | 
| 
       2534 
     | 
    
         
            -
                    —
         
     | 
| 
       2535 
     | 
    
         
            -
                    <div class='inline'><p>A string representation of the current browser.</p>
         
     | 
| 
       2536 
     | 
    
         
            -
            </div>
         
     | 
| 
       2537 
     | 
    
         
            -
                  
         
     | 
| 
       2538 
     | 
    
         
            -
                </li>
         
     | 
| 
       2539 
     | 
    
         
            -
              
         
     | 
| 
       2540 
     | 
    
         
            -
            </ul>
         
     | 
| 
       2541 
     | 
    
         
            -
             
     | 
| 
       2542 
     | 
    
         
            -
              <p class="tag_title">See Also:</p>
         
     | 
| 
       2543 
     | 
    
         
            -
              <ul class="see">
         
     | 
| 
       2544 
     | 
    
         
            -
                
         
     | 
| 
       2545 
     | 
    
         
            -
                  <li><span class='object_link'><a href="BrowserMethods/Attributes.html#classes-instance_method" title="Brauser::BrowserMethods::Attributes#classes (method)">Brauser::BrowserMethods::Attributes#classes</a></span></li>
         
     | 
| 
       2546 
     | 
    
         
            -
                
         
     | 
| 
       2547 
     | 
    
         
            -
              </ul>
         
     | 
| 
       2548 
     | 
    
         
            -
             
     | 
| 
       2549 
     | 
    
         
            -
            </div><table class="source_code">
         
     | 
| 
       2550 
     | 
    
         
            -
              <tr>
         
     | 
| 
       2551 
     | 
    
         
            -
                <td>
         
     | 
| 
       2552 
     | 
    
         
            -
                  <pre class="lines">
         
     | 
| 
       2553 
     | 
    
         
            -
             
     | 
| 
       2554 
     | 
    
         
            -
             
     | 
| 
       2555 
     | 
    
         
            -
            754
         
     | 
| 
       2556 
     | 
    
         
            -
            755
         
     | 
| 
       2557 
     | 
    
         
            -
            756</pre>
         
     | 
| 
       2558 
     | 
    
         
            -
                </td>
         
     | 
| 
       2559 
     | 
    
         
            -
                <td>
         
     | 
| 
       2560 
     | 
    
         
            -
                  <pre class="code"><span class="info file"># File 'lib/brauser/browser.rb', line 754</span>
         
     | 
| 
       2561 
     | 
    
         
            -
             
     | 
| 
       2562 
     | 
    
         
            -
            <span class='kw'>def</span> <span class='id identifier rubyid_to_s'>to_s</span>
         
     | 
| 
       2563 
     | 
    
         
            -
              <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_classes'>classes</span>
         
     | 
| 
       2564 
     | 
    
         
            -
            <span class='kw'>end</span></pre>
         
     | 
| 
       2565 
     | 
    
         
            -
                </td>
         
     | 
| 
       2566 
     | 
    
         
            -
              </tr>
         
     | 
| 
       2567 
     | 
    
         
            -
            </table>
         
     | 
| 
       2568 
     | 
    
         
            -
            </div>
         
     | 
| 
       2569 
     | 
    
         
            -
                
         
     | 
| 
       2570 
     | 
    
         
            -
              </div>
         
     | 
| 
       2571 
     | 
    
         
            -
             
     | 
| 
       2572 
1997 
     | 
    
         
             
            </div>
         
     | 
| 
       2573 
1998 
     | 
    
         | 
| 
       2574 
1999 
     | 
    
         
             
                <div id="footer">
         
     | 
| 
       2575 
     | 
    
         
            -
              Generated on  
     | 
| 
      
 2000 
     | 
    
         
            +
              Generated on Sat May 10 13:59:11 2014 by
         
     | 
| 
       2576 
2001 
     | 
    
         
             
              <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
         
     | 
| 
       2577 
     | 
    
         
            -
              0.8.7. 
     | 
| 
      
 2002 
     | 
    
         
            +
              0.8.7.4 (ruby-2.1.0).
         
     | 
| 
       2578 
2003 
     | 
    
         
             
            </div>
         
     | 
| 
       2579 
2004 
     | 
    
         | 
| 
       2580 
2005 
     | 
    
         
             
              </body>
         
     |