which_browser 0.2.0 → 0.2.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.
- data/.travis.yml +0 -1
- data/README.md +2 -1
- data/lib/which_browser/version.rb +1 -1
- data/lib/which_browser.rb +13 -2
- data/test/helper.rb +3 -4
- data/test/test_mobile.rb +41 -0
- data/test/test_safari.rb +1 -26
- metadata +51 -60
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -35,6 +35,7 @@ Here's some other popular helpers:
|
|
35
35
|
request.ipod?
|
36
36
|
request.iphone?
|
37
37
|
request.mobile_safari?
|
38
|
+
request.blackberry?
|
38
39
|
|
39
40
|
|
40
41
|
Installation
|
@@ -46,7 +47,7 @@ As usual, just use the `gem install` command:
|
|
46
47
|
|
47
48
|
Or add which_browser as a gem in your Gemfile:
|
48
49
|
|
49
|
-
gem 'which_browser', '>= 0.2.
|
50
|
+
gem 'which_browser', '>= 0.2.1'
|
50
51
|
|
51
52
|
Then run `bundle install`
|
52
53
|
|
data/lib/which_browser.rb
CHANGED
@@ -16,7 +16,7 @@ module WhichBrowser
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def mobile?
|
19
|
-
test_user_agent(/Mobile|webOS/)
|
19
|
+
test_user_agent(/Mobile|webOS|Nokia|Symbian/)
|
20
20
|
end
|
21
21
|
|
22
22
|
|
@@ -39,6 +39,17 @@ module WhichBrowser
|
|
39
39
|
mobile_safari? && test_user_agent(/iPad/)
|
40
40
|
end
|
41
41
|
|
42
|
+
# =============================================
|
43
|
+
# Blackberry
|
44
|
+
|
45
|
+
def blackberry?
|
46
|
+
test_user_agent(/BlackBerry/)
|
47
|
+
end
|
48
|
+
|
49
|
+
def symbian?
|
50
|
+
test_user_agent(/Nokia|Symbian/)
|
51
|
+
end
|
52
|
+
|
42
53
|
|
43
54
|
# =============================================
|
44
55
|
# Browsers
|
@@ -125,7 +136,7 @@ module WhichBrowser
|
|
125
136
|
extract_version_with(/MSIE\s?([0-9\.]+)/)
|
126
137
|
when 'safari'
|
127
138
|
extract_version_with(/Version\/([0-9\.]+)\sSafari/)
|
128
|
-
when 'ios'
|
139
|
+
when 'ios', 'blackberry'
|
129
140
|
extract_version_with(/Version\/([0-9\.]+)\sMobile/)
|
130
141
|
when 'ff', 'firefox'
|
131
142
|
extract_version_with(/Firefox\/([0-9\.]+)/)
|
data/test/helper.rb
CHANGED
@@ -33,7 +33,6 @@ register :IE, '6.0b', :'Windows XP', :msie, '6.0b', 'Mozilla/4.0 (compatible;
|
|
33
33
|
register :IE, '6.0', :'Windows XP', :msie, '6.0', 'Mozilla/5.0 (Windows; U; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)'
|
34
34
|
register :IE, '5.5', :'Windows 98', :msie, '4.0', 'Mozilla/4.0 (compatible; MSIE 5.50; Windows NT; SiteKiosk 4.9; SiteCoach 1.0)'
|
35
35
|
|
36
|
-
|
37
36
|
register :Opera, '9.99', :'Windows XP', :presto, '9.9.9', 'Opera/9.99 (Windows NT 5.1; U; pl) Presto/9.9.9'
|
38
37
|
register :Opera, '9.70', :Linux, :gecko, '20061208', 'Mozilla/5.0 (Linux i686 ; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.70'
|
39
38
|
register :Opera, '9.64', :Linux, :presto, '2.1.1', 'Opera/9.64 (X11; Linux i686; U; Linux Mint; it) Presto/2.1.1'
|
@@ -44,8 +43,6 @@ register :Chrome, '0.2.149.27', :'Windows 2003', :webkit, '525.13', 'Mozilla/5.
|
|
44
43
|
register :Chrome, '0.2.149.30', :'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'
|
45
44
|
register :Chrome, '8.0.552.237', :'Mac OS X 10_6_6', :webkit, '534.10', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10'
|
46
45
|
|
47
|
-
|
48
|
-
|
49
46
|
register :Konqueror, '4.2', :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'
|
50
47
|
register :Konqueror, '3.1-rc6', :Linux, :konqueror, '3.1-rc6', 'Mozilla/5.0 (compatible; Konqueror/3.1-rc6; i686 Linux; 20021105)'
|
51
48
|
|
@@ -56,13 +53,15 @@ register :PSP, '2.00', :Playstation, :unknown, nil, 'PSP (PlayStation Portable);
|
|
56
53
|
register :PSP, '2.00', :Playstation, :unknown, nil, 'Mozilla/4.0 (PSP (PlayStation Portable); 2.00)'
|
57
54
|
|
58
55
|
register :Firefox, '3.5', :Linux, :gecko, '20090624', 'Mozilla/5.0 (X11;U; Linux i686; en-GB; rv:1.9.1) Gecko/20090624 Ubuntu/9.04 (jaunty) Firefox/3.5'
|
59
|
-
#register :Firefox, '3.5', :'Windows 7', :gecko, '20090612', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1) Gecko/20090612 Firefox/3.5'
|
60
56
|
register :Firefox, '3.1', :'Windows XP', :gecko, '2009011606', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.6pre) Gecko/2009011606 Firefox/3.1'
|
61
57
|
register :Firefox, '3.0', :Linux, :gecko, '2008062315', 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9) Gecko/2008062315 (Gentoo) Firefox/3.0'
|
62
58
|
register :Firefox, '2.0', :Linux, :gecko, '20061202', 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1) Gecko/20061202 Firefox/2.0'
|
63
59
|
register :Firefox, '3.6', :'OS X 10.6', :gecko, '20100914', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10'
|
64
60
|
|
61
|
+
register :BlackBerry, '7.0.0.296', :'9xxx', :webkit, '534.11', 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9860; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.296 Mobile Safari/534.11+'
|
62
|
+
register :BlackBerry, '6.0.0.246', :'9800', :webkit, '534.1', 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.246 Mobile Safari/534.1+'
|
65
63
|
|
64
|
+
register :Symbian, '10.0.018', :'9x', :webkit, '413', 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/10.0.018; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'
|
66
65
|
|
67
66
|
|
68
67
|
def get_request(name, version=nil)
|
data/test/test_mobile.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
2
|
+
|
3
|
+
class TestMobile < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
should "be safari ipad" do
|
6
|
+
request = get_request(:MobileSafari, 'iPad')
|
7
|
+
assert !request.safari?
|
8
|
+
assert request.mobile_safari?
|
9
|
+
assert request.ipad?
|
10
|
+
assert request.mobile?
|
11
|
+
end
|
12
|
+
|
13
|
+
should "be safari ipod" do
|
14
|
+
request = get_request(:MobileSafari, 'iPod')
|
15
|
+
assert !request.safari?
|
16
|
+
assert request.mobile_safari?
|
17
|
+
assert request.ipod?
|
18
|
+
assert request.mobile?
|
19
|
+
end
|
20
|
+
|
21
|
+
should "be safari iphone" do
|
22
|
+
request = get_request(:MobileSafari, 'iPhone')
|
23
|
+
assert !request.safari?
|
24
|
+
assert request.mobile_safari?
|
25
|
+
assert request.iphone?
|
26
|
+
assert request.mobile?
|
27
|
+
end
|
28
|
+
|
29
|
+
should "be blackberry" do
|
30
|
+
request = get_request(:BlackBerry, '7.0.0.296')
|
31
|
+
assert request.blackberry?
|
32
|
+
assert request.mobile?
|
33
|
+
end
|
34
|
+
|
35
|
+
should "be symbian" do
|
36
|
+
request = get_request(:Symbian, '10.0.018')
|
37
|
+
assert request.symbian?
|
38
|
+
assert request.mobile?
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
data/test/test_safari.rb
CHANGED
@@ -2,8 +2,6 @@ require File.expand_path('../helper', __FILE__)
|
|
2
2
|
|
3
3
|
class TestSafari < MiniTest::Unit::TestCase
|
4
4
|
|
5
|
-
# safari tests
|
6
|
-
|
7
5
|
should "be safari on mac" do
|
8
6
|
request = get_request(:Safari, '4.0.1')
|
9
7
|
assert request.safari?
|
@@ -15,28 +13,5 @@ class TestSafari < MiniTest::Unit::TestCase
|
|
15
13
|
assert request.safari?
|
16
14
|
assert request.pc?
|
17
15
|
end
|
18
|
-
|
19
|
-
# mobile safari tests
|
20
|
-
|
21
|
-
should "be safari ipad" do
|
22
|
-
request = get_request(:MobileSafari, 'iPad')
|
23
|
-
assert !request.safari?
|
24
|
-
assert request.mobile_safari?
|
25
|
-
assert request.ipad?
|
26
|
-
end
|
27
|
-
|
28
|
-
should "be safari ipod" do
|
29
|
-
request = get_request(:MobileSafari, 'iPod')
|
30
|
-
assert !request.safari?
|
31
|
-
assert request.mobile_safari?
|
32
|
-
assert request.ipod?
|
33
|
-
end
|
34
|
-
|
35
|
-
should "be safari iphone" do
|
36
|
-
request = get_request(:MobileSafari, 'iPhone')
|
37
|
-
assert !request.safari?
|
38
|
-
assert request.mobile_safari?
|
39
|
-
assert request.iphone?
|
40
|
-
end
|
41
|
-
|
16
|
+
|
42
17
|
end
|
metadata
CHANGED
@@ -1,71 +1,68 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: which_browser
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.1
|
4
5
|
prerelease:
|
5
|
-
version: 0.2.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Spencer Steffen
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-12-09 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: rack
|
17
|
-
requirement: &
|
16
|
+
requirement: &70130667337300 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
|
-
requirements:
|
20
|
-
- -
|
21
|
-
- !ruby/object:Gem::Version
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
22
21
|
version: 1.0.1
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
26
|
-
- !ruby/object:Gem::Dependency
|
24
|
+
version_requirements: *70130667337300
|
25
|
+
- !ruby/object:Gem::Dependency
|
27
26
|
name: rake
|
28
|
-
requirement: &
|
27
|
+
requirement: &70130667277520 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
|
-
requirements:
|
31
|
-
- -
|
32
|
-
- !ruby/object:Gem::Version
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
33
32
|
version: 0.8.7
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
37
|
-
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: *70130667277520
|
36
|
+
- !ruby/object:Gem::Dependency
|
38
37
|
name: minitest
|
39
|
-
requirement: &
|
38
|
+
requirement: &70130667273440 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
44
43
|
version: 2.1.0
|
45
44
|
type: :development
|
46
45
|
prerelease: false
|
47
|
-
version_requirements: *
|
48
|
-
- !ruby/object:Gem::Dependency
|
46
|
+
version_requirements: *70130667273440
|
47
|
+
- !ruby/object:Gem::Dependency
|
49
48
|
name: minitest_should
|
50
|
-
requirement: &
|
49
|
+
requirement: &70130667260720 !ruby/object:Gem::Requirement
|
51
50
|
none: false
|
52
|
-
requirements:
|
53
|
-
- -
|
54
|
-
- !ruby/object:Gem::Version
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
55
54
|
version: 0.1.1
|
56
55
|
type: :development
|
57
56
|
prerelease: false
|
58
|
-
version_requirements: *
|
59
|
-
description: Which Browser adds a few helper methods to a rack request making it easier
|
60
|
-
|
57
|
+
version_requirements: *70130667260720
|
58
|
+
description: Which Browser adds a few helper methods to a rack request making it easier
|
59
|
+
to determine which browser is being used by the client.
|
60
|
+
email:
|
61
61
|
- spencer@citrusme.com
|
62
62
|
executables: []
|
63
|
-
|
64
63
|
extensions: []
|
65
|
-
|
66
64
|
extra_rdoc_files: []
|
67
|
-
|
68
|
-
files:
|
65
|
+
files:
|
69
66
|
- .gitignore
|
70
67
|
- .travis.yml
|
71
68
|
- Gemfile
|
@@ -79,47 +76,41 @@ files:
|
|
79
76
|
- test/test_chrome.rb
|
80
77
|
- test/test_firefox.rb
|
81
78
|
- test/test_internet_explorer.rb
|
79
|
+
- test/test_mobile.rb
|
82
80
|
- test/test_os.rb
|
83
81
|
- test/test_safari.rb
|
84
82
|
- which_browser.gemspec
|
85
83
|
homepage: https://github.com/citrus/which_browser
|
86
84
|
licenses: []
|
87
|
-
|
88
85
|
post_install_message:
|
89
86
|
rdoc_options: []
|
90
|
-
|
91
|
-
require_paths:
|
87
|
+
require_paths:
|
92
88
|
- lib
|
93
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
94
90
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
99
|
-
|
100
|
-
- 0
|
101
|
-
version: "0"
|
102
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
96
|
none: false
|
104
|
-
requirements:
|
105
|
-
- -
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
|
108
|
-
segments:
|
109
|
-
- 0
|
110
|
-
version: "0"
|
97
|
+
requirements:
|
98
|
+
- - ! '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
111
101
|
requirements: []
|
112
|
-
|
113
102
|
rubyforge_project:
|
114
|
-
rubygems_version: 1.8.
|
103
|
+
rubygems_version: 1.8.10
|
115
104
|
signing_key:
|
116
105
|
specification_version: 3
|
117
|
-
summary: Which Browser adds a few helper methods to a rack request making it easier
|
118
|
-
|
106
|
+
summary: Which Browser adds a few helper methods to a rack request making it easier
|
107
|
+
to determine which browser is being used by the client.
|
108
|
+
test_files:
|
119
109
|
- test/dummy/app.rb
|
120
110
|
- test/helper.rb
|
121
111
|
- test/test_chrome.rb
|
122
112
|
- test/test_firefox.rb
|
123
113
|
- test/test_internet_explorer.rb
|
114
|
+
- test/test_mobile.rb
|
124
115
|
- test/test_os.rb
|
125
116
|
- test/test_safari.rb
|