lightweight_user_agent_parser 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
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
|