useragent_parser 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 396b4d1db6995c91e979b4d8c1ee698e9f9e0eff
4
+ data.tar.gz: 032822542166c4b9508a4cef74fca700ceb10f73
5
+ SHA512:
6
+ metadata.gz: a14213c0377e981f1fd5c4ff5c0613436e73de41c37f8e7a7aec5df43c4e9e3d1e76b2009a07b658f15c6e13e07b8bf52564a8cbf4c783a2efbb222116852ad3
7
+ data.tar.gz: 1df6b0f84c4722741c8db38305975c994a5cfc0984a0b61e14260aff2db098c338bbed2e01dd6128d20f5603ca1968dec91cd4e142bb0d93b17385477b5c4ec4
@@ -1,13 +1,9 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.8.7
4
- - 1.9.2
5
3
  - 1.9.3
6
- - jruby-18mode
4
+ - 2.0.0
5
+ - 2.1.2
7
6
  - jruby-19mode
8
- - rbx-18mode
9
- - rbx-19mode
10
- - ree
11
7
  branches:
12
8
  only:
13
9
  - master
@@ -192,7 +192,7 @@ user_agent_parsers:
192
192
  #### MAIN CASES - this catches > 50% of all browsers ####
193
193
 
194
194
  # Browser/major_version.minor_version.beta_version
195
- - regex: '(AdobeAIR|Chromium|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Shiira|Sunrise|Chrome|Flock|Netscape|Lunascape|WebPilot|Vodafone|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|Thunderbird|ThunderBrowse|Iris|UP\.Browser|Bunjaloo|Google Earth|Raven for Mac)/(\d+)\.(\d+)\.(\d+)'
195
+ - regex: '(AdobeAIR|Chromium|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Shiira|Sunrise|Chrome|Flock|Netscape|Lunascape|WebPilot|Vodafone|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|Thunderbird|Postbox|ThunderBrowse|Iris|UP\.Browser|Bunjaloo|Google Earth|Raven for Mac)/(\d+)\.(\d+)\.(\d+)'
196
196
 
197
197
  # Browser/major_version.minor_version
198
198
  - regex: '(Bolt|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|Vodafone|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Thunderbird)/(\d+)\.(\d+)'
@@ -355,6 +355,9 @@ user_agent_parsers:
355
355
  - regex: '(MSIE) (\d+)\.(\d+)'
356
356
  family_replacement: 'IE'
357
357
 
358
+ - regex: '(Trident/7.0). rv:(\d+).(\d+)'
359
+ family_replacement: 'IE'
360
+
358
361
  - regex: '(Nintendo 3DS).* Version/(\d+)\.(\d+)(?:\.(\w+))'
359
362
 
360
363
  # Generic AppleWebKit detection
@@ -1,3 +1,3 @@
1
1
  module UseragentParser
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -1,5 +1,11 @@
1
1
  test_cases:
2
2
 
3
+ - user_agent_string: 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko'
4
+ family: 'IE'
5
+ major: '11'
6
+ minor: '0'
7
+ patch:
8
+
3
9
  - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.8+ (KHTML, like Gecko) Version/6.0 Safari/536.25'
4
10
  family: 'WebKit Nightly'
5
11
  major: '537'
@@ -2193,3 +2193,9 @@ test_cases:
2193
2193
  major: '15'
2194
2194
  minor:
2195
2195
  patch:
2196
+
2197
+ - user_agent_string: 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.8) Gecko/20100317 Postbox/1.1.3'
2198
+ family: 'Postbox'
2199
+ major: '1'
2200
+ minor: '1'
2201
+ patch: '3'
@@ -10,9 +10,9 @@ describe UseragentParser::DeviceParser do
10
10
  js_ua = [ js_ua['js_user_agent_string'], js_ua['js_user_agent_family'], js_ua['js_user_agent_v1'], js_ua['js_user_agent_v2'], js_ua['js_user_agent_v3'] ]
11
11
  end
12
12
  result = UseragentParser.parse_device(testcase['user_agent_string'], *js_ua)
13
- result['family'].should == testcase['family']
14
- result['is_mobile'].should == testcase['is_mobile']
15
- result['is_spider'].should == testcase['is_spider']
13
+ expect(result['family']).to eq(testcase['family'])
14
+ expect(result['is_mobile']).to eq(testcase['is_mobile'])
15
+ expect(result['is_spider']).to eq(testcase['is_spider'])
16
16
  end
17
17
  end
18
18
  end
@@ -10,11 +10,11 @@ describe UseragentParser::OSParser do
10
10
  js_ua = [ js_ua['js_user_agent_string'], js_ua['js_user_agent_family'], js_ua['js_user_agent_v1'], js_ua['js_user_agent_v2'], js_ua['js_user_agent_v3'] ]
11
11
  end
12
12
  result = UseragentParser.parse_os(testcase['user_agent_string'], *js_ua)
13
- result['family'].should == testcase['family']
14
- result['major'].should == testcase['major']
15
- result['minor'].should == testcase['minor']
16
- result['patch'].should == testcase['patch']
17
- result['patch_minor'].should == testcase['patch_minor']
13
+ expect(result['family']).to eq(testcase['family'])
14
+ expect(result['major']).to eq(testcase['major'])
15
+ expect(result['minor']).to eq(testcase['minor'])
16
+ expect(result['patch']).to eq(testcase['patch'])
17
+ expect(result['patch_minor']).to eq(testcase['patch_minor'])
18
18
  end
19
19
  end
20
20
 
@@ -25,11 +25,11 @@ describe UseragentParser::OSParser do
25
25
  js_ua = [ js_ua['js_user_agent_string'], js_ua['js_user_agent_family'], js_ua['js_user_agent_v1'], js_ua['js_user_agent_v2'], js_ua['js_user_agent_v3'] ]
26
26
  end
27
27
  result = UseragentParser.parse_os(testcase['user_agent_string'], *js_ua)
28
- result['family'].should == testcase['family']
29
- result['major'].should == testcase['major']
30
- result['minor'].should == testcase['minor']
31
- result['patch'].should == testcase['patch']
32
- result['patch_minor'].should == testcase['patch_minor']
28
+ expect(result['family']).to eq(testcase['family'])
29
+ expect(result['major']).to eq(testcase['major'])
30
+ expect(result['minor']).to eq(testcase['minor'])
31
+ expect(result['patch']).to eq(testcase['patch'])
32
+ expect(result['patch_minor']).to eq(testcase['patch_minor'])
33
33
  end
34
34
  end
35
35
  end
@@ -6,7 +6,7 @@ describe UseragentParser::ReferrerParser do
6
6
  YAML.load_file(File.expand_path(File.dirname(__FILE__)) + "/../fixtures/test_referrers.yaml")['test_cases'].each do |testcase|
7
7
  it "should correctly parse the referrer string '#{testcase['referrer_string']}'" do
8
8
  result = UseragentParser.parse_referrer(testcase['referrer_string'])
9
- result['family'].should == testcase['family']
9
+ expect(result['family']).to eq(testcase['family'])
10
10
  end
11
11
  end
12
12
  end
@@ -10,10 +10,10 @@ describe UseragentParser::UserAgentParser do
10
10
  js_ua = [ js_ua['js_user_agent_string'], js_ua['js_user_agent_family'], js_ua['js_user_agent_v1'], js_ua['js_user_agent_v2'], js_ua['js_user_agent_v3'] ]
11
11
  end
12
12
  result = UseragentParser.parse_user_agent(testcase['user_agent_string'], *js_ua)
13
- result['family'].should == testcase['family']
14
- result['major'].should == testcase['major']
15
- result['minor'].should == testcase['minor']
16
- result['patch'].should == testcase['patch']
13
+ expect(result['family']).to eq(testcase['family'])
14
+ expect(result['major']).to eq(testcase['major'])
15
+ expect(result['minor']).to eq(testcase['minor'])
16
+ expect(result['patch']).to eq(testcase['patch'])
17
17
  end
18
18
  end
19
19
 
@@ -24,10 +24,10 @@ describe UseragentParser::UserAgentParser do
24
24
  js_ua = [ js_ua['js_user_agent_string'], js_ua['js_user_agent_family'], js_ua['js_user_agent_v1'], js_ua['js_user_agent_v2'], js_ua['js_user_agent_v3'] ]
25
25
  end
26
26
  result = UseragentParser.parse_user_agent(testcase['user_agent_string'], *js_ua)
27
- result['family'].should == testcase['family']
28
- result['major'].should == testcase['major']
29
- result['minor'].should == testcase['minor']
30
- result['patch'].should == testcase['patch']
27
+ expect(result['family']).to eq(testcase['family'])
28
+ expect(result['major']).to eq(testcase['major'])
29
+ expect(result['minor']).to eq(testcase['minor'])
30
+ expect(result['patch']).to eq(testcase['patch'])
31
31
  end
32
32
  end
33
33
 
@@ -38,10 +38,10 @@ describe UseragentParser::UserAgentParser do
38
38
  js_ua = eval(testcase['js_ua'].gsub("': '", "' => '")).values
39
39
  end
40
40
  result = UseragentParser.parse_user_agent(testcase['user_agent_string'], *js_ua)
41
- result['family'].should == testcase['family']
42
- result['major'].should == testcase['major']
43
- result['minor'].should == testcase['minor']
44
- result['patch'].should == testcase['patch']
41
+ expect(result['family']).to eq(testcase['family'])
42
+ expect(result['major']).to eq(testcase['major'])
43
+ expect(result['minor']).to eq(testcase['minor'])
44
+ expect(result['patch']).to eq(testcase['patch'])
45
45
  end
46
46
  end
47
47
 
@@ -52,10 +52,10 @@ describe UseragentParser::UserAgentParser do
52
52
  js_ua = eval(testcase['js_ua'].gsub("': '", "' => '")).values
53
53
  end
54
54
  result = UseragentParser.parse_user_agent(testcase['user_agent_string'], *js_ua)
55
- result['family'].should == testcase['family']
56
- result['major'].should == testcase['major']
57
- result['minor'].should == testcase['minor']
58
- result['patch'].should == testcase['patch']
55
+ expect(result['family']).to eq(testcase['family'])
56
+ expect(result['major']).to eq(testcase['major'])
57
+ expect(result['minor']).to eq(testcase['minor'])
58
+ expect(result['patch']).to eq(testcase['patch'])
59
59
  end
60
60
  end
61
61
  end
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'rubygems'
4
- require 'multi_json'
5
4
  require 'useragent_parser'
6
5
 
7
6
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
@@ -5,99 +5,99 @@ require 'spec_helper'
5
5
  describe UseragentParser::UserAgent do
6
6
  describe "for browser details" do
7
7
  it "should report the browser family" do
8
- UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } }).browser_family.should == 'Chrome'
8
+ expect(UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } }).browser_family).to eq('Chrome')
9
9
  end
10
10
 
11
11
  it "should report the browser major version" do
12
- UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } }).browser_major_version.should == '14'
12
+ expect(UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } }).browser_major_version).to eq('14')
13
13
  end
14
14
 
15
15
  it "should report the browser minor version" do
16
- UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } }).browser_minor_version.should == '0'
16
+ expect(UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } }).browser_minor_version).to eq('0')
17
17
  end
18
18
 
19
19
  it "should report the browser patch version" do
20
- UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } }).browser_patch_version.should == '835'
20
+ expect(UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } }).browser_patch_version).to eq('835')
21
21
  end
22
22
 
23
23
  it "should report the browser version" do
24
- UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } }).browser_version.should == '14.0.835'
24
+ expect(UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } }).browser_version).to eq('14.0.835')
25
25
  end
26
26
 
27
27
  it "should report the browser version without patch level" do
28
- UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Firefox', 'major' => '5', 'minor' => '0' } }).browser_version.should == '5.0'
28
+ expect(UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Firefox', 'major' => '5', 'minor' => '0' } }).browser_version).to eq('5.0')
29
29
  end
30
30
 
31
31
  it "should report the browser version without minor version" do
32
- UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Firefox', 'major' => '5' } }).browser_version.should == '5'
32
+ expect(UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Firefox', 'major' => '5' } }).browser_version).to eq('5')
33
33
  end
34
34
 
35
35
  it "should report the browser family without version" do
36
- UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Opera' } }).browser_version.should == ''
36
+ expect(UseragentParser::UserAgent.new({ 'user_agent' => { 'family' => 'Opera' } }).browser_version).to eq('')
37
37
  end
38
38
  end
39
39
 
40
40
  describe "for device details" do
41
41
  it "should report mobile classification" do
42
- UseragentParser::UserAgent.new({ 'device' => { 'family' => nil, 'is_mobile' => false, 'is_spider' => false } }).is_mobile?.should be_false
43
- UseragentParser::UserAgent.new({ 'device' => { 'family' => nil, 'is_mobile' => true, 'is_spider' => false } }).is_mobile?.should be_true
42
+ expect(UseragentParser::UserAgent.new({ 'device' => { 'family' => nil, 'is_mobile' => false, 'is_spider' => false } }).is_mobile?).to be_falsey
43
+ expect(UseragentParser::UserAgent.new({ 'device' => { 'family' => nil, 'is_mobile' => true, 'is_spider' => false } }).is_mobile?).to be_truthy
44
44
  end
45
45
 
46
46
  it "should report spider classification" do
47
- UseragentParser::UserAgent.new({ 'device' => { 'family' => nil, 'is_mobile' => false, 'is_spider' => false } }).is_spider?.should be_false
48
- UseragentParser::UserAgent.new({ 'device' => { 'family' => nil, 'is_mobile' => false, 'is_spider' => true } }).is_spider?.should be_true
47
+ expect(UseragentParser::UserAgent.new({ 'device' => { 'family' => nil, 'is_mobile' => false, 'is_spider' => false } }).is_spider?).to be_falsey
48
+ expect(UseragentParser::UserAgent.new({ 'device' => { 'family' => nil, 'is_mobile' => false, 'is_spider' => true } }).is_spider?).to be_truthy
49
49
  end
50
50
 
51
51
  it "should report device platform" do
52
- UseragentParser::UserAgent.new({ 'device' => { 'family' => 'iPad', 'is_mobile' => true, 'is_spider' => false } }).device.should == "iPad"
53
- UseragentParser::UserAgent.new({ 'device' => { 'family' => 'iPod', 'is_mobile' => true, 'is_spider' => false } }).device.should == "iPod"
54
- UseragentParser::UserAgent.new({ 'device' => { 'family' => 'iPhone', 'is_mobile' => true, 'is_spider' => false } }).device.should == "iPhone"
55
- UseragentParser::UserAgent.new({ 'device' => { 'family' => 'GT-P7510', 'is_mobile' => true, 'is_spider' => false } }).device.should == "GT-P7510"
56
- UseragentParser::UserAgent.new({ 'device' => { 'family' => 'Blackberry Playbook', 'is_mobile' => true, 'is_spider' => false } }).device.should == "Blackberry Playbook"
57
- UseragentParser::UserAgent.new({ 'device' => { 'family' => 'Spider', 'is_mobile' => false, 'is_spider' => true } }).device.should == "Spider"
52
+ expect(UseragentParser::UserAgent.new({ 'device' => { 'family' => 'iPad', 'is_mobile' => true, 'is_spider' => false } }).device).to eq("iPad")
53
+ expect(UseragentParser::UserAgent.new({ 'device' => { 'family' => 'iPod', 'is_mobile' => true, 'is_spider' => false } }).device).to eq("iPod")
54
+ expect(UseragentParser::UserAgent.new({ 'device' => { 'family' => 'iPhone', 'is_mobile' => true, 'is_spider' => false } }).device).to eq("iPhone")
55
+ expect(UseragentParser::UserAgent.new({ 'device' => { 'family' => 'GT-P7510', 'is_mobile' => true, 'is_spider' => false } }).device).to eq("GT-P7510")
56
+ expect(UseragentParser::UserAgent.new({ 'device' => { 'family' => 'Blackberry Playbook', 'is_mobile' => true, 'is_spider' => false } }).device).to eq("Blackberry Playbook")
57
+ expect(UseragentParser::UserAgent.new({ 'device' => { 'family' => 'Spider', 'is_mobile' => false, 'is_spider' => true } }).device).to eq("Spider")
58
58
  end
59
59
  end
60
60
 
61
61
  describe "for email client" do
62
62
  it "should detect Mozilla Thunderbird" do
63
- UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; de; rv:1.9.2.15) Gecko/20110303 Lightning/1.0b2 Thunderbird/3.1.9').email.should == 'Thunderbird'
63
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; de; rv:1.9.2.15) Gecko/20110303 Lightning/1.0b2 Thunderbird/3.1.9').email).to eq('Thunderbird')
64
64
  end
65
65
 
66
66
  it "should detect Windows Live Mail" do
67
- UseragentParser.parse_with_referrer('Outlook-Express/7.0 (MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; TmstmpExt)').email.should == 'Windows Live Mail'
67
+ expect(UseragentParser.parse_with_referrer('Outlook-Express/7.0 (MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; TmstmpExt)').email).to eq('Windows Live Mail')
68
68
  end
69
69
 
70
70
  it "should detect Eudora" do
71
- UseragentParser.parse_with_referrer('Eudora/6.2.3b9 (MacOS)').email.should == 'Eudora'
71
+ expect(UseragentParser.parse_with_referrer('Eudora/6.2.3b9 (MacOS)').email).to eq('Eudora')
72
72
  end
73
73
 
74
74
  it "should detect T-Online eMail" do
75
- UseragentParser.parse_with_referrer('Kopernikus T-Online eMail 3.x').email.should == 'T-Online eMail'
75
+ expect(UseragentParser.parse_with_referrer('Kopernikus T-Online eMail 3.x').email).to eq('T-Online eMail')
76
76
  end
77
77
 
78
78
  it "should detect old Apple Mail" do
79
- UseragentParser.parse_with_referrer('Mail/1082 CFNetwork/454.11.5 Darwin/10.5.0 (i386) (MacBookPro6%2C2)').email.should == 'Apple Mail'
79
+ expect(UseragentParser.parse_with_referrer('Mail/1082 CFNetwork/454.11.5 Darwin/10.5.0 (i386) (MacBookPro6%2C2)').email).to eq('Apple Mail')
80
80
  end
81
81
 
82
82
  it "should detect newer Apple Mail" do
83
- UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; de-de) AppleWebKit/533.18.1 (KHTML, like Gecko)').email.should == 'Apple Mail'
83
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; de-de) AppleWebKit/533.18.1 (KHTML, like Gecko)').email).to eq('Apple Mail')
84
84
  end
85
85
 
86
86
  it "should detect Lotus Notes" do
87
- UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; Lotus-Notes/6.0; Macintosh PPC)').email.should == 'Lotus Notes'
87
+ expect(UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; Lotus-Notes/6.0; Macintosh PPC)').email).to eq('Lotus Notes')
88
88
  end
89
89
 
90
90
  it "should detect Microsoft Outlook" do
91
- UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; ms-office; MSOffice 14)').email.should == 'Microsoft Outlook'
91
+ expect(UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; ms-office; MSOffice 14)').email).to eq('Microsoft Outlook')
92
92
  end
93
93
 
94
94
  it "should detect Sparrow" do
95
- UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8) AppleWebKit/536.25 (KHTML, like Gecko) Sparrow/1164').email.should == 'Sparrow'
95
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8) AppleWebKit/536.25 (KHTML, like Gecko) Sparrow/1164').email).to eq('Sparrow')
96
96
  end
97
97
 
98
98
  describe "Outlook" do
99
99
  it "should should recognize Outlook 2000/2003/Express" do
100
- UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)').email_version.should == 'Outlook 2000/2003/Express'
100
+ expect(UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)').email_version).to eq('Outlook 2000/2003/Express')
101
101
  end
102
102
 
103
103
  it "should not mistake IE7 as Outlook" do
@@ -105,204 +105,204 @@ describe UseragentParser::UserAgent do
105
105
  end
106
106
 
107
107
  it "should should recognize Outlook 2007" do
108
- UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; MSOffice 12)').email_version.should == 'Outlook 2007'
108
+ expect(UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; MSOffice 12)').email_version).to eq('Outlook 2007')
109
109
  end
110
110
 
111
111
  it "should should recognize Outlook 2010" do
112
- UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; InfoPath.3; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; ms-office; MSOffice 14)').email_version.should == 'Outlook 2010'
112
+ expect(UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; InfoPath.3; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; ms-office; MSOffice 14)').email_version).to eq('Outlook 2010')
113
113
  end
114
114
 
115
115
  it "should should recognize Outlook 2013" do
116
- UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; Tablet PC 2.0; InfoPath.3; BOIE9;ENIN; Microsoft Outlook 15.0.4128; ms-office; MSOffice 15)').email_version.should == 'Outlook 2013'
116
+ expect(UseragentParser.parse_with_referrer('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; Tablet PC 2.0; InfoPath.3; BOIE9;ENIN; Microsoft Outlook 15.0.4128; ms-office; MSOffice 15)').email_version).to eq('Outlook 2013')
117
117
  end
118
118
  end
119
119
 
120
120
  describe "Apple Mail" do
121
121
  it "should recognize Version 2" do
122
- UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; de-de) AppleWebKit/533.19.4 (KHTML, like Gecko)').email_version.should == 'Apple Mail 2'
122
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; de-de) AppleWebKit/533.19.4 (KHTML, like Gecko)').email_version).to eq('Apple Mail 2')
123
123
  end
124
124
 
125
125
  it "should recognize Version 3" do
126
- UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; de-de) AppleWebKit/533.18.1 (KHTML, like Gecko)').email_version.should == 'Apple Mail 3'
126
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; de-de) AppleWebKit/533.18.1 (KHTML, like Gecko)').email_version).to eq('Apple Mail 3')
127
127
  end
128
128
 
129
129
  it "should recognize Version 4" do
130
- UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; de-de) AppleWebKit/533.19.4 (KHTML, like Gecko)').email_version.should == 'Apple Mail 4'
130
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; de-de) AppleWebKit/533.19.4 (KHTML, like Gecko)').email_version).to eq('Apple Mail 4')
131
131
  end
132
132
 
133
133
  it "should recognize Version 5" do
134
- UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.53.11 (KHTML, like Gecko)').email_version.should == 'Apple Mail 5'
134
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.53.11 (KHTML, like Gecko)').email_version).to eq('Apple Mail 5')
135
135
  end
136
136
 
137
137
  it "should recognize Version 6" do
138
- UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_1) AppleWebKit/536.25 (KHTML, like Gecko)').email_version.should == 'Apple Mail 6'
138
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_1) AppleWebKit/536.25 (KHTML, like Gecko)').email_version).to eq('Apple Mail 6')
139
139
  end
140
140
 
141
141
  it "should not mistake Safari for Apple Mail" do
142
- UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_1) AppleWebKit/536.25 (KHTML, like Gecko)', 'something').email_version.should be_nil
142
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_1) AppleWebKit/536.25 (KHTML, like Gecko)', 'something').email_version).to be_nil
143
143
  end
144
144
  end
145
145
 
146
146
  describe "Apple Mobile Mail" do
147
147
  it "should recognize iOS 2" do
148
- UseragentParser.parse_with_referrer('Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_1 like Mac OS X; de-de) AppleWebKit/525.18.1 (KHTML, like Gecko)').email_version.should == 'Apple Mobile Mail 2'
148
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_1 like Mac OS X; de-de) AppleWebKit/525.18.1 (KHTML, like Gecko)').email_version).to eq('Apple Mobile Mail 2')
149
149
  end
150
150
 
151
151
  it "should recognize iOS 3" do
152
- UseragentParser.parse_with_referrer('Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; de-de) AppleWebKit/528.18 (KHTML, like Gecko)').email_version.should == 'Apple Mobile Mail 3'
152
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; de-de) AppleWebKit/528.18 (KHTML, like Gecko)').email_version).to eq('Apple Mobile Mail 3')
153
153
  end
154
154
 
155
155
  it "should recognize iOS 4" do
156
- UseragentParser.parse_with_referrer('Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko)').email_version.should == 'Apple Mobile Mail 4'
156
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko)').email_version).to eq('Apple Mobile Mail 4')
157
157
  end
158
158
 
159
159
  it "should recognize iOS 5" do
160
- UseragentParser.parse_with_referrer('Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko)').email_version.should == 'Apple Mobile Mail 5'
160
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko)').email_version).to eq('Apple Mobile Mail 5')
161
161
  end
162
162
 
163
163
  it "should recognize iOS 2" do
164
- UseragentParser.parse_with_referrer('Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/535.8 (KHTML, like Gecko)').email_version.should == 'Apple Mobile Mail 6'
164
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/535.8 (KHTML, like Gecko)').email_version).to eq('Apple Mobile Mail 6')
165
165
  end
166
166
 
167
167
  it "should not mistake Mobile Safari for Apple Mail" do
168
- UseragentParser.parse_with_referrer('Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/535.8 (KHTML, like Gecko)', 'http://example.com').email_version.should be_nil
168
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/535.8 (KHTML, like Gecko)', 'http://example.com').email_version).to be_nil
169
169
  end
170
170
  end
171
171
 
172
172
  describe "AOL" do
173
173
  it "should recognize the Webmail interface" do
174
- UseragentParser.parse_with_referrer('Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.13) Gecko/20101203 AskTbFXTV5/3.9.1.14019 Firefox/3.6.13', 'http://mail.aol.com/33222-111/aol-1/de-de/Lite/MsgRead.aspx?folder=Spam&uid=1.28305313&seq=0&searchIn=none&searchQuery=&start=0&sort=received').email.should == 'AOL Webmail'
174
+ expect(UseragentParser.parse_with_referrer('Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.13) Gecko/20101203 AskTbFXTV5/3.9.1.14019 Firefox/3.6.13', 'http://mail.aol.com/33222-111/aol-1/de-de/Lite/MsgRead.aspx?folder=Spam&uid=1.28305313&seq=0&searchIn=none&searchQuery=&start=0&sort=received').email).to eq('AOL Webmail')
175
175
  end
176
176
  end
177
177
  end
178
178
 
179
179
  describe "for operating system details" do
180
180
  it "should report the os family" do
181
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os_family.should == 'Windows NT'
181
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os_family).to eq('Windows NT')
182
182
  end
183
183
 
184
184
  it "should report the major os version" do
185
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os_major_version.should == '3'
185
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os_major_version).to eq('3')
186
186
  end
187
187
 
188
188
  it "should report the minor os version" do
189
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os_minor_version.should == '1'
189
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os_minor_version).to eq('1')
190
190
  end
191
191
 
192
192
  it "should report the os patchlevel" do
193
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os_patch_version.should be_nil
193
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os_patch_version).to be_nil
194
194
  end
195
195
 
196
196
  it "should report the os version" do
197
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os_version.should == '3.1'
197
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os_version).to eq('3.1')
198
198
  end
199
199
 
200
200
  it "should know the code name for Windows NT 3.1" do
201
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os.should == 'Microsoft Windows NT 3.1'
201
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '1' } }).os).to eq('Microsoft Windows NT 3.1')
202
202
  end
203
203
 
204
204
  it "should know the code name for Windows NT 3.5" do
205
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '5' } }).os.should == 'Microsoft Windows NT 3.5'
205
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '3', 'minor' => '5' } }).os).to eq('Microsoft Windows NT 3.5')
206
206
  end
207
207
 
208
208
  it "should know the code name for Windows NT 4.0" do
209
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '4', 'minor' => '0' } }).os.should == 'Microsoft Windows NT 4.0'
209
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '4', 'minor' => '0' } }).os).to eq('Microsoft Windows NT 4.0')
210
210
  end
211
211
 
212
212
  it "should know the code name for Windows 2000" do
213
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '5', 'minor' => '0' } }).os.should == 'Microsoft Windows 2000'
213
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '5', 'minor' => '0' } }).os).to eq('Microsoft Windows 2000')
214
214
  end
215
215
 
216
216
  it "should know the code name for Windows XP" do
217
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '5', 'minor' => '1' } }).os.should == 'Microsoft Windows XP'
217
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '5', 'minor' => '1' } }).os).to eq('Microsoft Windows XP')
218
218
  end
219
219
 
220
220
  it "should know the code name for Windows XP 64bit / Server 2003" do
221
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '5', 'minor' => '2' } }).os.should == 'Microsoft Windows XP 64bit / Server 2003'
221
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '5', 'minor' => '2' } }).os).to eq('Microsoft Windows XP 64bit / Server 2003')
222
222
  end
223
223
 
224
224
  it "should know the code name for Windows Vista / Server 2008" do
225
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '6', 'minor' => '0' } }).os.should == 'Microsoft Windows Vista / Server 2008'
225
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '6', 'minor' => '0' } }).os).to eq('Microsoft Windows Vista / Server 2008')
226
226
  end
227
227
 
228
228
  it "should know the code name for Windows 7 / Server 2008 R2" do
229
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '6', 'minor' => '1' } }).os.should == 'Microsoft Windows 7 / Server 2008 R2'
229
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '6', 'minor' => '1' } }).os).to eq('Microsoft Windows 7 / Server 2008 R2')
230
230
  end
231
231
 
232
232
  it "should know the code name for Windows 8" do
233
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '6', 'minor' => '2' } }).os.should == 'Microsoft Windows 8'
233
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows NT', 'major' => '6', 'minor' => '2' } }).os).to eq('Microsoft Windows 8')
234
234
  end
235
235
 
236
236
  it "should know the code name for Windows 3.1" do
237
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows', 'major' => '3', 'minor' => '1' } }).os.should == 'Microsoft Windows 3.1'
237
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows', 'major' => '3', 'minor' => '1' } }).os).to eq('Microsoft Windows 3.1')
238
238
  end
239
239
 
240
240
  it "should know the code name for Windows 95" do
241
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows', 'major' => '95' } }).os.should == 'Microsoft Windows 95'
241
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows', 'major' => '95' } }).os).to eq('Microsoft Windows 95')
242
242
  end
243
243
 
244
244
  it "should know the code name for Windows 98" do
245
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows', 'major' => '98' } }).os.should == 'Microsoft Windows 98'
245
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows', 'major' => '98' } }).os).to eq('Microsoft Windows 98')
246
246
  end
247
247
 
248
248
  it "should know the code name for Windows ME" do
249
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows', 'major' => 'ME' } }).os.should == 'Microsoft Windows ME'
249
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows', 'major' => 'ME' } }).os).to eq('Microsoft Windows ME')
250
250
  end
251
251
 
252
252
  it "should know the code name for Windows 9x" do
253
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows', 'major' => '9x' } }).os.should == 'Microsoft Windows 9x'
253
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Windows', 'major' => '9x' } }).os).to eq('Microsoft Windows 9x')
254
254
  end
255
255
 
256
256
  it "should know the code name for Mac OS X 10.0" do
257
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '0' } }).os.should == 'Apple Mac OS X 10.0 (Cheetah)'
257
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '0' } }).os).to eq('Apple Mac OS X 10.0 (Cheetah)')
258
258
  end
259
259
 
260
260
  it "should know the code name for Mac OS X 10.0" do
261
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '0', 'patch' => 2 } }).os.should == 'Apple Mac OS X 10.0.2 (Cheetah)'
261
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '0', 'patch' => 2 } }).os).to eq('Apple Mac OS X 10.0.2 (Cheetah)')
262
262
  end
263
263
 
264
264
  it "should know the code name for Mac OS X 10.1" do
265
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '1', 'patch' => 2 } }).os.should == 'Apple Mac OS X 10.1.2 (Puma)'
265
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '1', 'patch' => 2 } }).os).to eq('Apple Mac OS X 10.1.2 (Puma)')
266
266
  end
267
267
 
268
268
  it "should know the code name for Mac OS X 10.2" do
269
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '2', 'patch' => 2 } }).os.should == 'Apple Mac OS X 10.2.2 (Jaguar)'
269
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '2', 'patch' => 2 } }).os).to eq('Apple Mac OS X 10.2.2 (Jaguar)')
270
270
  end
271
271
 
272
272
  it "should know the code name for Mac OS X 10.3" do
273
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '3', 'patch' => 2 } }).os.should == 'Apple Mac OS X 10.3.2 (Panther)'
273
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '3', 'patch' => 2 } }).os).to eq('Apple Mac OS X 10.3.2 (Panther)')
274
274
  end
275
275
 
276
276
  it "should know the code name for Mac OS X 10.4" do
277
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '4', 'patch' => 2 } }).os.should == 'Apple Mac OS X 10.4.2 (Tiger)'
277
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '4', 'patch' => 2 } }).os).to eq('Apple Mac OS X 10.4.2 (Tiger)')
278
278
  end
279
279
 
280
280
  it "should know the code name for Mac OS X 10.5" do
281
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '5', 'patch' => 2 } }).os.should == 'Apple Mac OS X 10.5.2 (Leopard)'
281
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '5', 'patch' => 2 } }).os).to eq('Apple Mac OS X 10.5.2 (Leopard)')
282
282
  end
283
283
 
284
284
  it "should know the code name for Mac OS X 10.6" do
285
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '6', 'patch' => 2 } }).os.should == 'Apple Mac OS X 10.6.2 (Snow Leopard)'
285
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '6', 'patch' => 2 } }).os).to eq('Apple Mac OS X 10.6.2 (Snow Leopard)')
286
286
  end
287
287
 
288
288
  it "should know the code name for Mac OS X 10.7" do
289
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '7', 'patch' => '2' } }).os.should == 'Apple Mac OS X 10.7.2 (Lion)'
289
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '7', 'patch' => '2' } }).os).to eq('Apple Mac OS X 10.7.2 (Lion)')
290
290
  end
291
291
 
292
292
  it "should provide a generic os/version for other operating systems" do
293
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Linux', 'major' => '2', 'minor' => '6', 'patch' => '32' } }).os.should == 'Linux 2.6.32'
293
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Linux', 'major' => '2', 'minor' => '6', 'patch' => '32' } }).os).to eq('Linux 2.6.32')
294
294
  end
295
295
 
296
296
  it "should provide a generic os name without version" do
297
- UseragentParser::UserAgent.new({ 'os' => { 'family' => 'FreeBSD' } }).os.should == 'FreeBSD'
297
+ expect(UseragentParser::UserAgent.new({ 'os' => { 'family' => 'FreeBSD' } }).os).to eq('FreeBSD')
298
298
  end
299
299
  end
300
300
 
301
301
  it "should combing operating system and browser version" do
302
302
  ua = UseragentParser::UserAgent.new({ 'os' => { 'family' => 'Mac OS X', 'major' => '10', 'minor' => '7', 'patch' => '2' }, 'user_agent' => { 'family' => 'Chrome', 'major' => '14', 'minor' => '0', 'patch' => '835' } })
303
- ua.browser_family.should == 'Chrome'
304
- ua.browser_version.should == '14.0.835'
305
- ua.os_family.should == 'Mac OS X'
306
- ua.os_version.should == '10.7.2'
303
+ expect(ua.browser_family).to eq('Chrome')
304
+ expect(ua.browser_version).to eq('14.0.835')
305
+ expect(ua.os_family).to eq('Mac OS X')
306
+ expect(ua.os_version).to eq('10.7.2')
307
307
  end
308
308
  end
@@ -8,27 +8,72 @@ describe UseragentParser do
8
8
  describe "should return user agent information" do
9
9
  subject { UseragentParser.parse_browser(user_agent_string)['user_agent'] }
10
10
 
11
- its(['family']) { should == 'Firefox' }
12
- its(['major']) { should == '3' }
13
- its(['minor']) { should == '5' }
14
- its(['patch']) { should == '5' }
11
+ describe "['family']" do
12
+ subject { super()['family'] }
13
+ it { is_expected.to eq('Firefox') }
14
+ end
15
+
16
+ describe "['major']" do
17
+ subject { super()['major'] }
18
+ it { is_expected.to eq('3') }
19
+ end
20
+
21
+ describe "['minor']" do
22
+ subject { super()['minor'] }
23
+ it { is_expected.to eq('5') }
24
+ end
25
+
26
+ describe "['patch']" do
27
+ subject { super()['patch'] }
28
+ it { is_expected.to eq('5') }
29
+ end
15
30
  end
16
31
 
17
32
  describe "should return the operating system information" do
18
33
  subject { UseragentParser.parse_browser(user_agent_string)['os'] }
19
34
 
20
- its(['family']) { should == 'Mac OS X' }
21
- its(['major']) { should == '10' }
22
- its(['minor']) { should == '4' }
23
- its(['patch']) { should be_nil }
24
- its(['patch_minor']) { should be_nil }
35
+ describe "['family']" do
36
+ subject { super()['family'] }
37
+ it { is_expected.to eq('Mac OS X') }
38
+ end
39
+
40
+ describe "['major']" do
41
+ subject { super()['major'] }
42
+ it { is_expected.to eq('10') }
43
+ end
44
+
45
+ describe "['minor']" do
46
+ subject { super()['minor'] }
47
+ it { is_expected.to eq('4') }
48
+ end
49
+
50
+ describe "['patch']" do
51
+ subject { super()['patch'] }
52
+ it { is_expected.to be_nil }
53
+ end
54
+
55
+ describe "['patch_minor']" do
56
+ subject { super()['patch_minor'] }
57
+ it { is_expected.to be_nil }
58
+ end
25
59
  end
26
60
 
27
61
  describe "should return the device information" do
28
62
  subject { UseragentParser.parse_browser(user_agent_string)['device'] }
29
63
 
30
- its(['family']) { should be_nil }
31
- its(['is_spider']) { should be_false }
32
- its(['is_mobile']) { should be_false }
64
+ describe "['family']" do
65
+ subject { super()['family'] }
66
+ it { is_expected.to be_nil }
67
+ end
68
+
69
+ describe "['is_spider']" do
70
+ subject { super()['is_spider'] }
71
+ it { is_expected.to be_falsey }
72
+ end
73
+
74
+ describe "['is_mobile']" do
75
+ subject { super()['is_mobile'] }
76
+ it { is_expected.to be_falsey }
77
+ end
33
78
  end
34
79
  end
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  # specify any dependencies here; for example:
22
- s.add_development_dependency "rake", "~> 0.9.0"
23
- s.add_development_dependency "rspec", "~> 2.6.0"
24
- s.add_development_dependency "multi_json", "~> 1.0.1"
22
+ s.add_development_dependency "rake"
23
+ s.add_development_dependency "rspec", "~> 3.0"
25
24
  end
metadata CHANGED
@@ -1,64 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: useragent_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
5
- prerelease:
4
+ version: 0.2.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Morton Jonuschat
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-09-15 00:00:00.000000000 Z
11
+ date: 2014-07-25 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: 0.9.0
19
+ version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: 0.9.0
26
+ version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
- version: 2.6.0
33
+ version: '3.0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
- version: 2.6.0
46
- - !ruby/object:Gem::Dependency
47
- name: multi_json
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: 1.0.1
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: 1.0.1
40
+ version: '3.0'
62
41
  description: UseragentParser extracts browser and operating system information from
63
42
  the headers sent by most browsers and email clients
64
43
  email:
@@ -67,8 +46,8 @@ executables: []
67
46
  extensions: []
68
47
  extra_rdoc_files: []
69
48
  files:
70
- - .gitignore
71
- - .travis.yml
49
+ - ".gitignore"
50
+ - ".travis.yml"
72
51
  - Gemfile
73
52
  - LICENSE
74
53
  - README.md
@@ -99,27 +78,26 @@ files:
99
78
  - useragent_parser.gemspec
100
79
  homepage: https://github.com/yabawock/useragent_parser
101
80
  licenses: []
81
+ metadata: {}
102
82
  post_install_message:
103
83
  rdoc_options: []
104
84
  require_paths:
105
85
  - lib
106
86
  required_ruby_version: !ruby/object:Gem::Requirement
107
- none: false
108
87
  requirements:
109
- - - ! '>='
88
+ - - ">="
110
89
  - !ruby/object:Gem::Version
111
90
  version: '0'
112
91
  required_rubygems_version: !ruby/object:Gem::Requirement
113
- none: false
114
92
  requirements:
115
- - - ! '>='
93
+ - - ">="
116
94
  - !ruby/object:Gem::Version
117
95
  version: '0'
118
96
  requirements: []
119
97
  rubyforge_project: useragent_parser
120
- rubygems_version: 1.8.23
98
+ rubygems_version: 2.2.2
121
99
  signing_key:
122
- specification_version: 3
100
+ specification_version: 4
123
101
  summary: A library to extract informtion from Useragent headers
124
102
  test_files:
125
103
  - spec/fixtures/additional_os_tests.yaml