midas-guilded 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,13 @@
1
+ = 0.2.7 2009-06-10
2
+
3
+ * Changed the BrowserDetector to need to be instantiated to use. No longer just static methods.
4
+
5
+
6
+ = 0.2.6 2009-06-10
7
+
8
+ * Added some more view helpers for the browser detector.
9
+
10
+
1
11
  = 0.2.5 2009-06-10
2
12
 
3
13
  * Added BrowserDetector to assist with determining which browser is making a request.
data/guilded.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{guilded}
5
- s.version = "0.2.6"
5
+ s.version = "0.2.7"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["C. Jason Harrelson (midas)"]
data/lib/guilded.rb CHANGED
@@ -73,7 +73,7 @@ require 'guilded/rails/inactive_record/human_attribute_hint'
73
73
  # <%= g_load_alerter :skin => 'blueish', :id => 'load_alerter' %>
74
74
  #
75
75
  module Guilded
76
- VERSION = '0.2.6'
76
+ VERSION = '0.2.7'
77
77
  end
78
78
 
79
79
  ActionView::Base.send( :include, Guilded::Rails::ViewHelpers ) if defined?( ActionView )
@@ -5,6 +5,10 @@ module Guilded
5
5
  #
6
6
  class BrowserDetector
7
7
 
8
+ def initialize( request )
9
+ @request = request
10
+ end
11
+
8
12
  # Returns true if the browser matches the options ent in, otherwise returns false.
9
13
  #
10
14
  # === Request
@@ -14,15 +18,14 @@ module Guilded
14
18
  # * +:name+ - The name of the browser. For example 'ie'.
15
19
  # * +:version+ - The version of the browser. For example '7'.
16
20
  #
17
- def self.browser_is?( request, options={} )
18
- #name = name.to_s.strip
21
+ def browser_is?( options={} )
19
22
  name = options[:name].to_s.strip
20
23
  version = options[:version].to_s.strip
21
24
 
22
- return true if browser_name( request ) == name
23
- return true if name == 'mozilla' && browser_name( request ) == 'gecko'
24
- return true if name == 'ie' && browser_name( request ).index( 'ie' )
25
- return true if name == 'webkit' && browser_name( request ) == 'safari'
25
+ return true if browser_name == name
26
+ return true if name == 'mozilla' && browser_name == 'gecko'
27
+ #return true if name == 'ie' && browser_name.index( 'ie' )
28
+ return true if name == 'webkit' && browser_name == 'safari'
26
29
  end
27
30
 
28
31
  # Returns the name of the browser that is making this request. For example 'ie'.
@@ -30,9 +33,9 @@ module Guilded
30
33
  # === Request
31
34
  # * +request+ - The request object.
32
35
  #
33
- def self.browser_name( request )
36
+ def browser_name
34
37
  @browser_name ||= begin
35
- ua = request.env['HTTP_USER_AGENT']
38
+ ua = @request.env['HTTP_USER_AGENT']
36
39
  if ua.nil?
37
40
  'unknown'
38
41
  else
@@ -40,9 +43,9 @@ module Guilded
40
43
 
41
44
  if ua.index( 'msie' ) && !ua.index( 'opera' ) && !ua.index( 'webtv' )
42
45
  if ua.index( 'windows ce' )
43
- 'ie' + ua[ua.index( 'msie' ) + 5].chr + '_ce'
46
+ 'ie' + '_ce' #+ ua[ua.index( 'msie' ) + 5].chr
44
47
  else
45
- 'ie' + ua[ua.index( 'msie' ) + 5].chr
48
+ 'ie' # + ua[ua.index( 'msie' ) + 5].chr
46
49
  end
47
50
  elsif ua.index( 'netscape' )
48
51
  'netscape'
@@ -70,8 +73,8 @@ module Guilded
70
73
  # === Request
71
74
  # * +request+ - The request object.
72
75
  #
73
- def self.browser_full_name( request )
74
- browser_name( request ) + browser_version( request )
76
+ def browser_full_name
77
+ browser_name + browser_version
75
78
  end
76
79
 
77
80
  # Returns the version of the browser that is making this request. For example '7'.
@@ -79,26 +82,27 @@ module Guilded
79
82
  # === Request
80
83
  # * +request+ - The request object.
81
84
  #
82
- def self.browser_version( request )
85
+ def browser_version
83
86
  @browser_version ||= begin
84
- ua = request.env['HTTP_USER_AGENT'].downcase
87
+ ua = @request.env['HTTP_USER_AGENT'].downcase
85
88
 
86
- if browser_name( request ) == 'opera'
89
+ if browser_name == 'opera'
87
90
  ua[ua.index( 'opera' ) + 6].chr
88
- elsif browser_name( request ) == 'firefox'
89
- ua[ua.index( 'firefox' ) + 8 ].chr
90
- elsif browser_name( request ) == 'netscape'
91
+ elsif browser_name == 'firefox'
92
+ ua[ua.index( 'firefox' ) + 8].chr
93
+ elsif browser_name == 'netscape'
91
94
  ua[ua.index( 'netscape' ) + 9].chr
92
- elsif browser_name( request ).index( 'ie' )
95
+ elsif browser_name.index( 'ie' )
93
96
  ua[ua.index( 'msie' ) + 5].chr
97
+ elsif browser_name.index( 'safari' )
98
+ ua[ua.index( 'version' ) + 8].chr
94
99
  else
95
100
  'unknown'
96
101
  end
97
-
98
102
  end
99
103
  end
100
104
 
101
- def self.can_use_png?
105
+ def can_use_png?
102
106
  if browser_name.index( 'ie' ) == 0
103
107
  if browser_version.to_i < 7
104
108
  false
@@ -113,12 +117,12 @@ module Guilded
113
117
  end
114
118
 
115
119
  def self.all_browsers
116
- %W( ie7, ie6, opera, firefox, netscape, konqueror, safari )
120
+ %W( ie8, ie7, ie6, opera, firefox, netscape, konqueror, safari )
117
121
  end
118
122
 
119
123
  def self.all_mobile_browsers
120
- %w( ie4_ce )
124
+ %w( ie_ce4 )
121
125
  end
122
-
126
+
123
127
  end
124
128
  end
@@ -83,32 +83,48 @@ module Guilded
83
83
  end
84
84
  end
85
85
 
86
- # Returns the name of the browser that is making this request. For example 'ie'.
86
+ # Returns the name of the browser that is making this request. For example 'ie'. When using
87
+ # the browser detector in the contoller you may put a :g_browser_detector variabe in the session if
88
+ # you wish to keep the BrowserDetector from being instantiated more than once per request.
87
89
  #
88
90
  def g_browser_name
89
- Guilded::BrowserDetector.browser_name( request )
91
+ @g_browser_detector = session[:g_browser_detector] if respond_to?( :session )
92
+ @g_browser_detector ||= Guilded::BrowserDetector.new( request )
93
+ @g_browser_detector.browser_name
90
94
  end
91
95
 
92
- # Returns the version of the browser that is making this request. For example '7'.
96
+ # Returns the version of the browser that is making this request. For example '7'. When using
97
+ # the browser detector in the contoller you may put a :g_browser_detector variabe in the session if
98
+ # you wish to keep the BrowserDetector from being instantiated more than once per request.
93
99
  #
94
100
  def g_browser_version
95
- Guilded::BrowserDetector.browser_version( request )
101
+ @g_browser_detector = session[:g_browser_detector] if respond_to?( :session )
102
+ @g_browser_detector ||= Guilded::BrowserDetector.new( request )
103
+ @g_browser_detector.browser_version
96
104
  end
97
105
 
98
- # Returns the browser name concatenated with the browser version. for example, 'ie7'.
106
+ # Returns the browser name concatenated with the browser version. for example, 'ie7'. When using
107
+ # the browser detector in the contoller you may put a :g_browser_detector variabe in the session if
108
+ # you wish to keep the BrowserDetector from being instantiated more than once per request.
99
109
  #
100
110
  def g_browser_full_name
101
- Guilded::BrowserDetector.browser_full_name( request )
111
+ @g_browser_detector = session[:g_browser_detector] if respond_to?( :session )
112
+ @g_browser_detector ||= Guilded::BrowserDetector.new( request )
113
+ @g_browser_detector.browser_full_name
102
114
  end
103
115
 
104
- # Returns true if the browser matches the options ent in, otherwise returns false.
116
+ # Returns true if the browser matches the options ent in, otherwise returns false. When using
117
+ # the browser detector in the contoller you may put a :g_browser_detector variabe in the session if
118
+ # you wish to keep the BrowserDetector from being instantiated more than once per request.
105
119
  #
106
120
  # === Options
107
121
  # * +:name+ - The name of the browser. For example 'ie'.
108
122
  # * +:version+ - The version of the browser. For example '7'.
109
123
  #
110
124
  def g_browser_is?( options={} )
111
- Guilded::BrowserDetector.browser_is?( request, options )
125
+ @g_browser_detector = session[:g_browser_detector] if respond_to?( :session )
126
+ @g_browser_detector ||= Guilded::BrowserDetector.new( request )
127
+ @g_browser_detector.browser_is?( options )
112
128
  end
113
129
 
114
130
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: midas-guilded
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - C. Jason Harrelson (midas)