browser 2.7.1 → 3.0.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/.rubocop.yml +1 -1
- data/CHANGELOG.md +11 -0
- data/README.md +33 -13
- data/Rakefile +8 -1
- data/bot_exceptions.yml +1 -0
- data/bots.yml +3 -1
- data/browser.gemspec +1 -1
- data/lib/browser.rb +2 -2
- data/lib/browser/aliases.rb +1 -1
- data/lib/browser/base.rb +2 -2
- data/lib/browser/bot.rb +34 -26
- data/lib/browser/bot/empty_user_agent_matcher.rb +11 -0
- data/lib/browser/bot/keyword_matcher.rb +11 -0
- data/lib/browser/bot/known_bots_matcher.rb +11 -0
- data/lib/browser/browser.rb +40 -37
- data/lib/browser/chrome.rb +1 -1
- data/lib/browser/device.rb +25 -22
- data/lib/browser/meta.rb +13 -13
- data/lib/browser/middleware.rb +1 -1
- data/lib/browser/middleware/context/additions.rb +1 -1
- data/lib/browser/platform.rb +16 -13
- data/lib/browser/qq.rb +1 -1
- data/lib/browser/rails.rb +3 -3
- data/lib/browser/sputnik.rb +1 -4
- data/lib/browser/version.rb +1 -1
- data/test/browser_test.rb +0 -4
- data/test/ua.yml +3 -2
- data/test/ua_bots.yml +2 -0
- data/test/ua_search_engines.yml +1 -0
- data/test/unit/accept_language_test.rb +6 -0
- data/test/unit/blackberry_test.rb +0 -6
- data/test/unit/bots_test.rb +26 -39
- data/test/unit/chrome_test.rb +8 -3
- data/test/unit/edge_test.rb +0 -4
- data/test/unit/firefox_test.rb +0 -3
- data/test/unit/internet_explorer_test.rb +0 -12
- data/test/unit/ios_test.rb +0 -5
- data/test/unit/kindle_test.rb +0 -2
- data/test/unit/meta_test.rb +0 -1
- data/test/unit/opera_test.rb +0 -2
- data/test/unit/sputnik_test.rb +1 -0
- metadata +9 -6
data/test/unit/chrome_test.rb
CHANGED
@@ -10,7 +10,6 @@ class ChromeTest < Minitest::Test
|
|
10
10
|
assert browser.chrome?
|
11
11
|
refute browser.safari?
|
12
12
|
assert browser.webkit?
|
13
|
-
assert browser.modern?
|
14
13
|
assert_equal "5.0.375.99", browser.full_version
|
15
14
|
assert_equal "5", browser.version
|
16
15
|
end
|
@@ -22,7 +21,6 @@ class ChromeTest < Minitest::Test
|
|
22
21
|
assert browser.chrome?
|
23
22
|
refute browser.safari?
|
24
23
|
assert browser.webkit?
|
25
|
-
assert browser.modern?
|
26
24
|
assert_equal "19.0.1084.60", browser.full_version
|
27
25
|
assert_equal "19", browser.version
|
28
26
|
end
|
@@ -35,7 +33,6 @@ class ChromeTest < Minitest::Test
|
|
35
33
|
assert browser.platform.android?
|
36
34
|
refute browser.safari?
|
37
35
|
assert browser.webkit?
|
38
|
-
assert browser.modern?
|
39
36
|
assert_equal "28.0.1500.94", browser.full_version
|
40
37
|
assert_equal "28", browser.version
|
41
38
|
end
|
@@ -61,6 +58,14 @@ class ChromeTest < Minitest::Test
|
|
61
58
|
assert browser.chrome?
|
62
59
|
end
|
63
60
|
|
61
|
+
test "detects chrome on android 10" do
|
62
|
+
browser = Browser.new(Browser["ANDROID_Q"])
|
63
|
+
|
64
|
+
assert browser.chrome?
|
65
|
+
assert_equal "Chrome", browser.name
|
66
|
+
assert_equal "78", browser.version
|
67
|
+
end
|
68
|
+
|
64
69
|
test "detects version by range" do
|
65
70
|
browser = Browser.new(Browser["CHROME"])
|
66
71
|
assert browser.chrome?(%w[>=5 <6])
|
data/test/unit/edge_test.rb
CHANGED
@@ -12,7 +12,6 @@ class EdgeTest < ActionController::TestCase
|
|
12
12
|
assert_equal "12", browser.version
|
13
13
|
assert browser.platform.windows10?
|
14
14
|
assert browser.edge?
|
15
|
-
assert browser.modern?
|
16
15
|
refute browser.webkit?
|
17
16
|
refute browser.chrome?
|
18
17
|
refute browser.safari?
|
@@ -30,7 +29,6 @@ class EdgeTest < ActionController::TestCase
|
|
30
29
|
assert_equal "7", browser.msie_version
|
31
30
|
assert browser.edge?
|
32
31
|
assert browser.compatibility_view?
|
33
|
-
refute browser.modern?
|
34
32
|
refute browser.webkit?
|
35
33
|
refute browser.chrome?
|
36
34
|
refute browser.safari?
|
@@ -47,7 +45,6 @@ class EdgeTest < ActionController::TestCase
|
|
47
45
|
refute browser.platform.windows10?
|
48
46
|
assert browser.platform.windows_phone?
|
49
47
|
assert browser.edge?
|
50
|
-
assert browser.modern?
|
51
48
|
refute browser.webkit?
|
52
49
|
refute browser.chrome?
|
53
50
|
refute browser.safari?
|
@@ -63,7 +60,6 @@ class EdgeTest < ActionController::TestCase
|
|
63
60
|
assert browser.platform.mac?
|
64
61
|
refute browser.platform.windows?
|
65
62
|
assert browser.edge?
|
66
|
-
assert browser.modern?
|
67
63
|
assert browser.webkit?
|
68
64
|
refute browser.chrome?
|
69
65
|
refute browser.safari?
|
data/test/unit/firefox_test.rb
CHANGED
@@ -8,7 +8,6 @@ class FirefoxTest < Minitest::Test
|
|
8
8
|
|
9
9
|
assert_equal "Firefox", browser.name
|
10
10
|
assert browser.firefox?
|
11
|
-
refute browser.modern?
|
12
11
|
assert_equal "3.8", browser.full_version
|
13
12
|
assert_equal "3", browser.version
|
14
13
|
end
|
@@ -29,7 +28,6 @@ class FirefoxTest < Minitest::Test
|
|
29
28
|
assert_equal :firefox, browser.id
|
30
29
|
assert_equal "Firefox", browser.name
|
31
30
|
assert browser.firefox?
|
32
|
-
assert browser.modern?
|
33
31
|
assert_equal "17.0", browser.full_version
|
34
32
|
assert_equal "17", browser.version
|
35
33
|
end
|
@@ -40,7 +38,6 @@ class FirefoxTest < Minitest::Test
|
|
40
38
|
assert_equal :firefox, browser.id
|
41
39
|
assert_equal "Firefox", browser.name
|
42
40
|
assert browser.firefox?
|
43
|
-
assert browser.modern?
|
44
41
|
assert browser.platform.android?
|
45
42
|
assert_equal "14.0", browser.full_version
|
46
43
|
assert_equal "14", browser.version
|
@@ -9,7 +9,6 @@ class IeTest < Minitest::Test
|
|
9
9
|
assert_equal "Internet Explorer", browser.name
|
10
10
|
assert browser.ie?
|
11
11
|
assert browser.ie?(6)
|
12
|
-
refute browser.modern?
|
13
12
|
assert_equal "6.0", browser.full_version
|
14
13
|
assert_equal "6", browser.version
|
15
14
|
end
|
@@ -20,7 +19,6 @@ class IeTest < Minitest::Test
|
|
20
19
|
assert_equal "Internet Explorer", browser.name
|
21
20
|
assert browser.ie?
|
22
21
|
assert browser.ie?(7)
|
23
|
-
refute browser.modern?
|
24
22
|
assert_equal "7.0", browser.full_version
|
25
23
|
assert_equal "7", browser.version
|
26
24
|
end
|
@@ -31,7 +29,6 @@ class IeTest < Minitest::Test
|
|
31
29
|
assert_equal "Internet Explorer", browser.name
|
32
30
|
assert browser.ie?
|
33
31
|
assert browser.ie?(8)
|
34
|
-
refute browser.modern?
|
35
32
|
refute browser.compatibility_view?
|
36
33
|
assert_equal "8.0", browser.full_version
|
37
34
|
assert_equal "8", browser.version
|
@@ -43,7 +40,6 @@ class IeTest < Minitest::Test
|
|
43
40
|
assert_equal "Internet Explorer", browser.name
|
44
41
|
assert browser.ie?
|
45
42
|
assert browser.ie?(8)
|
46
|
-
refute browser.modern?
|
47
43
|
assert browser.compatibility_view?
|
48
44
|
assert_equal "8.0", browser.full_version
|
49
45
|
assert_equal "8", browser.version
|
@@ -57,7 +53,6 @@ class IeTest < Minitest::Test
|
|
57
53
|
assert_equal "Internet Explorer", browser.name
|
58
54
|
assert browser.ie?
|
59
55
|
assert browser.ie?(9)
|
60
|
-
assert browser.modern?
|
61
56
|
refute browser.compatibility_view?
|
62
57
|
assert_equal "9.0", browser.full_version
|
63
58
|
assert_equal "9", browser.version
|
@@ -69,7 +64,6 @@ class IeTest < Minitest::Test
|
|
69
64
|
assert_equal "Internet Explorer", browser.name
|
70
65
|
assert browser.ie?
|
71
66
|
assert browser.ie?(9)
|
72
|
-
refute browser.modern?
|
73
67
|
assert browser.compatibility_view?
|
74
68
|
assert_equal "9.0", browser.full_version
|
75
69
|
assert_equal "9", browser.version
|
@@ -83,7 +77,6 @@ class IeTest < Minitest::Test
|
|
83
77
|
assert_equal "Internet Explorer", browser.name
|
84
78
|
assert browser.ie?
|
85
79
|
assert browser.ie?(10)
|
86
|
-
assert browser.modern?
|
87
80
|
refute browser.compatibility_view?
|
88
81
|
assert_equal "10.0", browser.full_version
|
89
82
|
assert_equal "10", browser.version
|
@@ -95,7 +88,6 @@ class IeTest < Minitest::Test
|
|
95
88
|
assert_equal "Internet Explorer", browser.name
|
96
89
|
assert browser.ie?
|
97
90
|
assert browser.ie?(10)
|
98
|
-
refute browser.modern?
|
99
91
|
assert browser.compatibility_view?
|
100
92
|
assert_equal "10.0", browser.full_version
|
101
93
|
assert_equal "10", browser.version
|
@@ -109,7 +101,6 @@ class IeTest < Minitest::Test
|
|
109
101
|
assert_equal "Internet Explorer", browser.name
|
110
102
|
assert browser.ie?
|
111
103
|
assert browser.ie?(11)
|
112
|
-
assert browser.modern?
|
113
104
|
refute browser.compatibility_view?
|
114
105
|
assert_equal "11.0", browser.full_version
|
115
106
|
assert_equal "11", browser.version
|
@@ -121,7 +112,6 @@ class IeTest < Minitest::Test
|
|
121
112
|
assert_equal "Internet Explorer", browser.name
|
122
113
|
assert browser.ie?
|
123
114
|
assert browser.ie?(11)
|
124
|
-
refute browser.modern?
|
125
115
|
assert browser.compatibility_view?
|
126
116
|
assert_equal "11.0", browser.full_version
|
127
117
|
assert_equal "11", browser.version
|
@@ -145,7 +135,6 @@ class IeTest < Minitest::Test
|
|
145
135
|
assert_equal "Internet Explorer", browser.name
|
146
136
|
assert browser.ie?
|
147
137
|
assert browser.ie?(11)
|
148
|
-
assert browser.modern?
|
149
138
|
refute browser.compatibility_view?
|
150
139
|
refute browser.platform.windows_rt?
|
151
140
|
assert browser.platform.windows_touchscreen_desktop?
|
@@ -166,7 +155,6 @@ class IeTest < Minitest::Test
|
|
166
155
|
refute browser.platform.windows10?
|
167
156
|
refute browser.platform.windows_phone?
|
168
157
|
refute browser.edge?
|
169
|
-
refute browser.modern?
|
170
158
|
refute browser.device.mobile?
|
171
159
|
refute browser.webkit?
|
172
160
|
refute browser.chrome?
|
data/test/unit/ios_test.rb
CHANGED
@@ -9,7 +9,6 @@ class IosTest < Minitest::Test
|
|
9
9
|
assert_equal "Safari", browser.name
|
10
10
|
assert browser.safari?
|
11
11
|
assert browser.webkit?
|
12
|
-
assert browser.modern?
|
13
12
|
assert browser.platform.ios?
|
14
13
|
refute browser.platform.mac?
|
15
14
|
assert_equal "3.0", browser.full_version
|
@@ -22,7 +21,6 @@ class IosTest < Minitest::Test
|
|
22
21
|
assert_equal "Safari", browser.name
|
23
22
|
assert browser.safari?
|
24
23
|
assert browser.webkit?
|
25
|
-
assert browser.modern?
|
26
24
|
assert_equal "5.0.1", browser.full_version
|
27
25
|
assert_equal "5", browser.version
|
28
26
|
end
|
@@ -56,7 +54,6 @@ class IosTest < Minitest::Test
|
|
56
54
|
assert_equal "Safari", browser.name
|
57
55
|
assert browser.safari?
|
58
56
|
assert browser.webkit?
|
59
|
-
assert browser.modern?
|
60
57
|
assert browser.platform.ios?
|
61
58
|
refute browser.platform.mac?
|
62
59
|
assert_equal "4.0.4", browser.full_version
|
@@ -126,7 +123,6 @@ class IosTest < Minitest::Test
|
|
126
123
|
assert meta.include?("ios")
|
127
124
|
assert meta.include?("safari")
|
128
125
|
assert meta.include?("safari3")
|
129
|
-
assert meta.include?("modern")
|
130
126
|
assert meta.include?("mobile")
|
131
127
|
refute meta.include?("tablet")
|
132
128
|
end
|
@@ -138,7 +134,6 @@ class IosTest < Minitest::Test
|
|
138
134
|
assert meta.include?("webkit")
|
139
135
|
assert meta.include?("ios")
|
140
136
|
assert meta.include?("safari")
|
141
|
-
assert meta.include?("modern")
|
142
137
|
assert meta.include?("tablet")
|
143
138
|
refute meta.include?("mobile")
|
144
139
|
end
|
data/test/unit/kindle_test.rb
CHANGED
@@ -17,13 +17,11 @@ class KindleTest < Minitest::Test
|
|
17
17
|
browser = Browser.new(Browser["KINDLE_FIRE_HD"])
|
18
18
|
|
19
19
|
assert browser.webkit?
|
20
|
-
assert browser.modern?
|
21
20
|
end
|
22
21
|
|
23
22
|
test "detects kindle fire hd mobile" do
|
24
23
|
browser = Browser.new(Browser["KINDLE_FIRE_HD_MOBILE"])
|
25
24
|
|
26
25
|
assert browser.webkit?
|
27
|
-
assert browser.modern?
|
28
26
|
end
|
29
27
|
end
|
data/test/unit/meta_test.rb
CHANGED
data/test/unit/opera_test.rb
CHANGED
@@ -8,7 +8,6 @@ class OperaTest < Minitest::Test
|
|
8
8
|
|
9
9
|
assert_equal "Opera", browser.name
|
10
10
|
assert browser.opera?
|
11
|
-
refute browser.modern?
|
12
11
|
assert_equal "11.64", browser.full_version
|
13
12
|
assert_equal "11", browser.version
|
14
13
|
end
|
@@ -20,7 +19,6 @@ class OperaTest < Minitest::Test
|
|
20
19
|
assert_equal :opera, browser.id
|
21
20
|
assert browser.opera?
|
22
21
|
assert browser.webkit?
|
23
|
-
assert browser.modern?
|
24
22
|
refute browser.chrome?
|
25
23
|
assert_equal "15.0.1147.44", browser.full_version
|
26
24
|
assert_equal "15", browser.version
|
data/test/unit/sputnik_test.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Vieira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -140,16 +140,16 @@ dependencies:
|
|
140
140
|
name: rubocop-fnando
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
145
|
+
version: 0.0.3
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - "
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 0.0.3
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: simplecov
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -195,6 +195,9 @@ files:
|
|
195
195
|
- lib/browser/base.rb
|
196
196
|
- lib/browser/blackberry.rb
|
197
197
|
- lib/browser/bot.rb
|
198
|
+
- lib/browser/bot/empty_user_agent_matcher.rb
|
199
|
+
- lib/browser/bot/keyword_matcher.rb
|
200
|
+
- lib/browser/bot/known_bots_matcher.rb
|
198
201
|
- lib/browser/browser.rb
|
199
202
|
- lib/browser/chrome.rb
|
200
203
|
- lib/browser/detect_version.rb
|