device_detector 1.0.3 → 1.0.4

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 (76) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +49 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +1 -1
  5. data/CHANGELOG.md +5 -0
  6. data/README.md +4 -4
  7. data/Rakefile +6 -17
  8. data/device_detector.gemspec +1 -0
  9. data/lib/device_detector.rb +17 -28
  10. data/lib/device_detector/bot.rb +2 -2
  11. data/lib/device_detector/client.rb +3 -2
  12. data/lib/device_detector/device.rb +44 -21
  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 +121 -114
  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 +2 -3
  21. data/regexes/bots.yml +228 -12
  22. data/regexes/client/browser_engine.yml +4 -1
  23. data/regexes/client/browsers.yml +358 -34
  24. data/regexes/client/feed_readers.yml +1 -1
  25. data/regexes/client/libraries.yml +16 -1
  26. data/regexes/client/mediaplayers.yml +14 -2
  27. data/regexes/client/mobile_apps.yml +26 -2
  28. data/regexes/client/pim.yml +1 -1
  29. data/regexes/device/cameras.yml +1 -1
  30. data/regexes/device/car_browsers.yml +7 -3
  31. data/regexes/device/consoles.yml +3 -3
  32. data/regexes/device/mobiles.yml +2468 -823
  33. data/regexes/device/portable_media_player.yml +2 -2
  34. data/regexes/device/televisions.yml +1 -1
  35. data/regexes/oss.yml +20 -5
  36. data/regexes/vendorfragments.yml +5 -1
  37. data/spec/device_detector/device_spec.rb +4 -24
  38. data/spec/fixtures/client/browser.yml +632 -2
  39. data/spec/fixtures/client/library.yml +18 -0
  40. data/spec/fixtures/client/mobile_app.yml +24 -0
  41. data/spec/fixtures/detector/bots.yml +533 -67
  42. data/spec/fixtures/detector/camera.yml +20 -0
  43. data/spec/fixtures/detector/car_browser.yml +60 -0
  44. data/spec/fixtures/detector/console.yml +40 -0
  45. data/spec/fixtures/detector/desktop.yml +140 -40
  46. data/spec/fixtures/detector/mediaplayer.yml +43 -0
  47. data/spec/fixtures/detector/mobile_apps.yml +40 -2
  48. data/spec/fixtures/detector/phablet.yml +383 -1
  49. data/spec/fixtures/detector/smart_speaker.yml +55 -0
  50. data/spec/fixtures/detector/smartphone-1.yml +3669 -3695
  51. data/spec/fixtures/detector/smartphone-10.yml +4147 -4094
  52. data/spec/fixtures/detector/smartphone-11.yml +4475 -4473
  53. data/spec/fixtures/detector/smartphone-12.yml +5502 -4251
  54. data/spec/fixtures/detector/smartphone-13.yml +9920 -0
  55. data/spec/fixtures/detector/smartphone-14.yml +2662 -0
  56. data/spec/fixtures/detector/smartphone-2.yml +3738 -3713
  57. data/spec/fixtures/detector/smartphone-3.yml +3970 -3912
  58. data/spec/fixtures/detector/smartphone-4.yml +4518 -4506
  59. data/spec/fixtures/detector/smartphone-5.yml +3645 -3664
  60. data/spec/fixtures/detector/smartphone-6.yml +3868 -3829
  61. data/spec/fixtures/detector/smartphone-7.yml +3992 -3985
  62. data/spec/fixtures/detector/smartphone-8.yml +4510 -4475
  63. data/spec/fixtures/detector/smartphone-9.yml +4226 -4255
  64. data/spec/fixtures/detector/smartphone.yml +3197 -3197
  65. data/spec/fixtures/detector/tablet-1.yml +3940 -3968
  66. data/spec/fixtures/detector/tablet-2.yml +3773 -3764
  67. data/spec/fixtures/detector/tablet-3.yml +5243 -3071
  68. data/spec/fixtures/detector/tablet-4.yml +4528 -0
  69. data/spec/fixtures/detector/tablet.yml +3145 -3125
  70. data/spec/fixtures/detector/tv.yml +1695 -95
  71. data/spec/fixtures/detector/unknown.yml +13 -60
  72. data/spec/fixtures/detector/wearable.yml +61 -0
  73. data/spec/fixtures/device/car_browser.yml +6 -0
  74. data/spec/fixtures/parser/oss.yml +36 -1
  75. data/spec/fixtures/parser/vendorfragments.yml +6 -0
  76. metadata +32 -7
@@ -54,6 +54,19 @@
54
54
  model: ""
55
55
  os_family: Unknown
56
56
  browser_family: Unknown
57
+ -
58
+ user_agent: Google-HTTP-Java-Client/1.17.0-rc (gzip)
59
+ os: [ ]
60
+ client:
61
+ type: library
62
+ name: Google HTTP Java Client
63
+ version: "1.17.0-rc"
64
+ device:
65
+ type: ""
66
+ brand: ""
67
+ model: ""
68
+ os_family: Unknown
69
+ browser_family: Unknown
57
70
  -
58
71
  user_agent: gPodder/3.5.2 (+http://gpodder.org/)
59
72
  os: [ ]
@@ -2536,26 +2549,6 @@
2536
2549
  model: ""
2537
2550
  os_family: Android
2538
2551
  browser_family: Unknown
2539
- -
2540
- user_agent: 'Mozilla/5.0 (Linux; U; Android 4.0.4; fa-ir) AppleWebKit/534.35 (KHTML, like Gecko) Chrome/11.0.696.65 Safari/534.35 Puffin/2.10990AP Mobile'
2541
- os:
2542
- name: Android
2543
- short_name: AND
2544
- version: "4.0.4"
2545
- platform: ""
2546
- client:
2547
- type: browser
2548
- name: Puffin
2549
- short_name: PU
2550
- version: "2.10990"
2551
- engine: WebKit
2552
- engine_version: "534.35"
2553
- device:
2554
- type: ""
2555
- brand: ""
2556
- model: ""
2557
- os_family: Android
2558
- browser_family: Unknown
2559
2552
  -
2560
2553
  user_agent: Mozilla/5.0 (Linux; U; Android 4.0.9; ru-ru; X710d Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
2561
2554
  os:
@@ -2873,26 +2866,6 @@
2873
2866
  model: ""
2874
2867
  os_family: Android
2875
2868
  browser_family: Unknown
2876
- -
2877
- user_agent: Mozilla/5.0 (Linux; Android 4.4.2; Florida Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36
2878
- os:
2879
- name: Android
2880
- short_name: AND
2881
- version: "4.4.2"
2882
- platform: ""
2883
- client:
2884
- type: browser
2885
- name: Chrome Webview
2886
- short_name: CV
2887
- version: "30.0.0.0"
2888
- engine: Blink
2889
- engine_version: ""
2890
- device:
2891
- type: ""
2892
- brand: ""
2893
- model: ""
2894
- os_family: Android
2895
- browser_family: Chrome
2896
2869
  -
2897
2870
  user_agent: 'Dalvik/2.1.0 (Linux## U## Android 7.1.1## Chromebook 14 (CB3-431) Build/R63-10032.86.0)'
2898
2871
  os:
@@ -2913,26 +2886,6 @@
2913
2886
  model: ""
2914
2887
  os_family: Android
2915
2888
  browser_family: Android Browser
2916
- -
2917
- user_agent: Mozilla/5.0 (Linux; Android 9) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.92 Mobile Safari/537.36 DuckDuckGo/5
2918
- os:
2919
- name: Android
2920
- short_name: AND
2921
- version: "9"
2922
- platform: ""
2923
- client:
2924
- type: browser
2925
- name: DuckDuckGo Privacy Browser
2926
- short_name: DD
2927
- version: "5"
2928
- engine: Blink
2929
- engine_version: ""
2930
- device:
2931
- type: ""
2932
- brand: ""
2933
- model: ""
2934
- os_family: Android
2935
- browser_family: Chrome
2936
2889
  -
2937
2890
  user_agent: bPod
2938
2891
  os:
@@ -0,0 +1,61 @@
1
+ ---
2
+ -
3
+ user_agent: Mozilla/5.0 (Linux; Android 8.0; LEO-BX9 Build/OWDD.180926.001.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Cr4 Mobile Safari/537.36
4
+ os:
5
+ name: Android
6
+ short_name: AND
7
+ version: "8.0"
8
+ platform: ""
9
+ client:
10
+ type: browser
11
+ name: Chrome
12
+ short_name: CH
13
+ version: "53.0.2785.143"
14
+ engine: Blink
15
+ engine_version: ""
16
+ device:
17
+ type: wearable
18
+ brand: HU
19
+ model: Smart Watch 2
20
+ os_family: Android
21
+ browser_family: Chrome
22
+ -
23
+ user_agent: Mozilla/5.0 Linux; Android 7.1.1; LG Watch Urbane Build/NWD1.180306.004 AppleWebKit/537.36 KHTML, like Gecko Chrome/19.77.34.5 Mobile Safari/537.36
24
+ os:
25
+ name: Android
26
+ short_name: AND
27
+ version: "7.1.1"
28
+ platform: ""
29
+ client:
30
+ type: browser
31
+ name: Chrome Mobile
32
+ short_name: CM
33
+ version: "19.77.34.5"
34
+ engine: WebKit
35
+ engine_version: "537.36"
36
+ device:
37
+ type: wearable
38
+ brand: LG
39
+ model: Watch Urbane
40
+ os_family: Android
41
+ browser_family: Chrome
42
+ -
43
+ user_agent: Mozilla/5.0 (Linux; Tizen 4.0; SAMSUNG SM-R820) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/2.0 Chrome/56.0.2924.0 Mobile Safari/537.36
44
+ os:
45
+ name: Tizen
46
+ short_name: TIZ
47
+ version: "4.0"
48
+ platform: ""
49
+ client:
50
+ type: browser
51
+ name: Samsung Browser
52
+ short_name: SB
53
+ version: "2.0"
54
+ engine: WebKit
55
+ engine_version: "537.36"
56
+ device:
57
+ type: wearable
58
+ brand: SA
59
+ model: GALAXY Watch Active 2
60
+ os_family: Other Mobile
61
+ browser_family: Chrome
@@ -5,3 +5,9 @@
5
5
  type: 6
6
6
  brand: TA
7
7
  model: Model S
8
+ -
9
+ 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
10
+ device:
11
+ type: 6
12
+ brand: TA
13
+ model: ""
@@ -1044,4 +1044,39 @@
1044
1044
  name: iOS
1045
1045
  short_name: IOS
1046
1046
  version: ""
1047
- platform:
1047
+ platform:
1048
+ -
1049
+ user_agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0 Ordissimo/3.8.6.6+svn37147
1050
+ os:
1051
+ name: Ordissimo
1052
+ short_name: ORD
1053
+ version: ""
1054
+ platform: x86
1055
+ -
1056
+ user_agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 Ordissimo/3.8.20+svn37598
1057
+ os:
1058
+ name: Ordissimo
1059
+ short_name: ORD
1060
+ version: ""
1061
+ platform: x64
1062
+ -
1063
+ user_agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0 webissimo3/3.7.30+svn32090
1064
+ os:
1065
+ name: Ordissimo
1066
+ short_name: ORD
1067
+ version: ""
1068
+ platform: x86
1069
+ -
1070
+ user_agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:42.0) Gecko/20100101 Firefox/42.0 webissimo3/3.7.22+svn30377
1071
+ os:
1072
+ name: Ordissimo
1073
+ short_name: ORD
1074
+ version: ""
1075
+ platform: x64
1076
+ -
1077
+ user_agent: Mozilla/5.0 (X11 TOS; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 ToGate/72.0.3626.109 Safari/537.36
1078
+ os:
1079
+ name: TmaxOS
1080
+ short_name: TOS
1081
+ version: ""
1082
+ platform: x64
@@ -160,3 +160,9 @@
160
160
  -
161
161
  useragent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; Touch; TAJB; rv:11.0) like Gecko
162
162
  vendor: TS
163
+ -
164
+ useragent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0 Ordissimo/3.8.6.6+svn37147
165
+ vendor: OS
166
+ -
167
+ useragent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0 webissimo3/3.7.30+svn32090
168
+ vendor: OS
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: device_detector
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mati Sójka
8
8
  - Ben Zimmer
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-12-09 00:00:00.000000000 Z
12
+ date: 2020-06-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
@@ -53,6 +53,20 @@ dependencies:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0.10'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rubocop
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '='
61
+ - !ruby/object:Gem::Version
62
+ version: 0.85.1
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '='
68
+ - !ruby/object:Gem::Version
69
+ version: 0.85.1
56
70
  description: Precise and fast user agent parser and device detector, backed by the
57
71
  largest and most up-to-date agent and device database
58
72
  email:
@@ -62,6 +76,8 @@ extensions: []
62
76
  extra_rdoc_files: []
63
77
  files:
64
78
  - ".gitignore"
79
+ - ".rubocop.yml"
80
+ - ".ruby-version"
65
81
  - ".travis.yml"
66
82
  - CHANGELOG.md
67
83
  - Gemfile
@@ -126,10 +142,13 @@ files:
126
142
  - spec/fixtures/detector/phablet.yml
127
143
  - spec/fixtures/detector/portable_media_player.yml
128
144
  - spec/fixtures/detector/smart_display.yml
145
+ - spec/fixtures/detector/smart_speaker.yml
129
146
  - spec/fixtures/detector/smartphone-1.yml
130
147
  - spec/fixtures/detector/smartphone-10.yml
131
148
  - spec/fixtures/detector/smartphone-11.yml
132
149
  - spec/fixtures/detector/smartphone-12.yml
150
+ - spec/fixtures/detector/smartphone-13.yml
151
+ - spec/fixtures/detector/smartphone-14.yml
133
152
  - spec/fixtures/detector/smartphone-2.yml
134
153
  - spec/fixtures/detector/smartphone-3.yml
135
154
  - spec/fixtures/detector/smartphone-4.yml
@@ -142,9 +161,11 @@ files:
142
161
  - spec/fixtures/detector/tablet-1.yml
143
162
  - spec/fixtures/detector/tablet-2.yml
144
163
  - spec/fixtures/detector/tablet-3.yml
164
+ - spec/fixtures/detector/tablet-4.yml
145
165
  - spec/fixtures/detector/tablet.yml
146
166
  - spec/fixtures/detector/tv.yml
147
167
  - spec/fixtures/detector/unknown.yml
168
+ - spec/fixtures/detector/wearable.yml
148
169
  - spec/fixtures/device/camera.yml
149
170
  - spec/fixtures/device/car_browser.yml
150
171
  - spec/fixtures/device/console.yml
@@ -155,7 +176,7 @@ homepage: http://podigee.github.io/device_detector
155
176
  licenses:
156
177
  - LGPL-3.0
157
178
  metadata: {}
158
- post_install_message:
179
+ post_install_message:
159
180
  rdoc_options: []
160
181
  require_paths:
161
182
  - lib
@@ -170,9 +191,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
191
  - !ruby/object:Gem::Version
171
192
  version: '0'
172
193
  requirements: []
173
- rubyforge_project:
174
- rubygems_version: 2.5.1
175
- signing_key:
194
+ rubygems_version: 3.0.3
195
+ signing_key:
176
196
  specification_version: 4
177
197
  summary: Precise and fast user agent parser and device detector
178
198
  test_files:
@@ -205,10 +225,13 @@ test_files:
205
225
  - spec/fixtures/detector/phablet.yml
206
226
  - spec/fixtures/detector/portable_media_player.yml
207
227
  - spec/fixtures/detector/smart_display.yml
228
+ - spec/fixtures/detector/smart_speaker.yml
208
229
  - spec/fixtures/detector/smartphone-1.yml
209
230
  - spec/fixtures/detector/smartphone-10.yml
210
231
  - spec/fixtures/detector/smartphone-11.yml
211
232
  - spec/fixtures/detector/smartphone-12.yml
233
+ - spec/fixtures/detector/smartphone-13.yml
234
+ - spec/fixtures/detector/smartphone-14.yml
212
235
  - spec/fixtures/detector/smartphone-2.yml
213
236
  - spec/fixtures/detector/smartphone-3.yml
214
237
  - spec/fixtures/detector/smartphone-4.yml
@@ -221,9 +244,11 @@ test_files:
221
244
  - spec/fixtures/detector/tablet-1.yml
222
245
  - spec/fixtures/detector/tablet-2.yml
223
246
  - spec/fixtures/detector/tablet-3.yml
247
+ - spec/fixtures/detector/tablet-4.yml
224
248
  - spec/fixtures/detector/tablet.yml
225
249
  - spec/fixtures/detector/tv.yml
226
250
  - spec/fixtures/detector/unknown.yml
251
+ - spec/fixtures/detector/wearable.yml
227
252
  - spec/fixtures/device/camera.yml
228
253
  - spec/fixtures/device/car_browser.yml
229
254
  - spec/fixtures/device/console.yml