browser_sniffer 2.2.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +1 -7
- data/lib/browser_sniffer/patterns.rb +6 -3
- data/lib/browser_sniffer/version.rb +1 -1
- data/test/shopify_agents_test.rb +20 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9969d00aafaee38b0b21cff940ce3a1881251f04da9aa018d52418a186999071
|
4
|
+
data.tar.gz: a015ebec601deaa7523287eef8016cdca7318cfe37c45c76a27d7934b640f289
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdd1f9fdfe2111cdedd9c71af2ed23303d38d12535f005814a825b89db078e5e5cbc1bc22c0d7167a6b607ce63b658e6be72522b2d3676ccbe5141006af5894a
|
7
|
+
data.tar.gz: 8750a8aa2954195f77c94dd909058efa54b45964ca5c6ef4462a439068ecd230034d0a1a23be0a6c20f5f6f74ad045ca88d7c69ee926f6f6a4fc6534aa3accbf
|
data/.github/workflows/test.yml
CHANGED
@@ -46,7 +46,7 @@ class BrowserSniffer
|
|
46
46
|
:browser => [
|
47
47
|
[
|
48
48
|
# Shopify POS Go
|
49
|
-
/WSC6X|
|
49
|
+
/WSC6X|WTH11/i
|
50
50
|
], [[:name, 'Shopify POS Go']],[
|
51
51
|
# Shopify Mobile for iPhone or iPad
|
52
52
|
%r{.*Shopify/\d+\s\((iPhone|iPad)\;\siOS\s[\d\.]+}i
|
@@ -173,7 +173,7 @@ class BrowserSniffer
|
|
173
173
|
:device => [
|
174
174
|
[
|
175
175
|
# Shopify POS Go
|
176
|
-
/WSC6X|
|
176
|
+
/WSC6X|WTH11/i
|
177
177
|
], [[:type, :handheld], [:name, 'Shopify POS Go']],[
|
178
178
|
# Shopify Mobile for iPhone
|
179
179
|
%r{.*Shopify Mobile/(?:iPhone\sOS|iOS)/[\d\.]+ \((iPhone)([\d,]+)}i
|
@@ -302,7 +302,7 @@ class BrowserSniffer
|
|
302
302
|
:os => [
|
303
303
|
[
|
304
304
|
# Shopify Retail OS on POS Go
|
305
|
-
/WSC6X|
|
305
|
+
/WSC6X|WTH11/i
|
306
306
|
], [[:name, 'Shopify Retail OS']],[
|
307
307
|
# Shopify Mobile for iOS
|
308
308
|
%r{.*Shopify/\d+\s\((?:iPhone|iPad)\;\s(iOS)\s([\d\.]+)}i
|
@@ -321,6 +321,9 @@ class BrowserSniffer
|
|
321
321
|
], [[:type, :ios], [:version, lambda { |str| str && str.scan(/\d+/).join(".") }], [:name, 'iOS']], [
|
322
322
|
# Shopify Mobile for iPhone or iPad
|
323
323
|
%r{.*(Shopify Mobile)\/(?:iPhone\sOS|iOS)[\/\d\.]* \((iPhone|iPad|iPod).*\/([\d\.]+)\)}i
|
324
|
+
], [[:type, :ios], [:name, 'iOS'], :version], [
|
325
|
+
# Shopify Mobile for iPhone or iPad with build number
|
326
|
+
%r{.*(Shopify Mobile)\/(?:iPhone\sOS|iOS)[\/\d\.]* \((iPhone|iPad|iPod).*\/([\d\.]+) - Build [\d]*\)}i
|
324
327
|
], [[:type, :ios], [:name, 'iOS'], :version], [
|
325
328
|
# Shopify POS Next for iPhone or iPad
|
326
329
|
%r{.*(Shopify POS Next|Shopify POS)\/(?:iPhone\sOS|iOS)[\/\d\.]* \((iPhone|iPad|iPod).*\/([\d\.]+)\)}i
|
data/test/shopify_agents_test.rb
CHANGED
@@ -21,7 +21,7 @@ describe "Shopify agents" do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "Shopify POS Go can be sniffed with new model name" do
|
24
|
-
user_agent = "Mozilla/5.0 (Linux; Android 10; ETNA/29/BBPOS/
|
24
|
+
user_agent = "Mozilla/5.0 (Linux; Android 10; ETNA/29/BBPOS/WTH11) Chrome"
|
25
25
|
sniffer = BrowserSniffer.new(user_agent)
|
26
26
|
|
27
27
|
assert_equal ({
|
@@ -79,6 +79,25 @@ describe "Shopify agents" do
|
|
79
79
|
version: '12.0.0',
|
80
80
|
name: 'iOS',
|
81
81
|
}), sniffer.os_info
|
82
|
+
|
83
|
+
user_agent = "Shopify Mobile/iOS/9.108.0 (iPhone14,5 Simulator/com.shopify.Shopify/16.4 - Build 225)"
|
84
|
+
sniffer = BrowserSniffer.new(user_agent)
|
85
|
+
|
86
|
+
assert_equal ({
|
87
|
+
name: 'Shopify Mobile',
|
88
|
+
version: '9.108.0',
|
89
|
+
}), sniffer.browser_info
|
90
|
+
|
91
|
+
assert_equal ({
|
92
|
+
type: :handheld,
|
93
|
+
model: '14,5',
|
94
|
+
}), sniffer.device_info
|
95
|
+
|
96
|
+
assert_equal ({
|
97
|
+
type: :ios,
|
98
|
+
version: '16.4',
|
99
|
+
name: 'iOS',
|
100
|
+
}), sniffer.os_info
|
82
101
|
end
|
83
102
|
|
84
103
|
it "Shopify Mobile on iPod touch can be sniffed" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browser_sniffer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
97
|
- !ruby/object:Gem::Version
|
98
98
|
version: '0'
|
99
99
|
requirements: []
|
100
|
-
rubygems_version: 3.
|
100
|
+
rubygems_version: 3.4.22
|
101
101
|
signing_key:
|
102
102
|
specification_version: 4
|
103
103
|
summary: Parses user agent strings and boils it all down to a few simple classifications.
|