rack-useragent-filter 0.1.3 → 0.1.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/README.rdoc +2 -2
- data/Rakefile +5 -4
- data/VERSION +1 -1
- data/lib/rack/user_agent/filter.rb +2 -1
- data/test/fixtures/upgrade.haml +1 -0
- data/test/user_agent_filter_test.rb +18 -0
- metadata +26 -12
data/README.rdoc
CHANGED
@@ -6,7 +6,7 @@ Rack Middleware for filtering by user agent
|
|
6
6
|
|
7
7
|
Let's say you don't support IE6 and want to prevent IE6 users from accessing to your Rails app. You're in luck. Just add this to your <tt>config/environment.rb</tt>:
|
8
8
|
|
9
|
-
config.gem "
|
9
|
+
config.gem "rack-useragent-filter", :lib => "rack/user_agent"
|
10
10
|
|
11
11
|
config.middleware.use "Rack::UserAgent::Filter", [
|
12
12
|
{:browser => "Internet Explorer", :version => "7.0"}
|
@@ -18,7 +18,7 @@ And, of course, install the gem:
|
|
18
18
|
|
19
19
|
Done! From now on users with IE version lower than 7.0 will get a nice error message saying that their browsers need to be updated... Ok, ok, not so nice message, you can personalize it by putting an <tt>upgrade.html</tt> file inside the <tt>/public</tt> directory of your application.
|
20
20
|
|
21
|
-
<em>- Cool!, what about something more dynamic... like ERB?</em>
|
21
|
+
<em>- Cool!, what about something more dynamic... like ERB or HAML?</em>
|
22
22
|
|
23
23
|
Granted! You'll have to add to the config which template to use. In <tt>environment.rb</tt>:
|
24
24
|
|
data/Rakefile
CHANGED
@@ -17,12 +17,13 @@ begin
|
|
17
17
|
require 'jeweler'
|
18
18
|
Jeweler::Tasks.new do |gemspec|
|
19
19
|
gemspec.name = "rack-useragent-filter"
|
20
|
-
gemspec.authors = ["Sergio Gil", "Luismi Cavallé"
|
21
|
-
gemspec.email =
|
22
|
-
gemspec.homepage = "http://github.com/
|
20
|
+
gemspec.authors = ["Sergio Gil", "Luismi Cavallé"]
|
21
|
+
gemspec.email = "ballsbreaking@bebanjo.com"
|
22
|
+
gemspec.homepage = "http://github.com/bebanjo/rack-useragent"
|
23
23
|
gemspec.summary = "Rack Middleware for filtering by user agent"
|
24
24
|
gemspec.add_dependency('rack', '>= 0.9.1')
|
25
|
-
gemspec.add_dependency('useragent', '>=0.1.
|
25
|
+
gemspec.add_dependency('useragent', '>= 0.1.5')
|
26
|
+
gemspec.add_dependency('tilt', '>= 1.0.0')
|
26
27
|
end
|
27
28
|
rescue LoadError
|
28
29
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'user_agent'
|
2
2
|
require 'erb'
|
3
|
+
require 'tilt'
|
3
4
|
require 'ostruct'
|
4
5
|
|
5
6
|
module Rack::UserAgent
|
@@ -35,7 +36,7 @@ module Rack::UserAgent
|
|
35
36
|
def render_page(browser)
|
36
37
|
if @template && File.exists?(@template)
|
37
38
|
@browser = browser # for the template
|
38
|
-
|
39
|
+
Tilt.new(@template).render(self)
|
39
40
|
else
|
40
41
|
"Sorry, your browser is not supported. Please upgrade"
|
41
42
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
= "Hello, #{@browser.browser} #{@browser.version}!"
|
@@ -54,6 +54,24 @@ class UserAgentFilterTest < Test::Unit::TestCase
|
|
54
54
|
|
55
55
|
end
|
56
56
|
|
57
|
+
context "custom page (haml)" do
|
58
|
+
setup do
|
59
|
+
def app
|
60
|
+
Rack::Builder.new do
|
61
|
+
use Rack::UserAgent::Filter, [{:browser => "Internet Explorer", :version => "7.0"}], :template => File.dirname(__FILE__) + "/fixtures/upgrade.haml"
|
62
|
+
run SampleApp.new
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
should "work" do
|
68
|
+
header "User-Agent", @outdated_browser
|
69
|
+
get '/'
|
70
|
+
assert_equal "Hello, Internet Explorer 6.0!\n", last_response.body
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
57
75
|
context "cookie" do
|
58
76
|
|
59
77
|
setup do
|
metadata
CHANGED
@@ -1,23 +1,22 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-useragent-filter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 4
|
10
|
+
version: 0.1.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sergio Gil
|
14
14
|
- "Luismi Cavall\xC3\xA9"
|
15
|
-
- Tomasz Mazur
|
16
15
|
autorequire:
|
17
16
|
bindir: bin
|
18
17
|
cert_chain: []
|
19
18
|
|
20
|
-
date: 2010-
|
19
|
+
date: 2010-07-20 00:00:00 +02:00
|
21
20
|
default_executable:
|
22
21
|
dependencies:
|
23
22
|
- !ruby/object:Gem::Dependency
|
@@ -44,18 +43,32 @@ dependencies:
|
|
44
43
|
requirements:
|
45
44
|
- - ">="
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
hash:
|
46
|
+
hash: 17
|
48
47
|
segments:
|
49
48
|
- 0
|
50
49
|
- 1
|
51
|
-
-
|
52
|
-
version: 0.1.
|
50
|
+
- 5
|
51
|
+
version: 0.1.5
|
53
52
|
type: :runtime
|
54
53
|
version_requirements: *id002
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: tilt
|
56
|
+
prerelease: false
|
57
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 23
|
63
|
+
segments:
|
64
|
+
- 1
|
65
|
+
- 0
|
66
|
+
- 0
|
67
|
+
version: 1.0.0
|
68
|
+
type: :runtime
|
69
|
+
version_requirements: *id003
|
55
70
|
description:
|
56
|
-
email:
|
57
|
-
- ballsbreaking@bebanjo.com
|
58
|
-
- defkode@gmail.com
|
71
|
+
email: ballsbreaking@bebanjo.com
|
59
72
|
executables: []
|
60
73
|
|
61
74
|
extensions: []
|
@@ -70,10 +83,11 @@ files:
|
|
70
83
|
- lib/rack/user_agent.rb
|
71
84
|
- lib/rack/user_agent/filter.rb
|
72
85
|
- test/fixtures/upgrade.erb
|
86
|
+
- test/fixtures/upgrade.haml
|
73
87
|
- test/test_helper.rb
|
74
88
|
- test/user_agent_filter_test.rb
|
75
89
|
has_rdoc: true
|
76
|
-
homepage: http://github.com/
|
90
|
+
homepage: http://github.com/bebanjo/rack-useragent
|
77
91
|
licenses: []
|
78
92
|
|
79
93
|
post_install_message:
|