device_detector 0.7.0 → 0.8.0

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -0
  3. data/Rakefile +12 -6
  4. data/device_detector.gemspec +1 -1
  5. data/lib/device_detector.rb +65 -4
  6. data/lib/device_detector/client.rb +6 -6
  7. data/lib/device_detector/device.rb +62 -31
  8. data/lib/device_detector/memory_cache.rb +1 -1
  9. data/lib/device_detector/metadata_extractor.rb +4 -13
  10. data/lib/device_detector/model_extractor.rb +10 -1
  11. data/lib/device_detector/name_extractor.rb +1 -1
  12. data/lib/device_detector/os.rb +141 -5
  13. data/lib/device_detector/parser.rb +23 -12
  14. data/lib/device_detector/version.rb +1 -1
  15. data/lib/device_detector/version_extractor.rb +1 -1
  16. data/regexes/bots.yml +36 -1
  17. data/regexes/{browser_engines.yml → client/browser_engine.yml} +4 -1
  18. data/regexes/{browsers.yml → client/browsers.yml} +31 -27
  19. data/regexes/{feed_readers.yml → client/feed_readers.yml} +0 -1
  20. data/regexes/{libraries.yml → client/libraries.yml} +1 -1
  21. data/regexes/{mediaplayers.yml → client/mediaplayers.yml} +1 -1
  22. data/regexes/{mobile_apps.yml → client/mobile_apps.yml} +0 -1
  23. data/regexes/{pim.yml → client/pim.yml} +1 -1
  24. data/regexes/{devices → device}/cameras.yml +1 -1
  25. data/regexes/{devices → device}/car_browsers.yml +0 -1
  26. data/regexes/{devices → device}/consoles.yml +0 -1
  27. data/regexes/{devices → device}/mobiles.yml +193 -49
  28. data/regexes/{devices/portable_media_players.yml → device/portable_media_player.yml} +0 -1
  29. data/regexes/{devices → device}/televisions.yml +0 -3
  30. data/regexes/oss.yml +105 -102
  31. data/regexes/vendorfragments.yml +70 -0
  32. data/spec/device_detector/bot_fixtures_spec.rb +30 -0
  33. data/spec/device_detector/client_fixtures_spec.rb +31 -0
  34. data/spec/device_detector/concrete_user_agent_spec.rb +41 -1
  35. data/spec/device_detector/detector_fixtures_spec.rb +56 -0
  36. data/spec/device_detector/device_fixtures_spec.rb +36 -0
  37. data/spec/device_detector/device_spec.rb +3 -3
  38. data/spec/device_detector/memory_cache_spec.rb +1 -1
  39. data/spec/device_detector/model_extractor_spec.rb +7 -7
  40. data/spec/device_detector/os_fixtures_spec.rb +26 -0
  41. data/spec/device_detector/version_extractor_spec.rb +10 -10
  42. data/spec/device_detector_spec.rb +1 -1
  43. data/spec/fixtures/client/browser.yml +986 -0
  44. data/spec/fixtures/client/feed_reader.yml +180 -0
  45. data/spec/fixtures/client/library.yml +78 -0
  46. data/spec/fixtures/client/mediaplayer.yml +144 -0
  47. data/spec/fixtures/client/mobile_app.yml +24 -0
  48. data/spec/fixtures/client/pim.yml +90 -0
  49. data/spec/fixtures/detector/bots.yml +716 -0
  50. data/spec/fixtures/detector/camera.yml +91 -0
  51. data/spec/fixtures/detector/car_browser.yml +19 -0
  52. data/spec/fixtures/detector/console.yml +253 -0
  53. data/spec/fixtures/detector/desktop.yml +4568 -0
  54. data/spec/fixtures/detector/feature_phone.yml +719 -0
  55. data/spec/fixtures/detector/feed_reader.yml +462 -0
  56. data/spec/fixtures/detector/mediaplayer.yml +141 -0
  57. data/spec/fixtures/detector/mobile_apps.yml +32 -0
  58. data/spec/fixtures/detector/phablet.yml +1095 -0
  59. data/spec/fixtures/detector/portable_media_player.yml +145 -0
  60. data/spec/fixtures/detector/smart_display.yml +19 -0
  61. data/spec/fixtures/detector/smartphone.yml +28673 -0
  62. data/spec/fixtures/detector/tablet.yml +13201 -0
  63. data/spec/fixtures/detector/tv.yml +1380 -0
  64. data/spec/fixtures/detector/unknown.yml +3536 -0
  65. data/spec/fixtures/device/camera.yml +18 -0
  66. data/spec/fixtures/device/car_browser.yml +6 -0
  67. data/spec/fixtures/device/console.yml +72 -0
  68. data/spec/fixtures/parser/bots.yml +2055 -0
  69. data/spec/fixtures/parser/oss.yml +607 -0
  70. data/spec/fixtures/parser/vendorfragments.yml +156 -0
  71. data/spec/spec_helper.rb +6 -2
  72. metadata +84 -17
@@ -0,0 +1,462 @@
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
+ client:
8
+ type: feed reader
9
+ name: Akregator
10
+ version: "4.11.5"
11
+ device:
12
+ type: desktop
13
+ brand:
14
+ model:
15
+ os_family: GNU/Linux
16
+ browser_family: Unknown
17
+ -
18
+ user_agent: Akregator/4.12.3; syndication SUSE
19
+ os:
20
+ name: SUSE
21
+ short_name: SSE
22
+ version:
23
+ client:
24
+ type: feed reader
25
+ name: Akregator
26
+ version: "4.12.3"
27
+ device:
28
+ type: desktop
29
+ brand:
30
+ model:
31
+ os_family: GNU/Linux
32
+ browser_family: Unknown
33
+ -
34
+ user_agent: Akregator/1.2.9; librss/remnants
35
+ os: [ ]
36
+ client:
37
+ type: feed reader
38
+ name: Akregator
39
+ version: "1.2.9"
40
+ device:
41
+ type:
42
+ brand:
43
+ model:
44
+ os_family: Unknown
45
+ browser_family: Unknown
46
+ -
47
+ user_agent: Apple-PubSub/65.28
48
+ os: [ ]
49
+ client:
50
+ type: feed reader
51
+ name: Apple PubSub
52
+ version: "65.28"
53
+ device:
54
+ type:
55
+ brand:
56
+ model:
57
+ os_family: Unknown
58
+ browser_family: Unknown
59
+ -
60
+ user_agent: FeedDemon/4.5 (http://www.feeddemon.com/; Microsoft Windows)
61
+ os:
62
+ name: Windows
63
+ short_name: WIN
64
+ version:
65
+ client:
66
+ type: feed reader
67
+ name: FeedDemon
68
+ version: "4.5"
69
+ device:
70
+ type: desktop
71
+ brand:
72
+ model:
73
+ os_family: Windows
74
+ browser_family: Unknown
75
+ -
76
+ user_agent: FeedDemon/4.5 (http://www.feeddemon.com/; Microsoft Windows XP)
77
+ os:
78
+ name: Windows
79
+ short_name: WIN
80
+ version: "XP"
81
+ client:
82
+ type: feed reader
83
+ name: FeedDemon
84
+ version: "4.5"
85
+ device:
86
+ type: desktop
87
+ brand:
88
+ model:
89
+ os_family: Windows
90
+ browser_family: Unknown
91
+ -
92
+ user_agent: FeeddlerPro/2.4 CFNetwork/672.0.8 Darwin/14.0.0
93
+ os:
94
+ name: Mac
95
+ short_name: MAC
96
+ version:
97
+ client:
98
+ type: feed reader
99
+ name: Feeddler RSS Reader
100
+ version: "2.4"
101
+ device:
102
+ type: desktop
103
+ brand:
104
+ model:
105
+ os_family: Mac
106
+ browser_family: Unknown
107
+ -
108
+ user_agent: FeeddlerRSS/2.4 CFNetwork/548.1.4 Darwin/11.0.0
109
+ os:
110
+ name: Mac
111
+ short_name: MAC
112
+ version:
113
+ client:
114
+ type: feed reader
115
+ name: Feeddler RSS Reader
116
+ version: "2.4"
117
+ device:
118
+ type: desktop
119
+ brand:
120
+ model:
121
+ os_family: Mac
122
+ browser_family: Unknown
123
+ -
124
+ user_agent: FeeddlerRSS 2.4 (iPad; iPhone OS 5.1.1; en_US)
125
+ os:
126
+ name: iOS
127
+ short_name: IOS
128
+ version: "5.1.1"
129
+ client:
130
+ type: feed reader
131
+ name: Feeddler RSS Reader
132
+ version: "2.4"
133
+ device:
134
+ type: tablet
135
+ brand: AP
136
+ model: iPad
137
+ os_family: iOS
138
+ browser_family: Unknown
139
+ -
140
+ user_agent: JetBrains Omea Reader 2.2 (http://www.jetbrains.com/omea/reader/)
141
+ os: [ ]
142
+ client:
143
+ type: feed reader
144
+ name: JetBrains Omea Reader
145
+ version: "2.2"
146
+ device:
147
+ type:
148
+ brand:
149
+ model:
150
+ os_family: Unknown
151
+ browser_family: Unknown
152
+ -
153
+ user_agent: Liferea/1.6.4 (Linux; en_US.UTF-8; http://liferea.sf.net/)
154
+ os:
155
+ name: GNU/Linux
156
+ short_name: LIN
157
+ version:
158
+ client:
159
+ type: feed reader
160
+ name: Liferea
161
+ version: "1.6.4"
162
+ device:
163
+ type: desktop
164
+ brand:
165
+ model:
166
+ os_family: GNU/Linux
167
+ browser_family: Unknown
168
+ -
169
+ user_agent: Liferea/1.10-RC1 (Linux; en_GB.UTF-8; http://liferea.sf.net/)
170
+ os:
171
+ name: GNU/Linux
172
+ short_name: LIN
173
+ version:
174
+ client:
175
+ type: feed reader
176
+ name: Liferea
177
+ version: "1.10"
178
+ device:
179
+ type: desktop
180
+ brand:
181
+ model:
182
+ os_family: GNU/Linux
183
+ browser_family: Unknown
184
+ -
185
+ user_agent: Liferea/1.10.6 (Linux; en_US.UTF8; http://liferea.sf.net/) AppleWebKit (KHTML, like Gecko)
186
+ os:
187
+ name: GNU/Linux
188
+ short_name: LIN
189
+ version:
190
+ client:
191
+ type: feed reader
192
+ name: Liferea
193
+ version: "1.10.6"
194
+ device:
195
+ type: desktop
196
+ brand:
197
+ model:
198
+ os_family: GNU/Linux
199
+ browser_family: Unknown
200
+ -
201
+ 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
202
+ os:
203
+ name: Mac
204
+ short_name: MAC
205
+ version: "10.9.2"
206
+ client:
207
+ type: feed reader
208
+ name: NetNewsWire
209
+ version: "4.0.0"
210
+ device:
211
+ type: desktop
212
+ brand:
213
+ model:
214
+ os_family: Mac
215
+ browser_family: Unknown
216
+ -
217
+ user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.74.9 (KHTML, like Gecko) NetNewsWire/3.3.2
218
+ os:
219
+ name: Mac
220
+ short_name: MAC
221
+ version: "10.9.2"
222
+ client:
223
+ type: feed reader
224
+ name: NetNewsWire
225
+ version: "3.3.2"
226
+ device:
227
+ type: desktop
228
+ brand:
229
+ model:
230
+ os_family: Mac
231
+ browser_family: Unknown
232
+ -
233
+ user_agent: NetNewsWire/4.0.0 (Mac OS X; http://netnewswireapp.com/mac/; gzip-happy)
234
+ os:
235
+ name: Mac
236
+ short_name: MAC
237
+ version:
238
+ client:
239
+ type: feed reader
240
+ name: NetNewsWire
241
+ version: "4.0.0"
242
+ device:
243
+ type: desktop
244
+ brand:
245
+ model:
246
+ os_family: Mac
247
+ browser_family: Unknown
248
+ -
249
+ user_agent: newsbeuter/2.7 (Linux x86_64)
250
+ os:
251
+ name: GNU/Linux
252
+ short_name: LIN
253
+ version:
254
+ client:
255
+ type: feed reader
256
+ name: Newsbeuter
257
+ version: "2.7"
258
+ device:
259
+ type: desktop
260
+ brand:
261
+ model:
262
+ os_family: GNU/Linux
263
+ browser_family: Unknown
264
+ -
265
+ user_agent: NewsBlur iPhone App v3.6
266
+ os:
267
+ name: iOS
268
+ short_name: IOS
269
+ version:
270
+ client:
271
+ type: feed reader
272
+ name: NewsBlur Mobile App
273
+ version: "3.6"
274
+ device:
275
+ type: smartphone
276
+ brand: AP
277
+ model: iPhone
278
+ os_family: iOS
279
+ browser_family: Unknown
280
+ -
281
+ user_agent: NewsBlur iPad App v3.6
282
+ os:
283
+ name: iOS
284
+ short_name: IOS
285
+ version:
286
+ client:
287
+ type: feed reader
288
+ name: NewsBlur Mobile App
289
+ version: "3.6"
290
+ device:
291
+ type: tablet
292
+ brand: AP
293
+ model: iPad
294
+ os_family: iOS
295
+ browser_family: Unknown
296
+ -
297
+ user_agent: NewsBlur/4.0.1 CFNetwork/672.1.13 Darwin/14.0.0
298
+ os:
299
+ name: Mac
300
+ short_name: MAC
301
+ version:
302
+ client:
303
+ type: feed reader
304
+ name: NewsBlur
305
+ version: "4.0.1"
306
+ device:
307
+ type: desktop
308
+ brand:
309
+ model:
310
+ os_family: Mac
311
+ browser_family: Unknown
312
+ -
313
+ 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
314
+ os:
315
+ name: GNU/Linux
316
+ short_name: LIN
317
+ version:
318
+ client:
319
+ type: feed reader
320
+ name: Newsbeuter
321
+ version: "2.4"
322
+ device:
323
+ type: desktop
324
+ brand:
325
+ model:
326
+ os_family: GNU/Linux
327
+ browser_family: Unknown
328
+ -
329
+ user_agent: Pulp/1.5.2 (iPad; http://www.acrylicapps.com/pulp/)
330
+ os:
331
+ name: iOS
332
+ short_name: IOS
333
+ version:
334
+ client:
335
+ type: feed reader
336
+ name: Pulp
337
+ version: "1.5.2"
338
+ device:
339
+ type: tablet
340
+ brand: AP
341
+ model: iPad
342
+ os_family: iOS
343
+ browser_family: Unknown
344
+ -
345
+ user_agent: ReadKit/2.4.0 (Mac OS X Version 10.9.2 (Build 13C64))
346
+ os:
347
+ name: Mac
348
+ short_name: MAC
349
+ version: "10.9.2"
350
+ client:
351
+ type: feed reader
352
+ name: ReadKit
353
+ version: "2.4.0"
354
+ device:
355
+ type: desktop
356
+ brand:
357
+ model:
358
+ os_family: Mac
359
+ browser_family: Unknown
360
+ -
361
+ user_agent: ReadKit/7017 CFNetwork/673.2.1 Darwin/13.1.0 (x86_64) (MacBookPro10%2C1)
362
+ os:
363
+ name: Mac
364
+ short_name: MAC
365
+ version:
366
+ client:
367
+ type: feed reader
368
+ name: ReadKit
369
+ version: "7017"
370
+ device:
371
+ type: desktop
372
+ brand:
373
+ model:
374
+ os_family: Mac
375
+ browser_family: Unknown
376
+ -
377
+ user_agent: Reeder/3.2 CFNetwork/672.1.12 Darwin/14.0.0
378
+ os:
379
+ name: Mac
380
+ short_name: MAC
381
+ version:
382
+ client:
383
+ type: feed reader
384
+ name: Reeder
385
+ version: "3.2"
386
+ device:
387
+ type: desktop
388
+ brand:
389
+ model:
390
+ os_family: Mac
391
+ browser_family: Unknown
392
+ -
393
+ user_agent: RssBandit/1.9.0.1002
394
+ os: [ ]
395
+ client:
396
+ type: feed reader
397
+ name: RSS Bandit
398
+ version: "1.9.0.1002"
399
+ device:
400
+ type:
401
+ brand:
402
+ model:
403
+ os_family: Unknown
404
+ browser_family: Unknown
405
+ -
406
+ user_agent: RssBandit/1.9.0.1002 (.NET CLR 2.0.50727.7512; WinNT 6.2.9200.0; http://www.rssbandit.org)
407
+ os:
408
+ name: Windows
409
+ short_name: WIN
410
+ version: "NT"
411
+ client:
412
+ type: feed reader
413
+ name: RSS Bandit
414
+ version: "1.9.0.1002"
415
+ device:
416
+ type: desktop
417
+ brand:
418
+ model:
419
+ os_family: Windows
420
+ browser_family: Unknown
421
+ -
422
+ user_agent: RSS Junkie Daemon
423
+ os: [ ]
424
+ client:
425
+ type: feed reader
426
+ name: RSS Junkie
427
+ version:
428
+ device:
429
+ type:
430
+ brand:
431
+ model:
432
+ os_family: Unknown
433
+ browser_family: Unknown
434
+ -
435
+ user_agent: RSSOwl/2.2.1.201312301314 (Windows; U; en)
436
+ os:
437
+ name: Windows
438
+ short_name: WIN
439
+ version:
440
+ client:
441
+ type: feed reader
442
+ name: RSSOwl
443
+ version: "2.2.1.201312301314"
444
+ device:
445
+ type: desktop
446
+ brand:
447
+ model:
448
+ os_family: Windows
449
+ browser_family: Unknown
450
+ -
451
+ user_agent: RSSOwl/2.2.1.201312301316 (X11; U; en)
452
+ os: [ ]
453
+ client:
454
+ type: feed reader
455
+ name: RSSOwl
456
+ version: "2.2.1.201312301316"
457
+ device:
458
+ type:
459
+ brand:
460
+ model:
461
+ os_family: Unknown
462
+ browser_family: Unknown