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>
|