user_agent 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,6 +17,7 @@ class UserAgent
17
17
  Safari = /version\/([\d\w\.\-]+)/i
18
18
  Ps3 = /([\d\w\.\-]+)\)\s*$/i
19
19
  Psp = /([\d\w\.\-]+)\)?\s*$/i
20
+ Lotus = /Lotus-Notes\/([\w.]+)/i
20
21
  end
21
22
 
22
23
  module Browsers
@@ -28,6 +29,13 @@ class UserAgent
28
29
  PS3 = /playstation 3/i
29
30
  PSP = /playstation portable/i
30
31
  Firefox = /firefox/i
32
+ Lotus = /lotus.notes/i
33
+ Netscape = /netscape/i
34
+ SeaMonkey = /seamonkey/i
35
+ Thunderbird = /thunderbird/i
36
+ Outlook = /microsoft.outlook/i
37
+ Evolution = /evolution/i
38
+ IEMobile = /iemobile|windows phone/i
31
39
  end
32
40
 
33
41
  module OS
@@ -36,6 +44,8 @@ class UserAgent
36
44
  Windows2003 = /windows nt 5\.2/i
37
45
  WindowsXP = /windows nt 5\.1/i
38
46
  Windows2000 = /windows nt 5\.0/i
47
+ WindowsPhone = /windows (ce|phone|mobile)( os)?/i
48
+ Windows = /windows/i
39
49
  OSX = /os x (\d+)[._](\d+)/i
40
50
  Linux = /linux/i
41
51
  Wii = /wii/i
@@ -43,6 +53,7 @@ class UserAgent
43
53
  PSP = /playstation portable/i
44
54
  Ipad = /\(iPad.*os (\d+)[._](\d+)/i
45
55
  Iphone = /\(iPhone.*os (\d+)[._](\d+)/i
56
+ Symbian = /symbian(os)?/i
46
57
  end
47
58
 
48
59
  module Platform
@@ -56,8 +67,12 @@ class UserAgent
56
67
  Iphone = /iphone/i
57
68
  Android = /android/i
58
69
  Blackberry = /blackberry/i
70
+ WindowsPhone = /windows (ce|phone|mobile)( os)?/i
71
+ Symbian = /symbian(os)?/i
59
72
  end
60
73
 
74
+ MobilePlatforms = [:android, :blackberry, :ipad, :ipod, :iphone, :symbian, :windows_phone]
75
+
61
76
  def self.engine(string)
62
77
  case string
63
78
  when Engines::Webkit then :webkit
@@ -66,6 +81,7 @@ class UserAgent
66
81
  when Engines::Chrome then :chrome
67
82
  when Engines::Presto then :presto
68
83
  when Engines::Gecko then :gecko
84
+ when /opera/i then :unknown
69
85
  when Engines::Msie then :msie
70
86
  else
71
87
  :unknown
@@ -80,14 +96,21 @@ class UserAgent
80
96
 
81
97
  def self.browser_name(string)
82
98
  case string
83
- when Browsers::Konqueror then :konqueror
84
- when Browsers::Chrome then :chrome
85
- when Browsers::Safari then :safari
86
- when Browsers::IE then :ie
87
- when Browsers::Opera then :opera
88
- when Browsers::PS3 then :ps3
89
- when Browsers::PSP then :psp
90
- when Browsers::Firefox then :firefox
99
+ when Browsers::Konqueror then :konqueror
100
+ when Browsers::Chrome then :chrome
101
+ when Browsers::Safari then :safari
102
+ when Browsers::Opera then :opera
103
+ when Browsers::PS3 then :ps3
104
+ when Browsers::PSP then :psp
105
+ when Browsers::Firefox then :firefox
106
+ when Browsers::Lotus then :lotus
107
+ when Browsers::Netscape then :netscape
108
+ when Browsers::SeaMonkey then :seamonkey
109
+ when Browsers::Thunderbird then :thunderbird
110
+ when Browsers::Outlook then :outlook
111
+ when Browsers::Evolution then :evolution
112
+ when Browsers::IEMobile then :iemobile
113
+ when Browsers::IE then :ie
91
114
  else
92
115
  :unknown
93
116
  end
@@ -103,6 +126,8 @@ class UserAgent
103
126
  $1 if string =~ Versions::Ps3
104
127
  when :psp
105
128
  $1 if string =~ Versions::Psp
129
+ when :lotus
130
+ $1 if string =~ Versions::Lotus
106
131
  else
107
132
  $1 if string =~ /#{name}[\/ ]([\d\w\.\-]+)/i
108
133
  end
@@ -110,18 +135,21 @@ class UserAgent
110
135
 
111
136
  def self.os(string)
112
137
  case string
113
- when OS::WindowsVista then 'Windows Vista'
114
- when OS::Windows7 then 'Windows 7'
115
- when OS::Windows2003 then 'Windows 2003'
116
- when OS::WindowsXP then 'Windows XP'
117
- when OS::Windows2000 then 'Windows 2000'
118
- when OS::OSX then "OS X #{$1}.#{$2}"
119
- when OS::Linux then 'Linux'
120
- when OS::Wii then 'Wii'
121
- when OS::PS3 then 'Playstation'
122
- when OS::PSP then 'Playstation'
123
- when OS::Ipad then "iPad OS #{$1}.#{$2}"
124
- when OS::Iphone then "iPhone OS #{$1}.#{$2}"
138
+ when OS::WindowsPhone then 'Windows Phone'
139
+ when OS::WindowsVista then 'Windows Vista'
140
+ when OS::Windows7 then 'Windows 7'
141
+ when OS::Windows2003 then 'Windows 2003'
142
+ when OS::WindowsXP then 'Windows XP'
143
+ when OS::Windows2000 then 'Windows 2000'
144
+ when OS::Windows then 'Windows'
145
+ when OS::OSX then "OS X #{$1}.#{$2}"
146
+ when OS::Linux then 'Linux'
147
+ when OS::Wii then 'Wii'
148
+ when OS::PS3 then 'Playstation'
149
+ when OS::PSP then 'Playstation'
150
+ when OS::Ipad then "iPad OS #{$1}.#{$2}"
151
+ when OS::Iphone then "iPhone OS #{$1}.#{$2}"
152
+ when Platform::Symbian then "Symbian OS"
125
153
  else
126
154
  'Unknown'
127
155
  end
@@ -129,16 +157,18 @@ class UserAgent
129
157
 
130
158
  def self.platform(string)
131
159
  case string
132
- when Platform::Windows then :windows
133
- when Platform::Mac then :macintosh
134
- when Platform::Android then :android
135
- when Platform::Blackberry then :blackberry
136
- when Platform::Linux then :linux
137
- when Platform::Wii then :wii
138
- when Platform::Playstation then :playstation
139
- when Platform::Ipad then :ipad
140
- when Platform::Ipod then :ipod
141
- when Platform::Iphone then :iphone
160
+ when Platform::WindowsPhone then :windows_phone
161
+ when Platform::Windows then :windows
162
+ when Platform::Mac then :macintosh
163
+ when Platform::Android then :android
164
+ when Platform::Blackberry then :blackberry
165
+ when Platform::Linux then :linux
166
+ when Platform::Wii then :wii
167
+ when Platform::Playstation then :playstation
168
+ when Platform::Ipad then :ipad
169
+ when Platform::Ipod then :ipod
170
+ when Platform::Iphone then :iphone
171
+ when Platform::Symbian then :symbian
142
172
  else
143
173
  :unknown
144
174
  end
@@ -174,6 +204,10 @@ class UserAgent
174
204
  @platform ||= self.class.platform(source)
175
205
  end
176
206
 
207
+ def mobile?
208
+ MobilePlatforms.include?(platform) || name == :psp
209
+ end
210
+
177
211
  def to_s
178
212
  @source
179
213
  end
@@ -1,3 +1,3 @@
1
1
  class UserAgent
2
- VERSION = '1.1.0'
2
+ VERSION = '1.1.1'
3
3
  end
@@ -41,6 +41,22 @@ describe UserAgent do
41
41
  end
42
42
  end
43
43
 
44
+ describe "#mobile?" do
45
+ it "returs true for mobile platform" do
46
+ agent = UserAgent.new('Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1')
47
+ agent.should be_mobile
48
+ end
49
+
50
+ it "returns true for psp" do
51
+ agent = UserAgent.new('PSP (PlayStation Portable); 2.00')
52
+ agent.should be_mobile
53
+ end
54
+
55
+ it "returns false for not mobile platform" do
56
+ @agent.should_not be_mobile
57
+ end
58
+ end
59
+
44
60
  describe "#to_s" do
45
61
  it "should return the user agent string" do
46
62
  @agent.to_s.should == @agent.source
@@ -98,4 +114,4 @@ describe UserAgent do
98
114
  a.should_not == b
99
115
  end
100
116
  end
101
- end
117
+ end
@@ -1,8 +1,9 @@
1
1
  require File.expand_path('../spec_helper', __FILE__)
2
2
 
3
- def test(name, version, platform, os, engine, engine_version, source)
3
+ def test(mobile, name, version, platform, os, engine, engine_version, source)
4
4
  it "should parse #{name} #{version} on #{os} with engine #{engine} #{engine_version}" do
5
5
  agent = UserAgent.new(source)
6
+ agent.mobile?.should == mobile
6
7
  agent.name.should == name
7
8
  agent.platform.should == platform
8
9
  agent.os.should == os
@@ -14,46 +15,57 @@ end
14
15
 
15
16
  describe UserAgent do
16
17
 
17
- test :safari, '4.0dp1', :windows, 'Windows XP', :webkit, '526.9', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/526.9 (KHTML, like Gecko) Version/4.0dp1 Safari/526.8'
18
- test :safari, '4.0.3', :windows, 'Windows Vista', :webkit, '531.9', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9'
19
- test :safari, '4.0.2', :windows, 'Windows 7', :webkit, '532', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532+ (KHTML, like Gecko) Version/4.0.2 Safari/530.19.1'
20
- test :safari, '4.0.1', :macintosh, 'OS X 10.5', :webkit, '531.2', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/4.0.1 Safari/530.18'
21
- test :safari, '4.0', :windows, 'Windows Vista', :webkit, '528.16', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru-RU) AppleWebKit/528.16 (KHTML, like Gecko) Version/4.0 Safari/528.16'
22
- test :safari, '3.2.3', :windows, 'Windows XP', :webkit, '525.28.3', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; cs-CZ) AppleWebKit/525.28.3 (KHTML, like Gecko) Version/3.2.3 Safari/525.29'
23
- test :safari, '4.0.4', :ipad, 'iPad OS 3.2', :webkit, '531.21.10', 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10'
24
- test :safari, '4.0.4', :ipad, 'iPad OS 3.2', :webkit, '531.21.10', 'Mozilla/5.0 (iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10'
25
- test :safari, '4.0', :iphone, 'iPhone OS 3.0', :webkit, '528.18', 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16'
26
- test :safari, '4.0', :android, 'Linux', :webkit, '533.1', 'Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
27
- test :ie, '8.0', :windows, 'Windows 7', :msie, '8.0', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)'
28
- test :ie, '7.0b', :windows, 'Windows 2003', :msie, '7.0b', 'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)'
29
- test :ie, '7.0', :windows, 'Windows XP', :msie, '7.0', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2)'
30
- test :ie, '7.0', :windows, 'Windows XP', :msie, '7.0', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; MSOffice 12)'
31
- test :ie, '6.0b', :windows, 'Windows XP', :msie, '6.0b', 'Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)'
32
- test :ie, '6.0', :windows, 'Windows XP', :msie, '6.0', 'Mozilla/5.0 (Windows; U; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)'
33
- test :opera, '9.99', :windows, 'Windows XP', :presto, '9.9.9', 'Opera/9.99 (Windows NT 5.1; U; pl) Presto/9.9.9'
34
- test :opera, '9.70', :linux, 'Linux', :gecko, '20061208', 'Mozilla/5.0 (Linux i686 ; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.70'
35
- test :opera, '9.64', :linux, 'Linux', :presto, '2.1.1', 'Opera/9.64 (X11; Linux i686; U; Linux Mint; it) Presto/2.1.1'
36
- test :opera, '9.00', :wii, 'Wii', :unknown, nil, 'Opera/9.00 (Nintindo Wii; U; ; 103858; Wii Shop Channel/1.0; en)'
37
- test :chrome, '6.0.472.62', :macintosh, 'OS X 10.6', :webkit, '534.3', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.62 Safari/534.3'
38
- test :chrome, '6.0.472.63', :macintosh, 'OS X 10.6', :webkit, '534.3', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3'
39
- test :chrome, '6.0.472.55', :linux, 'Linux', :webkit, '534.3', 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.55 Safari/534.3'
40
- test :chrome, '5.0.375.127', :windows, 'Windows XP', :webkit, '533.4', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Safari/533.4'
41
- test :chrome, '6.0.472.59', :windows, 'Windows XP', :webkit, '534.3', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3'
42
- test :chrome, '6.0.472.53', :linux, 'Linux', :webkit, '534.3', 'Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.53 Safari/534.3'
43
- test :chrome, '4.0.202.2', :linux, 'Linux', :webkit, '532.0', 'Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.202.2 Safari/532.0'
44
- test :chrome, '0.2.149.27', :windows, 'Windows 2003', :webkit, '525.13', 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 '
45
- test :chrome, '0.2.149.30', :windows, 'Windows Vista', :webkit, '525.13', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.30 Safari/525.13 '
46
- test :konqueror, '4.2', :linux, 'Linux', :khtml, '4.2.4', 'Mozilla/5.0 (compatible; Konqueror/4.2; Linux; X11; x86_64) KHTML/4.2.4 (like Gecko) Fedora/4.2.4-2.fc11'
47
- test :konqueror, '3.1-rc6', :linux, 'Linux', :konqueror, '3.1-rc6', 'Mozilla/5.0 (compatible; Konqueror/3.1-rc6; i686 Linux; 20021105)'
48
- test :ps3, '2.00', :playstation, 'Playstation', :unknown, nil, 'Mozilla/5.0 (PLAYSTATION 3; 2.00)'
49
- test :ps3, '1.10', :playstation, 'Playstation', :unknown, nil, 'Mozilla/5.0 (PLAYSTATION 3; 1.10)'
50
- test :psp, '2.00', :playstation, 'Playstation', :unknown, nil, 'PSP (PlayStation Portable); 2.00'
51
- test :psp, '2.00', :playstation, 'Playstation', :unknown, nil, 'Mozilla/4.0 (PSP (PlayStation Portable); 2.00)'
52
- test :firefox, '3.5.13', :windows, 'Windows XP', :gecko, '20100914', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.13) Gecko/20100914 Firefox/3.5.13 (.NET CLR 3.5.30729)'
53
- test :firefox, '3.6.10', :windows, 'Windows XP', :gecko, '20100914', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 GTB7.1'
54
- test :firefox, '3.6.10', :windows, 'Windows Vista', :gecko, '20100914', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pt-BR; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 GTB7.1 ( .NET CLR 3.5.30729)'
55
- test :firefox, '3.6.8', :linux, 'Linux', :gecko, '20100723', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/9.10 (karmic) Firefox/3.6.8'
56
- test :firefox, '3.6.9', :linux, 'Linux', :gecko, '20100824', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9'
57
- test :firefox, '3.6.9', :linux, 'Linux', :gecko, '20100825', 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100825 Ubuntu/10.04 (lucid) Firefox/3.6.9'
18
+ test false, :safari, '4.0dp1', :windows, 'Windows XP', :webkit, '526.9', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/526.9 (KHTML, like Gecko) Version/4.0dp1 Safari/526.8'
19
+ test false, :safari, '4.0.3', :windows, 'Windows Vista', :webkit, '531.9', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9'
20
+ test false, :safari, '4.0.2', :windows, 'Windows 7', :webkit, '532', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532+ (KHTML, like Gecko) Version/4.0.2 Safari/530.19.1'
21
+ test false, :safari, '4.0.1', :macintosh, 'OS X 10.5', :webkit, '531.2', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/4.0.1 Safari/530.18'
22
+ test false, :safari, '4.0', :windows, 'Windows Vista', :webkit, '528.16', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru-RU) AppleWebKit/528.16 (KHTML, like Gecko) Version/4.0 Safari/528.16'
23
+ test false, :safari, '3.2.3', :windows, 'Windows XP', :webkit, '525.28.3', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; cs-CZ) AppleWebKit/525.28.3 (KHTML, like Gecko) Version/3.2.3 Safari/525.29'
24
+ test true, :safari, '4.0.4', :ipad, 'iPad OS 3.2', :webkit, '531.21.10', 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10'
25
+ test true, :safari, '4.0.4', :ipad, 'iPad OS 3.2', :webkit, '531.21.10', 'Mozilla/5.0 (iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10'
26
+ test true, :safari, '4.0', :iphone, 'iPhone OS 3.0', :webkit, '528.18', 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16'
27
+ test true, :safari, '4.0', :android, 'Linux', :webkit, '533.1', 'Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
28
+ test false, :ie, '8.0', :windows, 'Windows 7', :msie, '8.0', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)'
29
+ test false, :ie, '7.0b', :windows, 'Windows 2003', :msie, '7.0b', 'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)'
30
+ test false, :ie, '7.0', :windows, 'Windows XP', :msie, '7.0', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2)'
31
+ test false, :ie, '7.0', :windows, 'Windows XP', :msie, '7.0', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; MSOffice 12)'
32
+ test false, :ie, '6.0b', :windows, 'Windows XP', :msie, '6.0b', 'Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)'
33
+ test false, :ie, '6.0', :windows, 'Windows XP', :msie, '6.0', 'Mozilla/5.0 (Windows; U; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)'
34
+ test false, :opera, '9.99', :windows, 'Windows XP', :presto, '9.9.9', 'Opera/9.99 (Windows NT 5.1; U; pl) Presto/9.9.9'
35
+ test false, :opera, '9.70', :linux, 'Linux', :gecko, '20061208', 'Mozilla/5.0 (Linux i686 ; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.70'
36
+ test false, :opera, '9.64', :linux, 'Linux', :presto, '2.1.1', 'Opera/9.64 (X11; Linux i686; U; Linux Mint; it) Presto/2.1.1'
37
+ test false, :opera, '9.00', :wii, 'Wii', :unknown, nil, 'Opera/9.00 (Nintindo Wii; U; ; 103858; Wii Shop Channel/1.0; en)'
38
+ test false, :chrome, '6.0.472.62', :macintosh, 'OS X 10.6', :webkit, '534.3', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.62 Safari/534.3'
39
+ test false, :chrome, '6.0.472.63', :macintosh, 'OS X 10.6', :webkit, '534.3', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3'
40
+ test false, :chrome, '6.0.472.55', :linux, 'Linux', :webkit, '534.3', 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.55 Safari/534.3'
41
+ test false, :chrome, '5.0.375.127', :windows, 'Windows XP', :webkit, '533.4', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Safari/533.4'
42
+ test false, :chrome, '6.0.472.59', :windows, 'Windows XP', :webkit, '534.3', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3'
43
+ test false, :chrome, '6.0.472.53', :linux, 'Linux', :webkit, '534.3', 'Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.53 Safari/534.3'
44
+ test false, :chrome, '4.0.202.2', :linux, 'Linux', :webkit, '532.0', 'Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.202.2 Safari/532.0'
45
+ test false, :chrome, '0.2.149.27', :windows, 'Windows 2003', :webkit, '525.13', 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 '
46
+ test false, :chrome, '0.2.149.30', :windows, 'Windows Vista', :webkit, '525.13', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.30 Safari/525.13 '
47
+ test false, :konqueror, '4.2', :linux, 'Linux', :khtml, '4.2.4', 'Mozilla/5.0 (compatible; Konqueror/4.2; Linux; X11; x86_64) KHTML/4.2.4 (like Gecko) Fedora/4.2.4-2.fc11'
48
+ test false, :konqueror, '3.1-rc6', :linux, 'Linux', :konqueror, '3.1-rc6', 'Mozilla/5.0 (compatible; Konqueror/3.1-rc6; i686 Linux; 20021105)'
49
+ test false, :ps3, '2.00', :playstation, 'Playstation', :unknown, nil, 'Mozilla/5.0 (PLAYSTATION 3; 2.00)'
50
+ test false, :ps3, '1.10', :playstation, 'Playstation', :unknown, nil, 'Mozilla/5.0 (PLAYSTATION 3; 1.10)'
51
+ test true, :psp, '2.00', :playstation, 'Playstation', :unknown, nil, 'PSP (PlayStation Portable); 2.00'
52
+ test true, :psp, '2.00', :playstation, 'Playstation', :unknown, nil, 'Mozilla/4.0 (PSP (PlayStation Portable); 2.00)'
53
+ test false, :firefox, '3.5.13', :windows, 'Windows XP', :gecko, '20100914', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.13) Gecko/20100914 Firefox/3.5.13 (.NET CLR 3.5.30729)'
54
+ test false, :firefox, '3.6.10', :windows, 'Windows XP', :gecko, '20100914', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 GTB7.1'
55
+ test false, :firefox, '3.6.10', :windows, 'Windows Vista', :gecko, '20100914', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; pt-BR; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 GTB7.1 ( .NET CLR 3.5.30729)'
56
+ test false, :firefox, '3.6.8', :linux, 'Linux', :gecko, '20100723', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/9.10 (karmic) Firefox/3.6.8'
57
+ test false, :firefox, '3.6.9', :linux, 'Linux', :gecko, '20100824', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9'
58
+ test false, :firefox, '3.6.9', :linux, 'Linux', :gecko, '20100825', 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100825 Ubuntu/10.04 (lucid) Firefox/3.6.9'
59
+ test false, :opera, '7.21', :windows, 'Windows', :unknown, nil, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Opera 7.21 [pt-BR]'
60
+ test false, :lotus, '6.0', :windows, 'Windows', :unknown, nil, 'Mozilla/4.0 (compatible; Lotus-Notes/6.0; Windows-NT)'
61
+ test false, :thunderbird, '2.0.0.23', :windows, 'Windows XP', :gecko, '20090812', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23'
62
+ test false, :netscape, '7.1', :windows, 'Windows XP', :gecko, '20030624', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)'
63
+ test false, :seamonkey, '2.0.13', :windows, 'Windows Vista', :gecko, '20110320', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.18) Gecko/20110320 SeaMonkey/2.0.13'
64
+ test false, :outlook, '14.0.6025', :windows, 'Windows 7', :msie, '7.0', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET4.0C; .NET4.0E; InfoPath.3; Microsoft Outlook 14.0.6025; ms-office; MSOffice 14)'
65
+ test false, :evolution, '2.32.2', :unknown, 'Unknown', :unknown, nil, 'CamelHttpStream/1.0 Evolution/2.32.2'
66
+ test true, :iemobile, '7.6', :windows_phone, 'Windows Phone', :msie, '6.0', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.6)'
67
+ test true, :iemobile, nil, :windows_phone, 'Windows Phone', :msie, '6.0', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5.3.5)'
68
+ test true, :iemobile, '7.0', :windows_phone, 'Windows Phone', :msie, '7.0', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; HTC; 7 Mozart; Orange)'
69
+ test true, :safari, nil, :symbian, 'Symbian OS', :webkit, '413', 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-3/300.21.012; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'
58
70
 
59
71
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: user_agent
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 0
10
- version: 1.1.0
9
+ - 1
10
+ version: 1.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - TJ Holowaychuk
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-06-22 00:00:00 Z
19
+ date: 2011-10-05 00:00:00 Z
20
20
  dependencies: []
21
21
 
22
22
  description: User agent parser
@@ -71,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  requirements: []
72
72
 
73
73
  rubyforge_project:
74
- rubygems_version: 1.7.2
74
+ rubygems_version: 1.8.9
75
75
  signing_key:
76
76
  specification_version: 3
77
77
  summary: User agent parser
@@ -80,4 +80,3 @@ test_files:
80
80
  - spec/spec_helper.rb
81
81
  - spec/user_agent_spec.rb
82
82
  - spec/user_agents_spec.rb
83
- has_rdoc: