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
@@ -0,0 +1,271 @@
1
+ ---
2
+ -
3
+ user_agent: Mozilla/5.0 (Linux; Android 7.0; SHTRIH-SMARTPOS-F2 Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/51.0.2704.91 Mobile Safari/537.36
4
+ os:
5
+ name: Android
6
+ version: "7.0"
7
+ platform: ""
8
+ client:
9
+ type: browser
10
+ name: Chrome Webview
11
+ version: 51.0.2704.91
12
+ engine: Blink
13
+ engine_version: ""
14
+ device:
15
+ type: peripheral
16
+ brand: Shtrikh-M
17
+ model: Smartpos F2
18
+ os_family: Android
19
+ browser_family: Chrome
20
+ -
21
+ user_agent: Mozilla/5.0 (Linux; Android 8.1.0; WISENET5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36
22
+ os:
23
+ name: Android
24
+ version: 8.1.0
25
+ platform: ""
26
+ client:
27
+ type: browser
28
+ name: Chrome Mobile
29
+ version: 70.0.3538.110
30
+ engine: Blink
31
+ engine_version: ""
32
+ device:
33
+ type: peripheral
34
+ brand: Wiseasy
35
+ model: WISENET5
36
+ os_family: Android
37
+ browser_family: Chrome
38
+ -
39
+ user_agent: Mozilla/5.0 (Linux; Android 6.0.1; ODROIDC2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Safari/537.36
40
+ os:
41
+ name: Android
42
+ version: 6.0.1
43
+ platform: ""
44
+ client:
45
+ type: browser
46
+ name: Chrome
47
+ version: 75.0.3770.101
48
+ engine: Blink
49
+ engine_version: ""
50
+ device:
51
+ type: peripheral
52
+ brand: Hardkernel
53
+ model: ODROID C2
54
+ os_family: Android
55
+ browser_family: Chrome
56
+ -
57
+ user_agent: Mozilla/5.0 (Linux; Android 7.1.2; ODROID-XU4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Safari/537.36
58
+ os:
59
+ name: Android
60
+ version: 7.1.2
61
+ platform: ""
62
+ client:
63
+ type: browser
64
+ name: Chrome
65
+ version: 75.0.3770.143
66
+ engine: Blink
67
+ engine_version: ""
68
+ device:
69
+ type: peripheral
70
+ brand: Hardkernel
71
+ model: ODROID XU4
72
+ os_family: Android
73
+ browser_family: Chrome
74
+ -
75
+ user_agent: Mozilla/5.0 (Linux; Android 7.1.1; ODROID-XU3 Build/NMF26V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
76
+ os:
77
+ name: Android
78
+ version: 7.1.1
79
+ platform: ""
80
+ client:
81
+ type: browser
82
+ name: Chrome
83
+ version: 56.0.2924.87
84
+ engine: Blink
85
+ engine_version: ""
86
+ device:
87
+ type: peripheral
88
+ brand: Hardkernel
89
+ model: ODROID XU3
90
+ os_family: Android
91
+ browser_family: Chrome
92
+ -
93
+ user_agent: Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; ODROID-U2 Build/JZO54L) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30
94
+ os:
95
+ name: Android
96
+ version: 4.1.2
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: peripheral
106
+ brand: Hardkernel
107
+ model: ODROID U2
108
+ os_family: Android
109
+ browser_family: Android Browser
110
+ -
111
+ user_agent: Mozilla/5.0 (Linux; Android 8.1.0; MFSTAB) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Safari/537.36
112
+ os:
113
+ name: Android
114
+ version: 8.1.0
115
+ platform: ""
116
+ client:
117
+ type: browser
118
+ name: Chrome
119
+ version: 80.0.3987.99
120
+ engine: Blink
121
+ engine_version: ""
122
+ device:
123
+ type: peripheral
124
+ brand: Mantra
125
+ model: MFSTAB
126
+ os_family: Android
127
+ browser_family: Chrome
128
+ -
129
+ user_agent: Mozilla/5.0 (Linux; Android 8.1.0; MFSTAB_74G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Safari/537.36
130
+ os:
131
+ name: Android
132
+ version: 8.1.0
133
+ platform: ""
134
+ client:
135
+ type: browser
136
+ name: Chrome
137
+ version: 79.0.3945.93
138
+ engine: Blink
139
+ engine_version: ""
140
+ device:
141
+ type: peripheral
142
+ brand: Mantra
143
+ model: MFSTAB 74G
144
+ os_family: Android
145
+ browser_family: Chrome
146
+ -
147
+ user_agent: Mozilla/5.0 (Linux; Android 8.1.0; TEG9300) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.83 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: 83.0.4103.83
156
+ engine: Blink
157
+ engine_version: ""
158
+ device:
159
+ type: peripheral
160
+ brand: OASYS
161
+ model: TEG9300
162
+ os_family: Android
163
+ browser_family: Chrome
164
+ -
165
+ user_agent: Mozilla/5.0 (Linux; Android 5.1.1; XGIMI TV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
166
+ os:
167
+ name: Android
168
+ version: 5.1.1
169
+ platform: ""
170
+ client:
171
+ type: browser
172
+ name: Chrome
173
+ version: 81.0.4044.138
174
+ engine: Blink
175
+ engine_version: ""
176
+ device:
177
+ type: peripheral
178
+ brand: XGIMI
179
+ model: ""
180
+ os_family: Android
181
+ browser_family: Chrome
182
+ -
183
+ user_agent: Mozilla/5.0 (Linux; Android 10; Raspberry Pi 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Safari/537.36
184
+ os:
185
+ name: Android
186
+ version: "10"
187
+ platform: ""
188
+ client:
189
+ type: browser
190
+ name: Chrome
191
+ version: 90.0.4430.91
192
+ engine: Blink
193
+ engine_version: ""
194
+ device:
195
+ type: peripheral
196
+ brand: Raspberry
197
+ model: Pi 4
198
+ os_family: Android
199
+ browser_family: Chrome
200
+ -
201
+ user_agent: Mozilla/5.0 (Linux; Android 8.1.0; Raspberry Pi 3 Build/OPM2.171026.006.C1) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/67.0.3396.87 Safari/537.36
202
+ os:
203
+ name: Android
204
+ version: 8.1.0
205
+ platform: ""
206
+ client:
207
+ type: browser
208
+ name: Chrome Webview
209
+ version: 67.0.3396.87
210
+ engine: Blink
211
+ engine_version: ""
212
+ device:
213
+ type: peripheral
214
+ brand: Raspberry
215
+ model: Pi 3
216
+ os_family: Android
217
+ browser_family: Chrome
218
+ -
219
+ user_agent: Mozilla/5.0 (Linux; Tizen 4.0; SAMSUNG Family Hub 4.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.0 Safari/537.36
220
+ os:
221
+ name: Tizen
222
+ version: "4.0"
223
+ platform: ""
224
+ client:
225
+ type: browser
226
+ name: Chrome
227
+ version: 56.0.2924.0
228
+ engine: Blink
229
+ engine_version: ""
230
+ device:
231
+ type: peripheral
232
+ brand: Samsung
233
+ model: Family Hub
234
+ os_family: Other Mobile
235
+ browser_family: Chrome
236
+ -
237
+ user_agent: Mozilla/5.0 (Linux; Tizen 4.0; SAMSUNG Family Hub 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.0 Safari/537.36
238
+ os:
239
+ name: Tizen
240
+ version: "4.0"
241
+ platform: ""
242
+ client:
243
+ type: browser
244
+ name: Chrome
245
+ version: 56.0.2924.0
246
+ engine: Blink
247
+ engine_version: ""
248
+ device:
249
+ type: peripheral
250
+ brand: Samsung
251
+ model: Family Hub
252
+ os_family: Other Mobile
253
+ browser_family: Chrome
254
+ -
255
+ user_agent: Mozilla/5.0 (Linux; Tizen 6.0; SAMSUNG Family Hub 6.0) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/1.0 Chrome/76.0.3809.146 Mobile Safari/537.36
256
+ os:
257
+ name: Tizen
258
+ version: "6.0"
259
+ platform: ""
260
+ client:
261
+ type: browser
262
+ name: Samsung Browser
263
+ version: "1.0"
264
+ engine: WebKit
265
+ engine_version: "537.36"
266
+ device:
267
+ type: peripheral
268
+ brand: Samsung
269
+ model: Family Hub
270
+ os_family: Other Mobile
271
+ browser_family: Chrome