useragent 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -51,6 +51,8 @@ class UserAgent
51
51
  def mobile?
52
52
  if browser == 'webOS'
53
53
  true
54
+ elsif platform == 'Symbian'
55
+ true
54
56
  elsif detect_product('Mobile')
55
57
  true
56
58
  elsif application.comment.detect { |k, v| k =~ /^IEMobile/ }
@@ -25,10 +25,14 @@ class UserAgent
25
25
  end
26
26
 
27
27
  # Before version 4.0, Chrome Frame declared itself (unversioned) in a comment;
28
- # as of 4.0 it declares itself as a separate product with a version.
28
+ # as of 4.0 it can declare itself versioned in a comment
29
+ # or as a separate product with a version
29
30
 
30
31
  def chromeframe
31
- application.comment.include?("chromeframe") || detect_product("chromeframe")
32
+ cf = application.comment.include?("chromeframe") || detect_product("chromeframe")
33
+ return cf if cf
34
+ cf_comment = application.comment.detect{|c| c['chromeframe/']}
35
+ cf_comment ? UserAgent.new(*cf_comment.split('/', 2)) : nil
32
36
  end
33
37
 
34
38
  def platform
@@ -14,8 +14,8 @@ class UserAgent
14
14
  'Android'
15
15
  elsif detect_product('Chrome')
16
16
  'Chrome'
17
- elsif platform == 'webOS' || platform == 'BlackBerry'
18
- platform
17
+ elsif platform == 'webOS' || platform == 'BlackBerry' || platform == 'Symbian'
18
+ platform
19
19
  else
20
20
  'Safari'
21
21
  end
@@ -71,9 +71,16 @@ class UserAgent
71
71
 
72
72
  Version.new(str) if str
73
73
  end
74
+
75
+ def application
76
+ apps = self.reject{|agent| agent.comment.nil? || agent.comment.empty?}
77
+ apps.first
78
+ end
74
79
 
75
- def platform
76
- if application.comment[0] =~ /webOS/
80
+ def platform
81
+ if application.comment[0] =~ /Symbian/
82
+ 'Symbian'
83
+ elsif application.comment[0] =~ /webOS/
77
84
  'webOS'
78
85
  else
79
86
  application.comment[0]
@@ -91,6 +98,8 @@ class UserAgent
91
98
  def os
92
99
  if platform == 'webOS'
93
100
  "Palm #{last.product} #{last.version}"
101
+ elsif platform == 'Symbian'
102
+ application.comment[0]
94
103
  else
95
104
  OperatingSystems.normalize_os(application.comment[2])
96
105
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: useragent
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 1
10
- version: 0.3.1
9
+ - 2
10
+ version: 0.3.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Joshua Peek
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-20 00:00:00 -06:00
18
+ date: 2011-06-29 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -71,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  requirements: []
72
72
 
73
73
  rubyforge_project:
74
- rubygems_version: 1.4.1
74
+ rubygems_version: 1.5.2
75
75
  signing_key:
76
76
  specification_version: 3
77
77
  summary: HTTP User Agent parser