device_detector 1.0.2 → 1.0.6

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 (112) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +49 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +5 -6
  5. data/CHANGELOG.md +11 -0
  6. data/README.md +8 -7
  7. data/Rakefile +7 -4
  8. data/device_detector.gemspec +1 -0
  9. data/lib/device_detector/bot.rb +2 -2
  10. data/lib/device_detector/browser.rb +364 -0
  11. data/lib/device_detector/client.rb +11 -2
  12. data/lib/device_detector/device.rb +1168 -22
  13. data/lib/device_detector/memory_cache.rb +5 -5
  14. data/lib/device_detector/metadata_extractor.rb +7 -8
  15. data/lib/device_detector/model_extractor.rb +3 -3
  16. data/lib/device_detector/name_extractor.rb +2 -2
  17. data/lib/device_detector/os.rb +148 -116
  18. data/lib/device_detector/parser.rb +22 -9
  19. data/lib/device_detector/version.rb +1 -1
  20. data/lib/device_detector/version_extractor.rb +10 -2
  21. data/lib/device_detector.rb +73 -40
  22. data/regexes/bots.yml +909 -59
  23. data/regexes/client/browser_engine.yml +14 -2
  24. data/regexes/client/browsers.yml +1356 -241
  25. data/regexes/client/feed_readers.yml +10 -10
  26. data/regexes/client/libraries.yml +75 -1
  27. data/regexes/client/mediaplayers.yml +39 -3
  28. data/regexes/client/mobile_apps.yml +524 -45
  29. data/regexes/client/pim.yml +55 -2
  30. data/regexes/device/cameras.yml +6 -6
  31. data/regexes/device/car_browsers.yml +23 -3
  32. data/regexes/device/consoles.yml +9 -3
  33. data/regexes/device/mobiles.yml +16903 -3199
  34. data/regexes/device/notebooks.yml +114 -0
  35. data/regexes/device/portable_media_player.yml +20 -3
  36. data/regexes/device/shell_tv.yml +117 -0
  37. data/regexes/device/televisions.yml +440 -35
  38. data/regexes/oss.yml +603 -165
  39. data/regexes/vendorfragments.yml +6 -2
  40. data/spec/device_detector/concrete_user_agent_spec.rb +38 -51
  41. data/spec/device_detector/detector_fixtures_spec.rb +36 -37
  42. data/spec/device_detector/device_spec.rb +52 -56
  43. data/spec/device_detector/memory_cache_spec.rb +19 -19
  44. data/spec/device_detector/model_extractor_spec.rb +3 -3
  45. data/spec/device_detector/version_extractor_spec.rb +5 -6
  46. data/spec/device_detector_spec.rb +26 -26
  47. data/spec/fixtures/client/browser.yml +2617 -555
  48. data/spec/fixtures/client/feed_reader.yml +34 -52
  49. data/spec/fixtures/client/library.yml +129 -38
  50. data/spec/fixtures/client/mediaplayer.yml +59 -28
  51. data/spec/fixtures/client/mobile_app.yml +589 -20
  52. data/spec/fixtures/client/pim.yml +92 -19
  53. data/spec/fixtures/detector/bots.yml +1749 -458
  54. data/spec/fixtures/detector/camera.yml +30 -24
  55. data/spec/fixtures/detector/car_browser.yml +199 -3
  56. data/spec/fixtures/detector/console.yml +107 -45
  57. data/spec/fixtures/detector/desktop.yml +3216 -758
  58. data/spec/fixtures/detector/feature_phone.yml +935 -181
  59. data/spec/fixtures/detector/feed_reader.yml +181 -193
  60. data/spec/fixtures/detector/mediaplayer.yml +157 -60
  61. data/spec/fixtures/detector/mobile_apps.yml +914 -136
  62. data/spec/fixtures/detector/peripheral.yml +271 -0
  63. data/spec/fixtures/detector/phablet.yml +5593 -1533
  64. data/spec/fixtures/detector/portable_media_player.yml +398 -32
  65. data/spec/fixtures/detector/smart_display.yml +183 -9
  66. data/spec/fixtures/detector/smart_speaker.yml +60 -0
  67. data/spec/fixtures/detector/smartphone-1.yml +3930 -4239
  68. data/spec/fixtures/detector/smartphone-10.yml +3985 -7366
  69. data/spec/fixtures/detector/smartphone-11.yml +5083 -3784
  70. data/spec/fixtures/detector/smartphone-12.yml +8989 -0
  71. data/spec/fixtures/detector/smartphone-13.yml +9412 -0
  72. data/spec/fixtures/detector/smartphone-14.yml +9477 -0
  73. data/spec/fixtures/detector/smartphone-15.yml +9281 -0
  74. data/spec/fixtures/detector/smartphone-16.yml +9678 -0
  75. data/spec/fixtures/detector/smartphone-17.yml +9965 -0
  76. data/spec/fixtures/detector/smartphone-18.yml +9806 -0
  77. data/spec/fixtures/detector/smartphone-19.yml +9965 -0
  78. data/spec/fixtures/detector/smartphone-2.yml +6670 -4375
  79. data/spec/fixtures/detector/smartphone-20.yml +9710 -0
  80. data/spec/fixtures/detector/smartphone-21.yml +8693 -0
  81. data/spec/fixtures/detector/smartphone-22.yml +10178 -0
  82. data/spec/fixtures/detector/smartphone-23.yml +9453 -0
  83. data/spec/fixtures/detector/smartphone-24.yml +9843 -0
  84. data/spec/fixtures/detector/smartphone-25.yml +9703 -0
  85. data/spec/fixtures/detector/smartphone-26.yml +10007 -0
  86. data/spec/fixtures/detector/smartphone-27.yml +4927 -0
  87. data/spec/fixtures/detector/smartphone-3.yml +4656 -4711
  88. data/spec/fixtures/detector/smartphone-4.yml +3518 -4479
  89. data/spec/fixtures/detector/smartphone-5.yml +3805 -4803
  90. data/spec/fixtures/detector/smartphone-6.yml +3745 -4693
  91. data/spec/fixtures/detector/smartphone-7.yml +3721 -4645
  92. data/spec/fixtures/detector/smartphone-8.yml +4564 -4699
  93. data/spec/fixtures/detector/smartphone-9.yml +3897 -4888
  94. data/spec/fixtures/detector/smartphone.yml +3154 -4141
  95. data/spec/fixtures/detector/tablet-1.yml +4742 -4576
  96. data/spec/fixtures/detector/tablet-2.yml +3803 -4731
  97. data/spec/fixtures/detector/tablet-3.yml +6210 -2309
  98. data/spec/fixtures/detector/tablet-4.yml +9062 -0
  99. data/spec/fixtures/detector/tablet-5.yml +9273 -0
  100. data/spec/fixtures/detector/tablet-6.yml +4588 -0
  101. data/spec/fixtures/detector/tablet.yml +3629 -4613
  102. data/spec/fixtures/detector/tv-1.yml +2501 -0
  103. data/spec/fixtures/detector/tv.yml +8856 -2064
  104. data/spec/fixtures/detector/unknown.yml +412 -587
  105. data/spec/fixtures/detector/wearable.yml +915 -0
  106. data/spec/fixtures/device/camera.yml +4 -3
  107. data/spec/fixtures/device/car_browser.yml +9 -2
  108. data/spec/fixtures/device/console.yml +15 -14
  109. data/spec/fixtures/device/notebook.yml +7 -0
  110. data/spec/fixtures/parser/oss.yml +1392 -21
  111. data/spec/fixtures/parser/vendorfragments.yml +57 -51
  112. metadata +70 -4
@@ -3,119 +3,125 @@
3
3
  user_agent: Mozilla/5.0 (Linux; U; Android 2.3.3; ja-jp; COOLPIX S800c Build/CP01_WW) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
4
4
  os:
5
5
  name: Android
6
- short_name: AND
7
6
  version: "2.3.3"
8
7
  platform: ""
9
8
  client:
10
9
  type: browser
11
10
  name: Android Browser
12
- short_name: AN
13
11
  version: ""
14
12
  engine: WebKit
15
13
  engine_version: "533.1"
16
14
  device:
17
15
  type: camera
18
- brand: NN
16
+ brand: Nikon
19
17
  model: Coolpix S800c
20
18
  os_family: Android
21
19
  browser_family: Android Browser
20
+ -
21
+ user_agent: Mozilla/5.0 (Linux; Android 5.0.2; DMC-CM1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.92 Mobile Safari/537.36
22
+ os:
23
+ name: Android
24
+ version: "5.0.2"
25
+ platform: ""
26
+ client:
27
+ type: browser
28
+ name: Chrome Mobile
29
+ version: "77.0.3865.92"
30
+ engine: Blink
31
+ engine_version: ""
32
+ device:
33
+ type: camera
34
+ brand: Panasonic
35
+ model: Lumix DMC-CM1
36
+ os_family: Android
37
+ browser_family: Chrome
22
38
  -
23
39
  user_agent: Mozilla/5.0 (Linux; U; Android 4.0; de-DE; EK-GC100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
24
40
  os:
25
41
  name: Android
26
- short_name: AND
27
42
  version: "4.0"
28
43
  platform: ""
29
44
  client:
30
45
  type: browser
31
46
  name: Android Browser
32
- short_name: AN
33
47
  version: ""
34
48
  engine: WebKit
35
49
  engine_version: "534.30"
36
50
  device:
37
51
  type: camera
38
- brand: SA
39
- model: GALAXY Camera
52
+ brand: Samsung
53
+ model: Galaxy Camera
40
54
  os_family: Android
41
55
  browser_family: Android Browser
42
56
  -
43
57
  user_agent: Mozilla/5.0 (Linux; Android 4.1.2; EK-GC100 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Mobile Safari/537.36 OPR/15.0.1162.60140
44
58
  os:
45
59
  name: Android
46
- short_name: AND
47
60
  version: "4.1.2"
48
61
  platform: ""
49
62
  client:
50
63
  type: browser
51
64
  name: Opera Mobile
52
- short_name: OM
53
65
  version: "15.0.1162.60140"
54
66
  engine: Blink
55
67
  engine_version: ""
56
68
  device:
57
69
  type: camera
58
- brand: SA
59
- model: GALAXY Camera
70
+ brand: Samsung
71
+ model: Galaxy Camera
60
72
  os_family: Android
61
73
  browser_family: Opera
62
74
  -
63
75
  user_agent: Mozilla/5.0 (Linux; Android 4.3; EK-GC200 Build/JSS15J) AppleWebKit/537.36 (KHTML like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36
64
76
  os:
65
77
  name: Android
66
- short_name: AND
67
78
  version: "4.3"
68
79
  platform: ""
69
80
  client:
70
81
  type: browser
71
82
  name: Chrome Mobile
72
- short_name: CM
73
83
  version: "35.0.1916.141"
74
84
  engine: Blink
75
85
  engine_version: ""
76
86
  device:
77
87
  type: camera
78
- brand: SA
79
- model: GALAXY Camera 2
88
+ brand: Samsung
89
+ model: Galaxy Camera 2
80
90
  os_family: Android
81
91
  browser_family: Chrome
82
92
  -
83
93
  user_agent: Mozilla/5.0 (Linux; Android 4.1.2; EK-GC110 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19
84
94
  os:
85
95
  name: Android
86
- short_name: AND
87
96
  version: "4.1.2"
88
97
  platform: ""
89
98
  client:
90
99
  type: browser
91
100
  name: Chrome Mobile
92
- short_name: CM
93
101
  version: "18.0.1025.166"
94
102
  engine: WebKit
95
103
  engine_version: "535.19"
96
104
  device:
97
105
  type: camera
98
- brand: SA
99
- model: GALAXY Camera WiFi only
106
+ brand: Samsung
107
+ model: Galaxy Camera WiFi only
100
108
  os_family: Android
101
109
  browser_family: Chrome
102
110
  -
103
111
  user_agent: Mozilla/5.0 (Linux; Android 4.2.2; en-nz; SAMSUNG EK-GN120 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19
104
112
  os:
105
113
  name: Android
106
- short_name: AND
107
114
  version: "4.2.2"
108
115
  platform: ""
109
116
  client:
110
117
  type: browser
111
- name: Chrome Mobile
112
- short_name: CM
118
+ name: Chrome Webview
113
119
  version: "18.0.1025.308"
114
120
  engine: WebKit
115
121
  engine_version: "535.19"
116
122
  device:
117
123
  type: camera
118
- brand: SA
119
- model: GALAXY NX
124
+ brand: Samsung
125
+ model: Galaxy NX
120
126
  os_family: Android
121
127
  browser_family: Chrome
@@ -1,21 +1,217 @@
1
1
  ---
2
2
  -
3
+ user_agent: Mozilla/5.0 (Linux; Android 4.4.2; CarPad-II-P Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36
4
+ os:
5
+ name: Android
6
+ version: "4.4.2"
7
+ platform: ""
8
+ client:
9
+ type: browser
10
+ name: Chrome Webview
11
+ version: "30.0.0.0"
12
+ engine: Blink
13
+ engine_version: ""
14
+ device:
15
+ type: car browser
16
+ brand: NewsMy
17
+ model: CarPad-II-P
18
+ os_family: Android
19
+ browser_family: Chrome
20
+ -
21
+ user_agent: Mozilla/5.0 (Linux; Android 4.4.2; CarPad-III-P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.116 Safari/537.36
22
+ os:
23
+ name: Android
24
+ version: "4.4.2"
25
+ platform: ""
26
+ client:
27
+ type: browser
28
+ name: Chrome
29
+ version: "77.0.3865.116"
30
+ engine: Blink
31
+ engine_version: ""
32
+ device:
33
+ type: car browser
34
+ brand: NewsMy
35
+ model: CarPad-III-P
36
+ os_family: Android
37
+ browser_family: Chrome
38
+ -
39
+ user_agent: Mozilla/5.0 (X11; GNU/Linux) AppleWebKit/537.36 (KHTML, like Gecko) Chromium/75.0.3770.100 Chrome/75.0.3770.100 Safari/537.36 Tesla/2019.40.50.7-ad132c7b057e
40
+ os:
41
+ name: GNU/Linux
42
+ version: ""
43
+ platform: ""
44
+ client:
45
+ type: browser
46
+ name: Chromium
47
+ version: "75.0.3770.100"
48
+ engine: Blink
49
+ engine_version: ""
50
+ device:
51
+ type: car browser
52
+ brand: Tesla
53
+ model: ""
54
+ os_family: GNU/Linux
55
+ browser_family: Chrome
56
+ -
3
57
  user_agent: Mozilla/5.0 (X11; u; Linux; C) AppleWebKit /533.3 (Khtml, like Gheko) QtCarBrowser Safari/533.3
4
58
  os:
5
59
  name: GNU/Linux
6
- short_name: LIN
7
60
  version: ""
8
61
  platform: ""
9
62
  client:
10
63
  type: browser
11
64
  name: Safari
12
- short_name: SF
13
65
  version: ""
14
66
  engine: WebKit
15
67
  engine_version: "533.3"
16
68
  device:
17
69
  type: car browser
18
- brand: TA
70
+ brand: Tesla
19
71
  model: Model S
20
72
  os_family: GNU/Linux
21
73
  browser_family: Safari
74
+ -
75
+ user_agent: Mozilla/5.0 (Linux; Android 7.1.2; UltraOcta-T8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.81 Safari/537.36
76
+ os:
77
+ name: Android
78
+ version: 7.1.2
79
+ platform: ""
80
+ client:
81
+ type: browser
82
+ name: Chrome
83
+ version: 85.0.4183.81
84
+ engine: Blink
85
+ engine_version: ""
86
+ device:
87
+ type: car browser
88
+ brand: Allwinner
89
+ model: Ultra Octa T8
90
+ os_family: Android
91
+ browser_family: Chrome
92
+ -
93
+ user_agent: Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; KZCAR Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30
94
+ os:
95
+ name: Android
96
+ version: 4.1.1
97
+ platform: ""
98
+ client:
99
+ type: browser
100
+ name: Android Browser
101
+ version: ""
102
+ engine: WebKit
103
+ engine_version: "534.30"
104
+ device:
105
+ type: car browser
106
+ brand: INCAR
107
+ model: KZCAR
108
+ os_family: Android
109
+ browser_family: Android Browser
110
+ -
111
+ user_agent: Mozilla/5.0 (Linux; Android 11.0.0; Mac Audio Spro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.105 Safari/537.36
112
+ os:
113
+ name: Android
114
+ version: 11.0.0
115
+ platform: ""
116
+ client:
117
+ type: browser
118
+ name: Chrome
119
+ version: 89.0.4389.105
120
+ engine: Blink
121
+ engine_version: ""
122
+ device:
123
+ type: car browser
124
+ brand: MAC AUDIO
125
+ model: S Pro
126
+ os_family: Android
127
+ browser_family: Chrome
128
+ -
129
+ user_agent: Mozilla/5.0 (Linux; Android 11; OCTA-CORE T8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.181 Safari/537.36
130
+ os:
131
+ name: Android
132
+ version: "11"
133
+ platform: ""
134
+ client:
135
+ type: browser
136
+ name: Chrome
137
+ version: 88.0.4324.181
138
+ engine: Blink
139
+ engine_version: ""
140
+ device:
141
+ type: car browser
142
+ brand: Allwinner
143
+ model: OCTA-CORE T8
144
+ os_family: Android
145
+ browser_family: Chrome
146
+ -
147
+ user_agent: Mozilla/5.0 (Linux; Android 8.1.0; sp9853i_1h10_vmm) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.101 Safari/537.36
148
+ os:
149
+ name: Android
150
+ version: 8.1.0
151
+ platform: ""
152
+ client:
153
+ type: browser
154
+ name: Chrome
155
+ version: 85.0.4183.101
156
+ engine: Blink
157
+ engine_version: ""
158
+ device:
159
+ type: car browser
160
+ brand: Topway
161
+ model: TS9
162
+ os_family: Android
163
+ browser_family: Chrome
164
+ -
165
+ user_agent: Mozilla/5.0 (Linux; Android 9; OCTOPUS-CORE T8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Safari/537.36
166
+ os:
167
+ name: Android
168
+ version: "9"
169
+ platform: ""
170
+ client:
171
+ type: browser
172
+ name: Chrome
173
+ version: 90.0.4430.91
174
+ engine: Blink
175
+ engine_version: ""
176
+ device:
177
+ type: car browser
178
+ brand: Allwinner
179
+ model: OCTOPUS-CORE T8
180
+ os_family: Android
181
+ browser_family: Chrome
182
+ -
183
+ user_agent: Mozilla/5.0 (Linux; Android 5.1.1; QuadCore-R16) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.116 Safari/537.36
184
+ os:
185
+ name: Android
186
+ version: 5.1.1
187
+ platform: ""
188
+ client:
189
+ type: browser
190
+ name: Chrome
191
+ version: 77.0.3865.116
192
+ engine: Blink
193
+ engine_version: ""
194
+ device:
195
+ type: car browser
196
+ brand: Allwinner
197
+ model: QUAD-CORE R16
198
+ os_family: Android
199
+ browser_family: Chrome
200
+ -
201
+ user_agent: Mozilla/5.0 (Linux; Android 8.1.0; QUAD-CORE T3 k2001o nwd) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.210 Safari/537.36
202
+ os:
203
+ name: Android
204
+ version: 8.1.0
205
+ platform: ""
206
+ client:
207
+ type: browser
208
+ name: Chrome
209
+ version: 90.0.4430.210
210
+ engine: Blink
211
+ engine_version: ""
212
+ device:
213
+ type: car browser
214
+ brand: Allwinner
215
+ model: QUAD-CORE T3 K2001O
216
+ os_family: Android
217
+ browser_family: Chrome