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,19 +3,17 @@
3
3
  user_agent: Mozilla/5.0 (Linux; U; Android 4.0.4; fr-be; DA220HQL Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30
4
4
  os:
5
5
  name: Android
6
- short_name: AND
7
6
  version: "4.0.4"
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: "534.30"
16
14
  device:
17
15
  type: smart display
18
- brand: AC
16
+ brand: Acer
19
17
  model: DA220HQL
20
18
  os_family: Android
21
19
  browser_family: Android Browser
@@ -23,19 +21,17 @@
23
21
  user_agent: Mozilla/5.0 (Linux; Android 4.2.1; DA241HL Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36
24
22
  os:
25
23
  name: Android
26
- short_name: AND
27
24
  version: "4.2.1"
28
25
  platform: ""
29
26
  client:
30
27
  type: browser
31
28
  name: Chrome
32
- short_name: CH
33
29
  version: "34.0.1847.114"
34
30
  engine: Blink
35
31
  engine_version: ""
36
32
  device:
37
33
  type: smart display
38
- brand: AC
34
+ brand: Acer
39
35
  model: DA241HL
40
36
  os_family: Android
41
37
  browser_family: Chrome
@@ -43,19 +39,197 @@
43
39
  user_agent: Mozilla/5.0 (Linux; U; Android 4.0.4; de-de; VSD220 Build/IMM76D.UI23ED12_VSC) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30
44
40
  os:
45
41
  name: Android
46
- short_name: AND
47
42
  version: "4.0.4"
48
43
  platform: ""
49
44
  client:
50
45
  type: browser
51
46
  name: Android Browser
52
- short_name: AN
53
47
  version: ""
54
48
  engine: WebKit
55
49
  engine_version: "534.30"
56
50
  device:
57
51
  type: smart display
58
- brand: VS
52
+ brand: ViewSonic
59
53
  model: VSD220
60
54
  os_family: Android
61
55
  browser_family: Android Browser
56
+ -
57
+ user_agent: Mozilla/5.0 (Linux; Android 8.0.0; IFP7550-3 Build/OPR5.170623.014) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Safari/537.36
58
+ os:
59
+ name: Android
60
+ version: 8.0.0
61
+ platform: ""
62
+ client:
63
+ type: browser
64
+ name: Chrome Webview
65
+ version: 61.0.3163.98
66
+ engine: Blink
67
+ engine_version: ""
68
+ device:
69
+ type: smart display
70
+ brand: ViewSonic
71
+ model: ViewBoard IFP7550-3 75" 4K
72
+ os_family: Android
73
+ browser_family: Chrome
74
+ -
75
+ user_agent: Mozilla/5.0 (Linux; Android 8.0.0; IFP9850-3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3739.0 Safari/537.36
76
+ os:
77
+ name: Android
78
+ version: 8.0.0
79
+ platform: ""
80
+ client:
81
+ type: browser
82
+ name: Chrome
83
+ version: 75.0.3739.0
84
+ engine: Blink
85
+ engine_version: ""
86
+ device:
87
+ type: smart display
88
+ brand: ViewSonic
89
+ model: ViewBoard IFP9850-3 98" 4K
90
+ os_family: Android
91
+ browser_family: Chrome
92
+ -
93
+ user_agent: Mozilla/5.0 (Linux; Android 8.0.0; IFP8650-3 Build/OPR5.170623.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Safari/537.36
94
+ os:
95
+ name: Android
96
+ version: 8.0.0
97
+ platform: ""
98
+ client:
99
+ type: browser
100
+ name: Chrome Webview
101
+ version: 61.0.3163.98
102
+ engine: Blink
103
+ engine_version: ""
104
+ device:
105
+ type: smart display
106
+ brand: ViewSonic
107
+ model: ViewBoard IFP8650-3 86" 4K
108
+ os_family: Android
109
+ browser_family: Chrome
110
+ -
111
+ user_agent: Mozilla/5.0 (Linux; Android 8.0.0; IFP6550-3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.85 Safari/537.36
112
+ os:
113
+ name: Android
114
+ version: 8.0.0
115
+ platform: ""
116
+ client:
117
+ type: browser
118
+ name: Chrome
119
+ version: 76.0.3809.85
120
+ engine: Blink
121
+ engine_version: ""
122
+ device:
123
+ type: smart display
124
+ brand: ViewSonic
125
+ model: ViewBoard IFP6550-3 65" 4K
126
+ os_family: Android
127
+ browser_family: Chrome
128
+ -
129
+ user_agent: Mozilla/5.0 (Linux; Android 8.0.0; IFP7550-3 Build/OPR5.170623.014) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Safari/537.36
130
+ os:
131
+ name: Android
132
+ version: 8.0.0
133
+ platform: ""
134
+ client:
135
+ type: browser
136
+ name: Chrome Webview
137
+ version: 61.0.3163.98
138
+ engine: Blink
139
+ engine_version: ""
140
+ device:
141
+ type: smart display
142
+ brand: ViewSonic
143
+ model: ViewBoard IFP7550-3 75" 4K
144
+ os_family: Android
145
+ browser_family: Chrome
146
+ -
147
+ user_agent: Mozilla/5.0 (Linux; Android 8.0.0; IFP9850-3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3739.0 Safari/537.36
148
+ os:
149
+ name: Android
150
+ version: 8.0.0
151
+ platform: ""
152
+ client:
153
+ type: browser
154
+ name: Chrome
155
+ version: 75.0.3739.0
156
+ engine: Blink
157
+ engine_version: ""
158
+ device:
159
+ type: smart display
160
+ brand: ViewSonic
161
+ model: ViewBoard IFP9850-3 98" 4K
162
+ os_family: Android
163
+ browser_family: Chrome
164
+ -
165
+ user_agent: Mozilla/5.0 (Linux; Android 8.0.0; IFP8650-3 Build/OPR5.170623.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Safari/537.36
166
+ os:
167
+ name: Android
168
+ version: 8.0.0
169
+ platform: ""
170
+ client:
171
+ type: browser
172
+ name: Chrome Webview
173
+ version: 61.0.3163.98
174
+ engine: Blink
175
+ engine_version: ""
176
+ device:
177
+ type: smart display
178
+ brand: ViewSonic
179
+ model: ViewBoard IFP8650-3 86" 4K
180
+ os_family: Android
181
+ browser_family: Chrome
182
+ -
183
+ user_agent: Mozilla/5.0 (Linux; Android 8.0.0; IFP6550-3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.85 Safari/537.36
184
+ os:
185
+ name: Android
186
+ version: 8.0.0
187
+ platform: ""
188
+ client:
189
+ type: browser
190
+ name: Chrome
191
+ version: 76.0.3809.85
192
+ engine: Blink
193
+ engine_version: ""
194
+ device:
195
+ type: smart display
196
+ brand: ViewSonic
197
+ model: ViewBoard IFP6550-3 65" 4K
198
+ os_family: Android
199
+ browser_family: Chrome
200
+ -
201
+ user_agent: Dalvik/1.6.0 (Linux; U; Android 4.4.4; WT22M-FI Build/KTU84Q)
202
+ os:
203
+ name: Android
204
+ version: 4.4.4
205
+ platform: ""
206
+ client:
207
+ type: browser
208
+ name: Android Browser
209
+ version: ""
210
+ engine: WebKit
211
+ engine_version: ""
212
+ device:
213
+ type: smart display
214
+ brand: AOpen
215
+ model: eTILE WT22M-FI
216
+ os_family: Android
217
+ browser_family: Android Browser
218
+ -
219
+ user_agent: Dalvik/1.6.0 (Linux; U; Android 4.3.1; WT19M-FI Build/JLS36I)
220
+ os:
221
+ name: Android
222
+ version: 4.3.1
223
+ platform: ""
224
+ client:
225
+ type: browser
226
+ name: Android Browser
227
+ version: ""
228
+ engine: WebKit
229
+ engine_version: ""
230
+ device:
231
+ type: smart display
232
+ brand: AOpen
233
+ model: eTILE WT19M-FI
234
+ os_family: Android
235
+ browser_family: Android Browser
@@ -0,0 +1,60 @@
1
+ ---
2
+ -
3
+ user_agent: AppleCoreMedia/1.0.0.15F80 (HomePod; U; CPU OS 11_4 like Mac OS X; fr_fr)
4
+ os:
5
+ name: iOS
6
+ version: "11.4"
7
+ platform: ""
8
+ client: null
9
+ device:
10
+ type: smart speaker
11
+ brand: Apple
12
+ model: HomePod
13
+ os_family: iOS
14
+ browser_family: Unknown
15
+ -
16
+ user_agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; AEOBC Build/LVY48F)
17
+ os:
18
+ name: Android
19
+ version: "5.1.1"
20
+ platform: ""
21
+ client:
22
+ type: browser
23
+ name: Android Browser
24
+ version: ""
25
+ engine: WebKit
26
+ engine_version: ""
27
+ device:
28
+ type: smart speaker
29
+ brand: Amazon
30
+ model: Echo
31
+ os_family: Android
32
+ browser_family: Android Browser
33
+ -
34
+ user_agent: Mozilla/5.0 (Linux; Android 5.1.1; AEOKN Build/LVY48F; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Safari/537.36
35
+ os:
36
+ name: Android
37
+ version: "5.1.1"
38
+ platform: ""
39
+ client:
40
+ type: browser
41
+ name: Chrome Webview
42
+ version: "59.0.3071.125"
43
+ engine: Blink
44
+ engine_version: ""
45
+ device:
46
+ type: smart speaker
47
+ brand: Amazon
48
+ model: Echo
49
+ os_family: Android
50
+ browser_family: Chrome
51
+ -
52
+ user_agent: Echo/1.0(APNG)
53
+ os: [ ]
54
+ client: null
55
+ device:
56
+ type: smart speaker
57
+ brand: Amazon
58
+ model: Echo
59
+ os_family: Unknown
60
+ browser_family: Unknown