device_detector 1.0.0 → 1.1.3

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.
Files changed (89) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +58 -4
  3. data/README.md +57 -21
  4. data/lib/device_detector/bot.rb +2 -2
  5. data/lib/device_detector/browser.rb +691 -0
  6. data/lib/device_detector/client.rb +11 -2
  7. data/lib/device_detector/client_hint.rb +249 -0
  8. data/lib/device_detector/device.rb +1954 -23
  9. data/lib/device_detector/memory_cache.rb +26 -19
  10. data/lib/device_detector/metadata_extractor.rb +7 -8
  11. data/lib/device_detector/model_extractor.rb +3 -3
  12. data/lib/device_detector/name_extractor.rb +2 -2
  13. data/lib/device_detector/os.rb +289 -112
  14. data/lib/device_detector/parser.rb +49 -13
  15. data/lib/device_detector/vendor_fragment.rb +25 -0
  16. data/lib/device_detector/version.rb +3 -1
  17. data/lib/device_detector/version_extractor.rb +29 -2
  18. data/lib/device_detector.rb +192 -44
  19. data/regexes/bots.yml +3399 -91
  20. data/regexes/client/browser_engine.yml +28 -4
  21. data/regexes/client/browsers.yml +2697 -408
  22. data/regexes/client/feed_readers.yml +60 -22
  23. data/regexes/client/hints/apps.yml +150 -0
  24. data/regexes/client/hints/browsers.yml +292 -0
  25. data/regexes/client/libraries.yml +598 -4
  26. data/regexes/client/mediaplayers.yml +110 -5
  27. data/regexes/client/mobile_apps.yml +2451 -14
  28. data/regexes/client/pim.yml +128 -3
  29. data/regexes/device/cameras.yml +6 -6
  30. data/regexes/device/car_browsers.yml +39 -3
  31. data/regexes/device/consoles.yml +40 -6
  32. data/regexes/device/mobiles.yml +38844 -2907
  33. data/regexes/device/notebooks.yml +127 -0
  34. data/regexes/device/portable_media_player.yml +75 -12
  35. data/regexes/device/shell_tv.yml +145 -0
  36. data/regexes/device/televisions.yml +981 -40
  37. data/regexes/oss.yml +1560 -311
  38. data/regexes/vendorfragments.yml +6 -2
  39. metadata +31 -105
  40. data/.gitignore +0 -14
  41. data/.travis.yml +0 -18
  42. data/Gemfile +0 -8
  43. data/Rakefile +0 -79
  44. data/device_detector.gemspec +0 -26
  45. data/spec/device_detector/bot_fixtures_spec.rb +0 -30
  46. data/spec/device_detector/client_fixtures_spec.rb +0 -31
  47. data/spec/device_detector/concrete_user_agent_spec.rb +0 -136
  48. data/spec/device_detector/detector_fixtures_spec.rb +0 -60
  49. data/spec/device_detector/device_fixtures_spec.rb +0 -36
  50. data/spec/device_detector/device_spec.rb +0 -151
  51. data/spec/device_detector/memory_cache_spec.rb +0 -116
  52. data/spec/device_detector/model_extractor_spec.rb +0 -63
  53. data/spec/device_detector/os_fixtures_spec.rb +0 -26
  54. data/spec/device_detector/version_extractor_spec.rb +0 -80
  55. data/spec/device_detector_spec.rb +0 -198
  56. data/spec/fixtures/client/browser.yml +0 -1313
  57. data/spec/fixtures/client/feed_reader.yml +0 -187
  58. data/spec/fixtures/client/library.yml +0 -84
  59. data/spec/fixtures/client/mediaplayer.yml +0 -168
  60. data/spec/fixtures/client/mobile_app.yml +0 -30
  61. data/spec/fixtures/client/pim.yml +0 -96
  62. data/spec/fixtures/detector/bots.yml +0 -2418
  63. data/spec/fixtures/detector/camera.yml +0 -115
  64. data/spec/fixtures/detector/car_browser.yml +0 -20
  65. data/spec/fixtures/detector/console.yml +0 -267
  66. data/spec/fixtures/detector/desktop.yml +0 -4828
  67. data/spec/fixtures/detector/feature_phone.yml +0 -782
  68. data/spec/fixtures/detector/feed_reader.yml +0 -486
  69. data/spec/fixtures/detector/mediaplayer.yml +0 -179
  70. data/spec/fixtures/detector/mobile_apps.yml +0 -149
  71. data/spec/fixtures/detector/phablet.yml +0 -2140
  72. data/spec/fixtures/detector/portable_media_player.yml +0 -153
  73. data/spec/fixtures/detector/smart_display.yml +0 -58
  74. data/spec/fixtures/detector/smartphone-1.yml +0 -9469
  75. data/spec/fixtures/detector/smartphone-2.yml +0 -9414
  76. data/spec/fixtures/detector/smartphone-3.yml +0 -9396
  77. data/spec/fixtures/detector/smartphone-4.yml +0 -5742
  78. data/spec/fixtures/detector/smartphone.yml +0 -9411
  79. data/spec/fixtures/detector/tablet-1.yml +0 -9495
  80. data/spec/fixtures/detector/tablet-2.yml +0 -248
  81. data/spec/fixtures/detector/tablet.yml +0 -9484
  82. data/spec/fixtures/detector/tv.yml +0 -2582
  83. data/spec/fixtures/detector/unknown.yml +0 -3196
  84. data/spec/fixtures/device/camera.yml +0 -18
  85. data/spec/fixtures/device/car_browser.yml +0 -6
  86. data/spec/fixtures/device/console.yml +0 -78
  87. data/spec/fixtures/parser/oss.yml +0 -800
  88. data/spec/fixtures/parser/vendorfragments.yml +0 -162
  89. data/spec/spec_helper.rb +0 -9
@@ -1,486 +0,0 @@
1
- -
2
- user_agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.21 (KHTML, like Gecko) akregator/4.11.5 Safari/537.21
3
- os:
4
- name: GNU/Linux
5
- short_name: LIN
6
- version:
7
- platform: x64
8
- client:
9
- type: feed reader
10
- name: Akregator
11
- version: "4.11.5"
12
- device:
13
- type: desktop
14
- brand:
15
- model:
16
- os_family: GNU/Linux
17
- browser_family: Unknown
18
- -
19
- user_agent: Akregator/4.12.3; syndication SUSE
20
- os:
21
- name: SUSE
22
- short_name: SSE
23
- version:
24
- platform:
25
- client:
26
- type: feed reader
27
- name: Akregator
28
- version: "4.12.3"
29
- device:
30
- type: desktop
31
- brand:
32
- model:
33
- os_family: GNU/Linux
34
- browser_family: Unknown
35
- -
36
- user_agent: Akregator/1.2.9; librss/remnants
37
- os: [ ]
38
- client:
39
- type: feed reader
40
- name: Akregator
41
- version: "1.2.9"
42
- device:
43
- type:
44
- brand:
45
- model:
46
- os_family: Unknown
47
- browser_family: Unknown
48
- -
49
- user_agent: Apple-PubSub/65.28
50
- os: [ ]
51
- client:
52
- type: feed reader
53
- name: Apple PubSub
54
- version: "65.28"
55
- device:
56
- type:
57
- brand:
58
- model:
59
- os_family: Unknown
60
- browser_family: Unknown
61
- -
62
- user_agent: FeedDemon/4.5 (http://www.feeddemon.com/; Microsoft Windows)
63
- os:
64
- name: Windows
65
- short_name: WIN
66
- version:
67
- platform:
68
- client:
69
- type: feed reader
70
- name: FeedDemon
71
- version: "4.5"
72
- device:
73
- type: desktop
74
- brand:
75
- model:
76
- os_family: Windows
77
- browser_family: Unknown
78
- -
79
- user_agent: FeedDemon/4.5 (http://www.feeddemon.com/; Microsoft Windows XP)
80
- os:
81
- name: Windows
82
- short_name: WIN
83
- version: "XP"
84
- platform:
85
- client:
86
- type: feed reader
87
- name: FeedDemon
88
- version: "4.5"
89
- device:
90
- type: desktop
91
- brand:
92
- model:
93
- os_family: Windows
94
- browser_family: Unknown
95
- -
96
- user_agent: FeeddlerPro/2.4 CFNetwork/672.0.8 Darwin/14.0.0
97
- os:
98
- name: iOS
99
- short_name: IOS
100
- version: "7.0"
101
- platform:
102
- client:
103
- type: feed reader
104
- name: Feeddler RSS Reader
105
- version: "2.4"
106
- device:
107
- type:
108
- brand: AP
109
- model:
110
- os_family: iOS
111
- browser_family: Unknown
112
- -
113
- user_agent: FeeddlerRSS/2.4 CFNetwork/548.1.4 Darwin/11.0.0
114
- os:
115
- name: iOS
116
- short_name: IOS
117
- version: "5.1"
118
- platform:
119
- client:
120
- type: feed reader
121
- name: Feeddler RSS Reader
122
- version: "2.4"
123
- device:
124
- type:
125
- brand: AP
126
- model:
127
- os_family: iOS
128
- browser_family: Unknown
129
- -
130
- user_agent: FeeddlerRSS 2.4 (iPad; iPhone OS 5.1.1; en_US)
131
- os:
132
- name: iOS
133
- short_name: IOS
134
- version: "5.1.1"
135
- platform:
136
- client:
137
- type: feed reader
138
- name: Feeddler RSS Reader
139
- version: "2.4"
140
- device:
141
- type: tablet
142
- brand: AP
143
- model: iPad
144
- os_family: iOS
145
- browser_family: Unknown
146
- -
147
- user_agent: JetBrains Omea Reader 2.2 (http://www.jetbrains.com/omea/reader/)
148
- os: [ ]
149
- client:
150
- type: feed reader
151
- name: JetBrains Omea Reader
152
- version: "2.2"
153
- device:
154
- type:
155
- brand:
156
- model:
157
- os_family: Unknown
158
- browser_family: Unknown
159
- -
160
- user_agent: Liferea/1.6.4 (Linux; en_US.UTF-8; http://liferea.sf.net/)
161
- os:
162
- name: GNU/Linux
163
- short_name: LIN
164
- version:
165
- platform:
166
- client:
167
- type: feed reader
168
- name: Liferea
169
- version: "1.6.4"
170
- device:
171
- type: desktop
172
- brand:
173
- model:
174
- os_family: GNU/Linux
175
- browser_family: Unknown
176
- -
177
- user_agent: Liferea/1.10-RC1 (Linux; en_GB.UTF-8; http://liferea.sf.net/)
178
- os:
179
- name: GNU/Linux
180
- short_name: LIN
181
- version:
182
- platform:
183
- client:
184
- type: feed reader
185
- name: Liferea
186
- version: "1.10"
187
- device:
188
- type: desktop
189
- brand:
190
- model:
191
- os_family: GNU/Linux
192
- browser_family: Unknown
193
- -
194
- user_agent: Liferea/1.10.6 (Linux; en_US.UTF8; http://liferea.sf.net/) AppleWebKit (KHTML, like Gecko)
195
- os:
196
- name: GNU/Linux
197
- short_name: LIN
198
- version:
199
- platform:
200
- client:
201
- type: feed reader
202
- name: Liferea
203
- version: "1.10.6"
204
- device:
205
- type: desktop
206
- brand:
207
- model:
208
- os_family: GNU/Linux
209
- browser_family: Unknown
210
- -
211
- user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.74.9 (KHTML, like Gecko) Version/6.0 NetNewsWire/4.0.0
212
- os:
213
- name: Mac
214
- short_name: MAC
215
- version: "10.9.2"
216
- platform:
217
- client:
218
- type: feed reader
219
- name: NetNewsWire
220
- version: "4.0.0"
221
- device:
222
- type: desktop
223
- brand:
224
- model:
225
- os_family: Mac
226
- browser_family: Unknown
227
- -
228
- user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.74.9 (KHTML, like Gecko) NetNewsWire/3.3.2
229
- os:
230
- name: Mac
231
- short_name: MAC
232
- version: "10.9.2"
233
- platform:
234
- client:
235
- type: feed reader
236
- name: NetNewsWire
237
- version: "3.3.2"
238
- device:
239
- type: desktop
240
- brand:
241
- model:
242
- os_family: Mac
243
- browser_family: Unknown
244
- -
245
- user_agent: NetNewsWire/4.0.0 (Mac OS X; http://netnewswireapp.com/mac/; gzip-happy)
246
- os:
247
- name: Mac
248
- short_name: MAC
249
- version:
250
- platform:
251
- client:
252
- type: feed reader
253
- name: NetNewsWire
254
- version: "4.0.0"
255
- device:
256
- type: desktop
257
- brand:
258
- model:
259
- os_family: Mac
260
- browser_family: Unknown
261
- -
262
- user_agent: newsbeuter/2.7 (Linux x86_64)
263
- os:
264
- name: GNU/Linux
265
- short_name: LIN
266
- version:
267
- platform: x64
268
- client:
269
- type: feed reader
270
- name: Newsbeuter
271
- version: "2.7"
272
- device:
273
- type: desktop
274
- brand:
275
- model:
276
- os_family: GNU/Linux
277
- browser_family: Unknown
278
- -
279
- user_agent: NewsBlur iPhone App v3.6
280
- os:
281
- name: iOS
282
- short_name: IOS
283
- version:
284
- platform:
285
- client:
286
- type: feed reader
287
- name: NewsBlur Mobile App
288
- version: "3.6"
289
- device:
290
- type: smartphone
291
- brand: AP
292
- model: iPhone
293
- os_family: iOS
294
- browser_family: Unknown
295
- -
296
- user_agent: NewsBlur iPad App v3.6
297
- os:
298
- name: iOS
299
- short_name: IOS
300
- version:
301
- platform:
302
- client:
303
- type: feed reader
304
- name: NewsBlur Mobile App
305
- version: "3.6"
306
- device:
307
- type: tablet
308
- brand: AP
309
- model: iPad
310
- os_family: iOS
311
- browser_family: Unknown
312
- -
313
- user_agent: NewsBlur/4.0.1 CFNetwork/672.1.13 Darwin/14.0.0
314
- os:
315
- name: iOS
316
- short_name: IOS
317
- version: "7.1"
318
- platform:
319
- client:
320
- type: feed reader
321
- name: NewsBlur
322
- version: "4.0.1"
323
- device:
324
- type:
325
- brand: AP
326
- model:
327
- os_family: iOS
328
- browser_family: Unknown
329
- -
330
- user_agent: newsbeuter/2.4 (Linux 3.2.0-23-generic; i686; http://www.newsbeuter.org/) libcurl/7.22.0 GnuTLS/2.12.14 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
331
- os:
332
- name: GNU/Linux
333
- short_name: LIN
334
- version:
335
- platform: x86
336
- client:
337
- type: feed reader
338
- name: Newsbeuter
339
- version: "2.4"
340
- device:
341
- type: desktop
342
- brand:
343
- model:
344
- os_family: GNU/Linux
345
- browser_family: Unknown
346
- -
347
- user_agent: Pulp/1.5.2 (iPad; http://www.acrylicapps.com/pulp/)
348
- os:
349
- name: iOS
350
- short_name: IOS
351
- version:
352
- platform:
353
- client:
354
- type: feed reader
355
- name: Pulp
356
- version: "1.5.2"
357
- device:
358
- type: tablet
359
- brand: AP
360
- model: iPad
361
- os_family: iOS
362
- browser_family: Unknown
363
- -
364
- user_agent: ReadKit/2.4.0 (Mac OS X Version 10.9.2 (Build 13C64))
365
- os:
366
- name: Mac
367
- short_name: MAC
368
- version: "10.9.2"
369
- platform:
370
- client:
371
- type: feed reader
372
- name: ReadKit
373
- version: "2.4.0"
374
- device:
375
- type: desktop
376
- brand:
377
- model:
378
- os_family: Mac
379
- browser_family: Unknown
380
- -
381
- user_agent: ReadKit/7017 CFNetwork/673.2.1 Darwin/13.1.0 (x86_64) (MacBookPro10%2C1)
382
- os:
383
- name: Mac
384
- short_name: MAC
385
- version: "10.9"
386
- platform: x64
387
- client:
388
- type: feed reader
389
- name: ReadKit
390
- version: "7017"
391
- device:
392
- type: desktop
393
- brand: AP
394
- model:
395
- os_family: Mac
396
- browser_family: Unknown
397
- -
398
- user_agent: Reeder/3.2 CFNetwork/672.1.12 Darwin/14.0.0
399
- os:
400
- name: iOS
401
- short_name: IOS
402
- version: "7.1"
403
- platform:
404
- client:
405
- type: feed reader
406
- name: Reeder
407
- version: "3.2"
408
- device:
409
- type:
410
- brand: AP
411
- model:
412
- os_family: iOS
413
- browser_family: Unknown
414
- -
415
- user_agent: RssBandit/1.9.0.1002
416
- os: [ ]
417
- client:
418
- type: feed reader
419
- name: RSS Bandit
420
- version: "1.9.0.1002"
421
- device:
422
- type:
423
- brand:
424
- model:
425
- os_family: Unknown
426
- browser_family: Unknown
427
- -
428
- user_agent: RssBandit/1.9.0.1002 (.NET CLR 2.0.50727.7512; WinNT 6.2.9200.0; http://www.rssbandit.org)
429
- os:
430
- name: Windows
431
- short_name: WIN
432
- version: "NT"
433
- platform:
434
- client:
435
- type: feed reader
436
- name: RSS Bandit
437
- version: "1.9.0.1002"
438
- device:
439
- type: desktop
440
- brand:
441
- model:
442
- os_family: Windows
443
- browser_family: Unknown
444
- -
445
- user_agent: RSS Junkie Daemon
446
- os: [ ]
447
- client:
448
- type: feed reader
449
- name: RSS Junkie
450
- version:
451
- device:
452
- type:
453
- brand:
454
- model:
455
- os_family: Unknown
456
- browser_family: Unknown
457
- -
458
- user_agent: RSSOwl/2.2.1.201312301314 (Windows; U; en)
459
- os:
460
- name: Windows
461
- short_name: WIN
462
- version:
463
- platform:
464
- client:
465
- type: feed reader
466
- name: RSSOwl
467
- version: "2.2.1.201312301314"
468
- device:
469
- type: desktop
470
- brand:
471
- model:
472
- os_family: Windows
473
- browser_family: Unknown
474
- -
475
- user_agent: RSSOwl/2.2.1.201312301316 (X11; U; en)
476
- os: [ ]
477
- client:
478
- type: feed reader
479
- name: RSSOwl
480
- version: "2.2.1.201312301316"
481
- device:
482
- type:
483
- brand:
484
- model:
485
- os_family: Unknown
486
- browser_family: Unknown
@@ -1,179 +0,0 @@
1
- -
2
- user_agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.28) Gecko/20130316 Songbird/1.12.1 (20140112193149)
3
- os:
4
- name: GNU/Linux
5
- short_name: LIN
6
- version:
7
- platform: x86
8
- client:
9
- type: mediaplayer
10
- name: Songbird
11
- version: "1.12.1"
12
- device:
13
- type: desktop
14
- brand:
15
- model:
16
- os_family: GNU/Linux
17
- browser_family: Unknown
18
- -
19
- user_agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.28) Gecko/20130316 Nightingale/1.12.2 (20140112193149)
20
- os:
21
- name: GNU/Linux
22
- short_name: LIN
23
- version:
24
- platform: x86
25
- client:
26
- type: mediaplayer
27
- name: Nightingale
28
- version: "1.12.2"
29
- device:
30
- type: desktop
31
- brand:
32
- model:
33
- os_family: GNU/Linux
34
- browser_family: Unknown
35
- -
36
- user_agent: iTunes/10.2.1 (Macintosh; Intel Mac OS X 10.7) AppleWebKit/534.20.8
37
- os:
38
- name: Mac
39
- short_name: MAC
40
- version: "10.7"
41
- platform:
42
- client:
43
- type: mediaplayer
44
- name: iTunes
45
- version: "10.2.1"
46
- device:
47
- type: desktop
48
- brand:
49
- model:
50
- os_family: Mac
51
- browser_family: Unknown
52
- -
53
- user_agent: iTunes/10.2.1 (Windows; Microsoft Windows 7 Enterprise Edition Service Pack 1 (Build 7601)) AppleWebKit/533.20.25
54
- os:
55
- name: Windows
56
- short_name: WIN
57
- version: "7"
58
- platform:
59
- client:
60
- type: mediaplayer
61
- name: iTunes
62
- version: "10.2.1"
63
- device:
64
- type: desktop
65
- brand:
66
- model:
67
- os_family: Windows
68
- browser_family: Unknown
69
- -
70
- user_agent: SAMSUNG-GT-S3850/S3850CXKD1 SHP/VPP/R5 Dolfin/2.0 NexPlayer/3.0 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 OPN-B
71
- os: [ ]
72
- client:
73
- type: mediaplayer
74
- name: NexPlayer
75
- version: "3.0"
76
- device:
77
- type: smartphone
78
- brand: SA
79
- model: GT-S3850
80
- os_family: Unknown
81
- browser_family: Unknown
82
- -
83
- user_agent: FlyCast/1.34 (BlackBerry; 8330/4.5.0.131 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/-1)
84
- os:
85
- name: BlackBerry OS
86
- short_name: BLB
87
- version:
88
- platform:
89
- client:
90
- type: mediaplayer
91
- name: FlyCast
92
- version: "1.34"
93
- device:
94
- type: smartphone
95
- brand: RM
96
- model: BlackBerry
97
- os_family: BlackBerry
98
- browser_family: Unknown
99
- -
100
- user_agent: NSPlayer/10.0.0.4072 WMFSDK/10.0
101
- os: [ ]
102
- client:
103
- type: mediaplayer
104
- name: Windows Media Player
105
- version: "10.0.0.4072"
106
- device:
107
- type:
108
- brand:
109
- model:
110
- os_family: Unknown
111
- browser_family: Unknown
112
- -
113
- user_agent: XBMC/9.04 r19840 (Mac OS X; Darwin 9.6.0; http://www.xbmc.org)
114
- os:
115
- name: Mac
116
- short_name: MAC
117
- version:
118
- platform:
119
- client:
120
- type: mediaplayer
121
- name: XBMC
122
- version: "9.04"
123
- device:
124
- type: desktop
125
- brand:
126
- model:
127
- os_family: Mac
128
- browser_family: Unknown
129
- -
130
- user_agent: SubStream/0.7 CFNetwork/485.12.30 Darwin/10.4.0
131
- os:
132
- name: iOS
133
- short_name: IOS
134
- version: "4.2"
135
- platform:
136
- client:
137
- type: mediaplayer
138
- name: SubStream
139
- version: "0.7"
140
- device:
141
- type:
142
- brand: AP
143
- model:
144
- os_family: iOS
145
- browser_family: Unknown
146
- -
147
- user_agent: Samsung GT-I9505 stagefright/1.2 (Linux;Android 4.4.2)
148
- os:
149
- name: Android
150
- short_name: AND
151
- version: "4.4.2"
152
- platform:
153
- client:
154
- type: mediaplayer
155
- name: Stagefright
156
- version: "1.2"
157
- device:
158
- type: smartphone
159
- brand: SA
160
- model: GALAXY S4
161
- os_family: Android
162
- browser_family: Unknown
163
- -
164
- user_agent: Kodi/14.0 (Macintosh; Intel Mac OS X 10_10_3) App_Bitness/64 Version/14.0-Git:2014-12-23-ad747d9-dirty
165
- os:
166
- name: Mac
167
- short_name: MAC
168
- version: "10.10.3"
169
- platform:
170
- client:
171
- type: mediaplayer
172
- name: Kodi
173
- version: "14.0"
174
- device:
175
- type: desktop
176
- brand:
177
- model:
178
- os_family: Mac
179
- browser_family: Unknown