spob_browser_detector 1.0.3 → 1.0.4
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/VERSION +1 -1
- data/lib/spob_browser_detector/detector.rb +30 -30
- metadata +10 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
@@ -1,17 +1,17 @@
|
|
1
|
-
module SpobBrowserDetector
|
2
|
-
|
3
|
-
# The Detector provides the ability to determine browser information from the user
|
1
|
+
module SpobBrowserDetector
|
2
|
+
|
3
|
+
# The Detector provides the ability to determine browser information from the user
|
4
4
|
# agent string.
|
5
5
|
#
|
6
6
|
class Detector
|
7
|
-
|
7
|
+
|
8
8
|
attr_reader :ua
|
9
|
-
|
9
|
+
|
10
10
|
def initialize( user_agent )
|
11
11
|
@ua = user_agent.downcase unless user_agent.nil?
|
12
12
|
@version_regex = /(\d*)\.(\d*)\.*(\d*)\.*(\d*)/
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
# Returns true if the browser matches the options ent in, otherwise returns false.
|
16
16
|
#
|
17
17
|
# === Request
|
@@ -30,7 +30,7 @@ module SpobBrowserDetector
|
|
30
30
|
minor_version = options[:minor_version]
|
31
31
|
build_version = options[:build_version]
|
32
32
|
revision_version = options[:revision_version]
|
33
|
-
|
33
|
+
|
34
34
|
name ||= self.browser_name
|
35
35
|
version ||= self.browser_version
|
36
36
|
major_version ||= self.browser_version_major
|
@@ -44,9 +44,9 @@ module SpobBrowserDetector
|
|
44
44
|
minor_version = minor_version.to_s.strip
|
45
45
|
build_version = build_version.to_s.strip
|
46
46
|
revision_version = revision_version.to_s.strip
|
47
|
-
|
47
|
+
|
48
48
|
self.browser_name == name && self.browser_version == version && self.browser_version_major == major_version &&
|
49
|
-
self.browser_version_minor == minor_version #&& self.browser_version_build == build_version &&
|
49
|
+
self.browser_version_minor == minor_version #&& self.browser_version_build == build_version &&
|
50
50
|
#self.browser_version_revision == revision_version
|
51
51
|
end
|
52
52
|
|
@@ -64,13 +64,13 @@ module SpobBrowserDetector
|
|
64
64
|
else
|
65
65
|
if ua.index( 'msie' ) && !ua.index( 'opera' ) && !ua.index( 'webtv' )
|
66
66
|
if ua.index( 'windows ce' )
|
67
|
-
'ie' + '_ce' #+ ua[ua.index( 'msie' ) + 5].chr
|
67
|
+
'ie' + '_ce' #+ ua[ua.index( 'msie' ) + 5].chr
|
68
68
|
else
|
69
69
|
'ie' # + ua[ua.index( 'msie' ) + 5].chr
|
70
70
|
end
|
71
71
|
elsif ua.include?( 'opera' )
|
72
72
|
'opera'
|
73
|
-
elsif ua.include?( 'konqueror' )
|
73
|
+
elsif ua.include?( 'konqueror' )
|
74
74
|
'konqueror'
|
75
75
|
elsif ua.include?( 'applewebkit/' )
|
76
76
|
'safari'
|
@@ -112,19 +112,19 @@ module SpobBrowserDetector
|
|
112
112
|
return match[2].to_i.to_s unless match.nil? || match.size < 3
|
113
113
|
'0'
|
114
114
|
end
|
115
|
-
|
115
|
+
|
116
116
|
def browser_version_build
|
117
117
|
match = @version_regex.match( browser_version )
|
118
118
|
return match[3].to_i.to_s unless match.nil? || match.size < 4 || match[3].empty? || match[3].nil?
|
119
119
|
'0'
|
120
120
|
end
|
121
|
-
|
121
|
+
|
122
122
|
def browser_version_revision
|
123
123
|
match = @version_regex.match( browser_version )
|
124
124
|
return match[4].to_i.to_s unless match.nil? || match.size < 5 || match[4].empty? || match[4].nil?
|
125
125
|
'0'
|
126
126
|
end
|
127
|
-
|
127
|
+
|
128
128
|
# Returns the browser name concatenated with the browser version. for example, 'ie7'.
|
129
129
|
#
|
130
130
|
# === Request
|
@@ -133,7 +133,7 @@ module SpobBrowserDetector
|
|
133
133
|
def browser_full_name
|
134
134
|
self.send( "browser_full_name_for_#{self.browser_name}".to_sym )
|
135
135
|
end
|
136
|
-
|
136
|
+
|
137
137
|
# Returns the browser name concatenated with the browser version. for example, 'ie7'.
|
138
138
|
#
|
139
139
|
# === Request
|
@@ -142,7 +142,7 @@ module SpobBrowserDetector
|
|
142
142
|
def browser_id
|
143
143
|
browser_name + browser_version.gsub( /\./, '' )
|
144
144
|
end
|
145
|
-
|
145
|
+
|
146
146
|
# Returns true if the current browser type can handle PNGs.
|
147
147
|
#
|
148
148
|
def can_use_png?
|
@@ -159,12 +159,12 @@ module SpobBrowserDetector
|
|
159
159
|
# A list of all the mobile browser types that Guilded recognizes.
|
160
160
|
#
|
161
161
|
def self.all_mobile_browsers
|
162
|
-
%w( ie_ce4 iphone )
|
162
|
+
%w( ie_ce4 ie_ce iphone )
|
163
163
|
end
|
164
|
-
|
164
|
+
|
165
165
|
def self.user_agents
|
166
|
-
{
|
167
|
-
:ie55 => 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.1)',
|
166
|
+
{
|
167
|
+
:ie55 => 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.1)',
|
168
168
|
:ie60 => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
|
169
169
|
:ie70 => 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
|
170
170
|
:ie80 => 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
|
@@ -180,18 +180,18 @@ module SpobBrowserDetector
|
|
180
180
|
:chrome4 => 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.221.8 Safari/532.2'
|
181
181
|
}
|
182
182
|
end
|
183
|
-
|
183
|
+
|
184
184
|
protected
|
185
185
|
|
186
186
|
def resolve_version_for_unknown
|
187
187
|
'0'
|
188
188
|
end
|
189
|
-
|
189
|
+
|
190
190
|
def resolve_version_for_ie
|
191
191
|
match = /.*msie (.*); windows nt 5.1/.match( @ua )
|
192
192
|
return match.nil? ? '0' : match[1]
|
193
193
|
end
|
194
|
-
|
194
|
+
|
195
195
|
def resolve_version_for_firefox
|
196
196
|
match = /.*\((.*); u;.*firefox\/(.*) \(.net.*/.match( @ua )
|
197
197
|
if match.nil?
|
@@ -204,12 +204,12 @@ module SpobBrowserDetector
|
|
204
204
|
def resolve_version_for_konqueror
|
205
205
|
return '0'
|
206
206
|
end
|
207
|
-
|
207
|
+
|
208
208
|
def resolve_version_for_opera
|
209
209
|
match = /.*\((.*); intel.*version\/(.*)/.match( @ua )
|
210
210
|
return match.nil? ? '0' : match[2]
|
211
211
|
end
|
212
|
-
|
212
|
+
|
213
213
|
def resolve_version_for_safari
|
214
214
|
match = /.* safari\/(.*)/.match( @ua )
|
215
215
|
rev = match.nil? ? 0 : match[1]
|
@@ -221,19 +221,19 @@ module SpobBrowserDetector
|
|
221
221
|
else '0.0.0.0'
|
222
222
|
end
|
223
223
|
end
|
224
|
-
|
224
|
+
|
225
225
|
def browser_full_name_for_ie
|
226
226
|
"Internet Explorer #{browser_version}"
|
227
227
|
end
|
228
|
-
|
228
|
+
|
229
229
|
def browser_full_name_for_firefox
|
230
230
|
"Firefox #{browser_version}"
|
231
231
|
end
|
232
|
-
|
232
|
+
|
233
233
|
def browser_full_name_for_opera
|
234
234
|
"Opera #{browser_version}"
|
235
235
|
end
|
236
|
-
|
236
|
+
|
237
237
|
def browser_full_name_for_safari
|
238
238
|
"Safari #{browser_version}"
|
239
239
|
end
|
@@ -242,4 +242,4 @@ module SpobBrowserDetector
|
|
242
242
|
"Netscape #{browser_version}"
|
243
243
|
end
|
244
244
|
end
|
245
|
-
end
|
245
|
+
end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spob_browser_detector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 31
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 1
|
7
8
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
9
|
+
- 4
|
10
|
+
version: 1.0.4
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- C. Jason Harrelson (midas)
|
@@ -21,9 +22,11 @@ dependencies:
|
|
21
22
|
name: shoulda
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 35
|
27
30
|
segments:
|
28
31
|
- 2
|
29
32
|
- 10
|
@@ -66,23 +69,27 @@ rdoc_options:
|
|
66
69
|
require_paths:
|
67
70
|
- lib
|
68
71
|
required_ruby_version: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
69
73
|
requirements:
|
70
74
|
- - ">="
|
71
75
|
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
72
77
|
segments:
|
73
78
|
- 0
|
74
79
|
version: "0"
|
75
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
76
82
|
requirements:
|
77
83
|
- - ">="
|
78
84
|
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
79
86
|
segments:
|
80
87
|
- 0
|
81
88
|
version: "0"
|
82
89
|
requirements: []
|
83
90
|
|
84
91
|
rubyforge_project:
|
85
|
-
rubygems_version: 1.3.
|
92
|
+
rubygems_version: 1.3.7
|
86
93
|
signing_key:
|
87
94
|
specification_version: 3
|
88
95
|
summary: Determines the name and version of the browser currently making a request.
|