browser_sniffer 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/cla.yml +22 -0
- data/.github/workflows/test.yml +1 -0
- data/dev.yml +7 -0
- data/lib/browser_sniffer/patterns.rb +10 -0
- data/lib/browser_sniffer/version.rb +1 -1
- data/lib/browser_sniffer.rb +12 -3
- data/test/browser_sniffer_test.rb +122 -43
- metadata +5 -4
- data/.github/probots.yml +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b1981cafa7ca5c8a1eb77724557e5dc4d6205253bdf658323b9eb18ab9694a1
|
4
|
+
data.tar.gz: d41f6ccc6071d9c89dd56aa63d618ab42bc10fcafb27ebc15d01d42b489bb14a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d51befa9a0a988ce65e5a1aa14d9f37c8f67ce88e1b38066c5df3ce333ca052d21221024d9bb559c3113310b077f374367fe545184f510b9e068a3217eb8d690
|
7
|
+
data.tar.gz: 3b791421e11af2584a89f6984563a9ca7ab3c81d67ff4a0f084440bca90c4b81a5ef0ea5098a2c75b0276e78c8d3ae96e5c6857cc98de6a686663c858f33d4da
|
@@ -0,0 +1,22 @@
|
|
1
|
+
name: Contributor License Agreement (CLA)
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request_target:
|
5
|
+
types: [opened, synchronize]
|
6
|
+
issue_comment:
|
7
|
+
types: [created]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
cla:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
if: |
|
13
|
+
(github.event.issue.pull_request
|
14
|
+
&& !github.event.issue.pull_request.merged_at
|
15
|
+
&& contains(github.event.comment.body, 'signed')
|
16
|
+
)
|
17
|
+
|| (github.event.pull_request && !github.event.pull_request.merged)
|
18
|
+
steps:
|
19
|
+
- uses: Shopify/shopify-cla-action@v1
|
20
|
+
with:
|
21
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
22
|
+
cla-token: ${{ secrets.CLA_TOKEN }}
|
data/.github/workflows/test.yml
CHANGED
data/dev.yml
ADDED
@@ -157,6 +157,16 @@ class BrowserSniffer
|
|
157
157
|
/(mosaic)[\/\s]((\d+)?[\w\.]+)/i # Mosaic
|
158
158
|
], [:name, :version, :major]
|
159
159
|
],
|
160
|
+
:in_app_browser => [
|
161
|
+
[
|
162
|
+
/FBAN\/FBIOS/,
|
163
|
+
/FB_IAB\/FB4A/,
|
164
|
+
/FBAN\/MessengerForiOS/,
|
165
|
+
/FB_IAB\/MESSENGER/,
|
166
|
+
], [[:type, :facebook]], [
|
167
|
+
/Instagram/,
|
168
|
+
], [[:type, :instagram]],
|
169
|
+
],
|
160
170
|
:device => [
|
161
171
|
[
|
162
172
|
# Shopify Mobile for iPhone
|
data/lib/browser_sniffer.rb
CHANGED
@@ -89,6 +89,12 @@ class BrowserSniffer
|
|
89
89
|
|
90
90
|
|
91
91
|
|
92
|
+
def in_app_browser
|
93
|
+
in_app_browser_info[:type]
|
94
|
+
end
|
95
|
+
|
96
|
+
|
97
|
+
|
92
98
|
def device
|
93
99
|
device_info[:name]
|
94
100
|
end
|
@@ -121,6 +127,10 @@ class BrowserSniffer
|
|
121
127
|
@browser_info ||= parse_user_agent_for(BrowserSniffer::REGEX_MAP[:browser])
|
122
128
|
end
|
123
129
|
|
130
|
+
def in_app_browser_info
|
131
|
+
@in_app_browser_info = parse_user_agent_for(BrowserSniffer::REGEX_MAP[:in_app_browser])
|
132
|
+
end
|
133
|
+
|
124
134
|
def engine_info
|
125
135
|
@engine_info ||= parse_user_agent_for(BrowserSniffer::REGEX_MAP[:engine])
|
126
136
|
end
|
@@ -135,9 +145,8 @@ class BrowserSniffer
|
|
135
145
|
|
136
146
|
def parse_user_agent_for(type)
|
137
147
|
result = {}
|
138
|
-
type.each_slice(2) do |
|
139
|
-
|
140
|
-
slice[0].each do |regex|
|
148
|
+
type.each_slice(2) do |regexps, format|
|
149
|
+
regexps.each do |regex|
|
141
150
|
regex.match(user_agent) do |match|
|
142
151
|
format.each_with_index do |field, index|
|
143
152
|
if field.class == Symbol
|
@@ -13,7 +13,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
13
13
|
:os => :ios,
|
14
14
|
:os_version => '3.2',
|
15
15
|
:browser => :safari,
|
16
|
-
:major_browser_version => 4
|
16
|
+
:major_browser_version => 4,
|
17
|
+
:in_app_browser => nil,
|
17
18
|
},
|
18
19
|
:ipad_new => {
|
19
20
|
:user_agent => "Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10",
|
@@ -26,7 +27,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
26
27
|
:os => :ios,
|
27
28
|
:os_version => '3.2',
|
28
29
|
:browser => :safari,
|
29
|
-
:major_browser_version => 4
|
30
|
+
:major_browser_version => 4,
|
31
|
+
:in_app_browser => nil,
|
30
32
|
},
|
31
33
|
:ipad_chrome => {
|
32
34
|
:user_agent => "Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.82 Mobile/10A523 Safari/7534.48.3",
|
@@ -39,7 +41,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
39
41
|
:os => :ios,
|
40
42
|
:os_version => '6.0.1',
|
41
43
|
:browser => :chrome,
|
42
|
-
:major_browser_version => 21
|
44
|
+
:major_browser_version => 21,
|
45
|
+
:in_app_browser => nil,
|
43
46
|
},
|
44
47
|
:iphone => {
|
45
48
|
:user_agent => "Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16",
|
@@ -52,7 +55,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
52
55
|
:os => :ios,
|
53
56
|
:os_version => '3.1.2',
|
54
57
|
:browser => :safari,
|
55
|
-
:major_browser_version => 4
|
58
|
+
:major_browser_version => 4,
|
59
|
+
:in_app_browser => nil,
|
56
60
|
},
|
57
61
|
:ipod_touch => {
|
58
62
|
:user_agent => "Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5H11a Safari/525.20",
|
@@ -65,7 +69,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
65
69
|
:os => :ios,
|
66
70
|
:os_version => '2.2.1',
|
67
71
|
:browser => :safari,
|
68
|
-
:major_browser_version => 3
|
72
|
+
:major_browser_version => 3,
|
73
|
+
:in_app_browser => nil,
|
69
74
|
},
|
70
75
|
:ipod_touch_ios4 => {
|
71
76
|
:user_agent => "Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
|
@@ -78,7 +83,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
78
83
|
:os => :ios,
|
79
84
|
:os_version => '4.3.3',
|
80
85
|
:browser => :safari,
|
81
|
-
:major_browser_version => 5
|
86
|
+
:major_browser_version => 5,
|
87
|
+
:in_app_browser => nil,
|
82
88
|
},
|
83
89
|
:ipod_touch_ios7 => {
|
84
90
|
:user_agent => "Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53",
|
@@ -91,7 +97,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
91
97
|
:os => :ios,
|
92
98
|
:os_version => '7.0.4',
|
93
99
|
:browser => :safari,
|
94
|
-
:major_browser_version => 7
|
100
|
+
:major_browser_version => 7,
|
101
|
+
:in_app_browser => nil,
|
95
102
|
},
|
96
103
|
:nexus_one => {
|
97
104
|
:user_agent => "Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
|
@@ -104,7 +111,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
104
111
|
:os => :android,
|
105
112
|
:os_version => '2.2',
|
106
113
|
:browser => :safari,
|
107
|
-
:major_browser_version => 4
|
114
|
+
:major_browser_version => 4,
|
115
|
+
:in_app_browser => nil,
|
108
116
|
},
|
109
117
|
:htc_droid => {
|
110
118
|
:user_agent => "Mozilla/5.0 (Linux; U; Android 2.2; nl-nl; Desire_A8181 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
|
@@ -117,7 +125,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
117
125
|
:os => :android,
|
118
126
|
:os_version => '2.2',
|
119
127
|
:browser => :safari,
|
120
|
-
:major_browser_version => 4
|
128
|
+
:major_browser_version => 4,
|
129
|
+
:in_app_browser => nil,
|
121
130
|
},
|
122
131
|
:bb_torch => {
|
123
132
|
:user_agent => "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, Like Gecko) Version/6.0.0.141 Mobile Safari/534.1+",
|
@@ -130,7 +139,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
130
139
|
:os => :blackberry,
|
131
140
|
:os_version => nil,
|
132
141
|
:browser => :safari,
|
133
|
-
:major_browser_version => 6
|
142
|
+
:major_browser_version => 6,
|
143
|
+
:in_app_browser => nil,
|
134
144
|
},
|
135
145
|
:bb_8830 => {
|
136
146
|
:user_agent => "BlackBerry8330/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105",
|
@@ -143,7 +153,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
143
153
|
:os => :blackberry,
|
144
154
|
:os_version => '4.3.0',
|
145
155
|
:browser => nil,
|
146
|
-
:major_browser_version => nil
|
156
|
+
:major_browser_version => nil,
|
157
|
+
:in_app_browser => nil,
|
147
158
|
},
|
148
159
|
:kindle => {
|
149
160
|
:user_agent => "Mozilla/4.0 (compatible; Linux 2.6.22) NetFront/3.4 Kindle/2.0 (screen 600x800)",
|
@@ -157,7 +168,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
157
168
|
:os_version => '2.6.22',
|
158
169
|
:browser => nil,
|
159
170
|
:browser_name => 'Kindle',
|
160
|
-
:major_browser_version => 2
|
171
|
+
:major_browser_version => 2,
|
172
|
+
:in_app_browser => nil,
|
161
173
|
},
|
162
174
|
:nokia_classic => {
|
163
175
|
:user_agent => "Nokia3120Classic/2.0 (06.20) Profile/MIDP-2.1 Configuration/CLDC-1.1",
|
@@ -170,7 +182,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
170
182
|
:os => nil,
|
171
183
|
:os_version => nil,
|
172
184
|
:browser => nil,
|
173
|
-
:major_browser_version => nil
|
185
|
+
:major_browser_version => nil,
|
186
|
+
:in_app_browser => nil,
|
174
187
|
},
|
175
188
|
:nokia_3200 => {
|
176
189
|
:user_agent => "Nokia3200/1.0 (5.29) Profile/MIDP-1.0 Configuration/CLDC-1.0\nUP.Link/6.3.1.13.0",
|
@@ -183,7 +196,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
183
196
|
:os => nil,
|
184
197
|
:os_version => nil,
|
185
198
|
:browser => nil,
|
186
|
-
:major_browser_version => nil
|
199
|
+
:major_browser_version => nil,
|
200
|
+
:in_app_browser => nil,
|
187
201
|
},
|
188
202
|
:att => {
|
189
203
|
:user_agent => "Opera/9.51 Beta (Microsoft Windows; PPC; Opera Mobi/1718; U; en)",
|
@@ -196,7 +210,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
196
210
|
:os => :windows,
|
197
211
|
:os_version => nil,
|
198
212
|
:browser => :opera,
|
199
|
-
:major_browser_version => 9
|
213
|
+
:major_browser_version => 9,
|
214
|
+
:in_app_browser => nil,
|
200
215
|
},
|
201
216
|
:benq => {
|
202
217
|
:user_agent => "BenQ-CF61/1.00/WAP2.0/MIDP2.0/CLDC1.0 UP.Browser/6.3.0.4.c.1.102 (GUI) MMP/2.0",
|
@@ -209,7 +224,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
209
224
|
:os => nil,
|
210
225
|
:os_version => nil,
|
211
226
|
:browser => nil,
|
212
|
-
:major_browser_version => nil
|
227
|
+
:major_browser_version => nil,
|
228
|
+
:in_app_browser => nil,
|
213
229
|
},
|
214
230
|
:dell_streak => {
|
215
231
|
:user_agent => "Mozilla/5.0 (Linux; U; Android 1.6; en-gb; Dell Streak Build/Donut AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/ 525.20.1",
|
@@ -221,7 +237,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
221
237
|
:major_engine_version => 528,
|
222
238
|
:os => :android,
|
223
239
|
:os_version => '1.6',
|
224
|
-
:major_browser_version => 3
|
240
|
+
:major_browser_version => 3,
|
241
|
+
:in_app_browser => nil,
|
225
242
|
},
|
226
243
|
:hp_ipaq => {
|
227
244
|
:user_agent => "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320; HP iPAQ h6300)",
|
@@ -234,7 +251,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
234
251
|
:os => :windows,
|
235
252
|
:os_version => 'CE',
|
236
253
|
:browser => :ie,
|
237
|
-
:major_browser_version => 4
|
254
|
+
:major_browser_version => 4,
|
255
|
+
:in_app_browser => nil,
|
238
256
|
},
|
239
257
|
:nintendo_ds => {
|
240
258
|
:user_agent => "Mozilla/4.0 (compatible; MSIE 6.0; Nitro) Opera 8.50 [en Mozilla/4.0 (compatible; MSIE 6.0; Nitro) Opera 8.50 [ja]",
|
@@ -247,7 +265,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
247
265
|
:os => nil,
|
248
266
|
:os_version => nil,
|
249
267
|
:browser => :opera,
|
250
|
-
:major_browser_version => 8
|
268
|
+
:major_browser_version => 8,
|
269
|
+
:in_app_browser => nil,
|
251
270
|
},
|
252
271
|
:firefox_linux => {
|
253
272
|
:user_agent => "Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8",
|
@@ -260,7 +279,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
260
279
|
:os => :linux,
|
261
280
|
:os_version => '10.04',
|
262
281
|
:browser => :firefox,
|
263
|
-
:major_browser_version => 3
|
282
|
+
:major_browser_version => 3,
|
283
|
+
:in_app_browser => nil,
|
264
284
|
},
|
265
285
|
:safari_mac => {
|
266
286
|
:user_agent => "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-ca) AppleWebKit/534.6+ (KHTML, like Gecko) Version/5.0 Safari/533.16",
|
@@ -273,7 +293,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
273
293
|
:os => :mac,
|
274
294
|
:os_version => '10.6.3',
|
275
295
|
:browser => :safari,
|
276
|
-
:major_browser_version => 5
|
296
|
+
:major_browser_version => 5,
|
297
|
+
:in_app_browser => nil,
|
277
298
|
},
|
278
299
|
:chrome_mac => {
|
279
300
|
:user_agent => "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/6.0.495.0 Safari/534.6",
|
@@ -286,7 +307,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
286
307
|
:os => :mac,
|
287
308
|
:os_version => '10.6.3',
|
288
309
|
:browser => :chrome,
|
289
|
-
:major_browser_version => 6
|
310
|
+
:major_browser_version => 6,
|
311
|
+
:in_app_browser => nil,
|
290
312
|
},
|
291
313
|
:chrome_win => {
|
292
314
|
:user_agent => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4",
|
@@ -299,7 +321,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
299
321
|
:os => :windows,
|
300
322
|
:os_version => 'Vista',
|
301
323
|
:browser => :chrome,
|
302
|
-
:major_browser_version => 5
|
324
|
+
:major_browser_version => 5,
|
325
|
+
:in_app_browser => nil,
|
303
326
|
},
|
304
327
|
:ie9 => {
|
305
328
|
:user_agent => "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
|
@@ -312,7 +335,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
312
335
|
:os => :windows,
|
313
336
|
:os_version => '7',
|
314
337
|
:browser => :ie,
|
315
|
-
:major_browser_version => 9
|
338
|
+
:major_browser_version => 9,
|
339
|
+
:in_app_browser => nil,
|
316
340
|
},
|
317
341
|
:ie8 => {
|
318
342
|
:user_agent => "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC)",
|
@@ -325,7 +349,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
325
349
|
:os => :windows,
|
326
350
|
:os_version => '7',
|
327
351
|
:browser => :ie,
|
328
|
-
:major_browser_version => 8
|
352
|
+
:major_browser_version => 8,
|
353
|
+
:in_app_browser => nil,
|
329
354
|
},
|
330
355
|
:ie7 => {
|
331
356
|
:user_agent => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6.4; .NET CLR 1.1.4322; FDM; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)",
|
@@ -338,7 +363,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
338
363
|
:os => :windows,
|
339
364
|
:os_version => 'XP',
|
340
365
|
:browser => :ie,
|
341
|
-
:major_browser_version => 7
|
366
|
+
:major_browser_version => 7,
|
367
|
+
:in_app_browser => nil,
|
342
368
|
},
|
343
369
|
:opera_win => {
|
344
370
|
:user_agent => "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.5.24 Version/10.54",
|
@@ -351,7 +377,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
351
377
|
:os => :windows,
|
352
378
|
:os_version => '7',
|
353
379
|
:browser => :opera,
|
354
|
-
:major_browser_version => 9
|
380
|
+
:major_browser_version => 9,
|
381
|
+
:in_app_browser => nil,
|
355
382
|
},
|
356
383
|
:wii => {
|
357
384
|
:user_agent => "Opera/9.00 (Nintendo Wii; U; ; 1038-58; Wii Shop Channel/1.0; en)",
|
@@ -364,7 +391,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
364
391
|
:os => nil,
|
365
392
|
:os_version => 'Wii',
|
366
393
|
:browser => :opera,
|
367
|
-
:major_browser_version => 9
|
394
|
+
:major_browser_version => 9,
|
395
|
+
:in_app_browser => nil,
|
368
396
|
},
|
369
397
|
:springboard_launched_ipod_browser => {
|
370
398
|
:user_agent => "Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8J2",
|
@@ -378,7 +406,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
378
406
|
:os_version => '4.3.3',
|
379
407
|
:browser => :safari,
|
380
408
|
:browser_name => 'Mobile Safari',
|
381
|
-
:major_browser_version => 533
|
409
|
+
:major_browser_version => 533,
|
410
|
+
:in_app_browser => nil,
|
382
411
|
},
|
383
412
|
:ipod_os_4_3_3 => {
|
384
413
|
:user_agent => "Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
|
@@ -391,7 +420,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
391
420
|
:os => :ios,
|
392
421
|
:os_version => '4.3.3',
|
393
422
|
:browser => :safari,
|
394
|
-
:major_browser_version => 5
|
423
|
+
:major_browser_version => 5,
|
424
|
+
:in_app_browser => nil,
|
395
425
|
},
|
396
426
|
:iphone_4S => {
|
397
427
|
:user_agent => "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3",
|
@@ -404,7 +434,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
404
434
|
:os => :ios,
|
405
435
|
:os_version => '5.0',
|
406
436
|
:browser => :safari,
|
407
|
-
:major_browser_version => 5
|
437
|
+
:major_browser_version => 5,
|
438
|
+
:in_app_browser => nil,
|
408
439
|
},
|
409
440
|
:iphone_ios7_webview => {
|
410
441
|
:user_agent => "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11A465",
|
@@ -418,7 +449,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
418
449
|
:os_version => '7.0',
|
419
450
|
:browser => :safari,
|
420
451
|
:browser_name => 'Mobile Safari',
|
421
|
-
:major_browser_version => 537
|
452
|
+
:major_browser_version => 537,
|
453
|
+
:in_app_browser => nil,
|
422
454
|
},
|
423
455
|
:ipad_ios10_webview => {
|
424
456
|
:user_agent => "Mozilla/5.0 (iPad; CPU OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) FxiOS/6.1 Mobile/14D27 Safari/602.4.6",
|
@@ -432,7 +464,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
432
464
|
:os_version => '10.2.1',
|
433
465
|
:browser => :firefoxios,
|
434
466
|
:browser_name => 'Mobile Firefox',
|
435
|
-
:major_browser_version => 6
|
467
|
+
:major_browser_version => 6,
|
468
|
+
:in_app_browser => nil,
|
436
469
|
},
|
437
470
|
:ipad_ios5 => {
|
438
471
|
:user_agent => "Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3",
|
@@ -445,7 +478,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
445
478
|
:os => :ios,
|
446
479
|
:os_version => '5.0',
|
447
480
|
:browser => :safari,
|
448
|
-
:major_browser_version => 5
|
481
|
+
:major_browser_version => 5,
|
482
|
+
:in_app_browser => nil,
|
449
483
|
},
|
450
484
|
:excel_mac => {
|
451
485
|
:user_agent => "Mozilla/5.0 (Macintosh; Intel Mac OS X) Excel/14.34.0",
|
@@ -461,7 +495,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
461
495
|
:os_version => nil,
|
462
496
|
:browser => nil,
|
463
497
|
:browser_name => 'Excel',
|
464
|
-
:major_browser_version => 14
|
498
|
+
:major_browser_version => 14,
|
499
|
+
:in_app_browser => nil,
|
465
500
|
},
|
466
501
|
:win7_ie11 => {
|
467
502
|
:user_agent => "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko",
|
@@ -476,7 +511,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
476
511
|
:os => :windows,
|
477
512
|
:os_version => "7",
|
478
513
|
:browser => :ie,
|
479
|
-
:major_browser_version => 11
|
514
|
+
:major_browser_version => 11,
|
515
|
+
:in_app_browser => nil,
|
480
516
|
},
|
481
517
|
:win8_ie11 => {
|
482
518
|
:user_agent => "Mozilla/5.0 (Windows NT 6.2; Trident/7.0; rv:11.0) like Gecko",
|
@@ -491,7 +527,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
491
527
|
:os => :windows,
|
492
528
|
:os_version => "8",
|
493
529
|
:browser => :ie,
|
494
|
-
:major_browser_version => 11
|
530
|
+
:major_browser_version => 11,
|
531
|
+
:in_app_browser => nil,
|
495
532
|
},
|
496
533
|
:win8_1_ie11 => {
|
497
534
|
:user_agent => "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko",
|
@@ -506,7 +543,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
506
543
|
:os => :windows,
|
507
544
|
:os_version => "8.1",
|
508
545
|
:browser => :ie,
|
509
|
-
:major_browser_version => 11
|
546
|
+
:major_browser_version => 11,
|
547
|
+
:in_app_browser => nil,
|
510
548
|
},
|
511
549
|
:win10_ie11 => {
|
512
550
|
:user_agent => "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; rv:11.0) like Gecko",
|
@@ -521,7 +559,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
521
559
|
:os => :windows,
|
522
560
|
:os_version => "10",
|
523
561
|
:browser => :ie,
|
524
|
-
:major_browser_version => 11
|
562
|
+
:major_browser_version => 11,
|
563
|
+
:in_app_browser => nil,
|
525
564
|
},
|
526
565
|
:win10_edge12 => {
|
527
566
|
:user_agent => "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136",
|
@@ -536,7 +575,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
536
575
|
:os => :windows,
|
537
576
|
:os_version => "10",
|
538
577
|
:browser => :edge,
|
539
|
-
:major_browser_version => 12
|
578
|
+
:major_browser_version => 12,
|
579
|
+
:in_app_browser => nil,
|
540
580
|
},
|
541
581
|
:daum => {
|
542
582
|
:user_agent => "Mozilla/5.0 (compatible; MSIE or Firefox mutant;) Daum 4.1",
|
@@ -549,7 +589,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
549
589
|
:os => nil,
|
550
590
|
:os_version => nil,
|
551
591
|
:browser => nil,
|
552
|
-
:major_browser_version => nil
|
592
|
+
:major_browser_version => nil,
|
593
|
+
:in_app_browser => nil,
|
553
594
|
},
|
554
595
|
:chromiumos_chrome => {
|
555
596
|
:user_agent => "Mozilla/5.0 (X11; CrOS x86_64 10066.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36",
|
@@ -563,6 +604,7 @@ class BrowserSnifferTest < Minitest::Test
|
|
563
604
|
:os_version => '10066.0.0',
|
564
605
|
:browser => :chrome,
|
565
606
|
:major_browser_version => 81,
|
607
|
+
:in_app_browser => nil,
|
566
608
|
},
|
567
609
|
:windows_phone_8_1_ie11 => {
|
568
610
|
:user_agent => "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; Microsoft; " \
|
@@ -578,7 +620,8 @@ class BrowserSnifferTest < Minitest::Test
|
|
578
620
|
:os => :windows,
|
579
621
|
:os_version => "8.1",
|
580
622
|
:browser => nil,
|
581
|
-
:major_browser_version => 11
|
623
|
+
:major_browser_version => 11,
|
624
|
+
:in_app_browser => nil,
|
582
625
|
},
|
583
626
|
:win10_ie11_in_ie7_compatibility_mode => {
|
584
627
|
:user_agent => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; " \
|
@@ -594,7 +637,43 @@ class BrowserSnifferTest < Minitest::Test
|
|
594
637
|
:os => :windows,
|
595
638
|
:os_version => "10",
|
596
639
|
:browser => :ie,
|
597
|
-
:major_browser_version => 7
|
640
|
+
:major_browser_version => 7,
|
641
|
+
:in_app_browser => nil,
|
642
|
+
},
|
643
|
+
:facebook_in_app_browser => {
|
644
|
+
:user_agent => "Mozilla/5.0 (iPhone; CPU iPhone OS 15_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/19G82 " \
|
645
|
+
"[FBAN/FBIOS;FBDV/iPhone13,4;FBMD/iPhone;FBSN/iOS;FBSV/15.6.1;FBSS/3;FBID/phone;FBLC/en_US;FBOP/5]",
|
646
|
+
:form_factor => :handheld,
|
647
|
+
:ios? => true,
|
648
|
+
:ie11? => false,
|
649
|
+
:ie11_actual? => false,
|
650
|
+
:android? => false,
|
651
|
+
:desktop? => false,
|
652
|
+
:engine => :webkit,
|
653
|
+
:major_engine_version => 605,
|
654
|
+
:os => :ios,
|
655
|
+
:os_version => "15.6.1",
|
656
|
+
:browser => :safari,
|
657
|
+
:major_browser_version => 605,
|
658
|
+
:in_app_browser => :facebook,
|
659
|
+
},
|
660
|
+
:instagram_in_app_browser => {
|
661
|
+
:user_agent => "Mozilla/5.0 (Linux; Android 12; SM-G970U1 Build/SP1A.210812.016; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 " \
|
662
|
+
"Chrome/103.0.5060.129 Mobile Safari/537.36 Instagram 251.1.0.11.106 " \
|
663
|
+
"Android (31/12; 480dpi; 1080x2020; samsung; SM-G970U1; beyond0q; qcom; en_US; 396185280)",
|
664
|
+
:form_factor => :handheld,
|
665
|
+
:ios? => false,
|
666
|
+
:ie11? => false,
|
667
|
+
:ie11_actual? => false,
|
668
|
+
:android? => true,
|
669
|
+
:desktop? => false,
|
670
|
+
:engine => :webkit,
|
671
|
+
:major_engine_version => 537,
|
672
|
+
:os => :android,
|
673
|
+
:os_version => "12",
|
674
|
+
:browser => :chrome,
|
675
|
+
:major_browser_version => 103,
|
676
|
+
:in_app_browser => :instagram,
|
598
677
|
},
|
599
678
|
}
|
600
679
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browser_sniffer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -59,7 +59,7 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- ".github/
|
62
|
+
- ".github/workflows/cla.yml"
|
63
63
|
- ".github/workflows/test.yml"
|
64
64
|
- ".gitignore"
|
65
65
|
- Gemfile
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- README.md
|
68
68
|
- Rakefile
|
69
69
|
- browser_sniffer.gemspec
|
70
|
+
- dev.yml
|
70
71
|
- init.rb
|
71
72
|
- lib/browser_sniffer.rb
|
72
73
|
- lib/browser_sniffer/patterns.rb
|
@@ -96,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
97
|
- !ruby/object:Gem::Version
|
97
98
|
version: '0'
|
98
99
|
requirements: []
|
99
|
-
rubygems_version: 3.
|
100
|
+
rubygems_version: 3.3.3
|
100
101
|
signing_key:
|
101
102
|
specification_version: 4
|
102
103
|
summary: Parses user agent strings and boils it all down to a few simple classifications.
|
data/.github/probots.yml
DELETED