lightweight_user_agent_parser 1.3.0 → 1.3.1
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04a55b38d3ecf70c795febaa61b68981bc1888b5
|
4
|
+
data.tar.gz: 9b13ef73e36f46ad8de140375f87b18a1c36dc9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad069fbad7fb6c497930c71b397c6248bb692f3883d67095396d358b4149139be6de207507a22ad816d642e188f49798ccc080ef6fefdb9d5ac015d60f6fd8aa
|
7
|
+
data.tar.gz: 2dab9275d52f62360b5af65e95ef2e15cb3ca38c8f7e0f4736495ffd7fe341186567d794b52860c54fa57ee4987fb670798ce87efb17fb575391997d4101ca1d
|
@@ -12,7 +12,7 @@ class LightweightUserAgentParser
|
|
12
12
|
alias to_s user_agent_string
|
13
13
|
|
14
14
|
def initialize(user_agent_str)
|
15
|
-
@user_agent_string = user_agent_str || raise(ArgumentError)
|
15
|
+
@user_agent_string = (user_agent_str || raise(ArgumentError)).to_s
|
16
16
|
end
|
17
17
|
|
18
18
|
def platform
|
@@ -30,7 +30,6 @@ class LightweightUserAgentParser
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
# if detected as a mobile such as Nokia C2-01 and others than Symbian
|
34
33
|
return :other
|
35
34
|
|
36
35
|
}.call
|
@@ -40,7 +39,7 @@ class LightweightUserAgentParser
|
|
40
39
|
mobile = !!(user_agent_string =~ MOBILE_REGEXP)
|
41
40
|
desktop = !!(user_agent_string =~ DESKTOP_REGEXP)
|
42
41
|
|
43
|
-
(mobile or not desktop)
|
42
|
+
(mobile or not desktop) and not empty?
|
44
43
|
end
|
45
44
|
|
46
45
|
alias mobile? is_mobile?
|
@@ -49,4 +48,10 @@ class LightweightUserAgentParser
|
|
49
48
|
!!(user_agent_string =~ ANONYMIZED_REGEXP)
|
50
49
|
end
|
51
50
|
|
51
|
+
protected
|
52
|
+
|
53
|
+
def empty?
|
54
|
+
user_agent_string.empty?
|
55
|
+
end
|
56
|
+
|
52
57
|
end
|
@@ -3,6 +3,12 @@ require 'spec_helper'
|
|
3
3
|
RSpec.describe LightweightUserAgentParser do
|
4
4
|
|
5
5
|
TEST_CASES = [
|
6
|
+
|
7
|
+
{
|
8
|
+
ua_str: '',
|
9
|
+
mobile: false,
|
10
|
+
platform: 'other'
|
11
|
+
},
|
6
12
|
{
|
7
13
|
ua_str: 'UCWEB/2.0 (Linux; U; Adr 4.2.1; zh-CN; Lenovo A3000) U2/1.0.0 UCBrowser/9.8.5.442 U2/1.0.0 Mobile',
|
8
14
|
mobile: true,
|
@@ -112,11 +118,15 @@ RSpec.describe LightweightUserAgentParser do
|
|
112
118
|
TEST_CASES.each do |meta|
|
113
119
|
|
114
120
|
context "when platform is #{meta[:platform]}" do
|
115
|
-
let(:ua_str) { meta[:ua_str] }
|
116
121
|
|
117
|
-
|
118
|
-
|
122
|
+
context "and the user agent string is: #{meta[:ua_str].inspect}" do
|
123
|
+
let(:ua_str) { meta[:ua_str] }
|
124
|
+
|
125
|
+
it "then the mobile state should be #{meta[:mobile]}" do
|
126
|
+
is_expected.to eq meta[:mobile]
|
127
|
+
end
|
119
128
|
end
|
129
|
+
|
120
130
|
end
|
121
131
|
|
122
132
|
end
|