README.rdoc
January 13, 2015 · View on GitHub
= Rack::UserAgent
Rack Middleware for filtering by user agent
== Use
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 config/environment.rb:
config.gem "bebanjo-rack-useragent", :lib => "rack/user_agent", :source => "http://gems.github.com"
config.middleware.use "Rack::UserAgent::Filter", [ {:browser => "Internet Explorer", :version => "7.0"} ]
And, of course, install the gem:
$ [sudo] rake gems:install
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 upgrade.html file inside the /public directory of your application.
- Hey, I need to show localized versions of the message to my french and spanish users!
No problem, just add upgrade.es.html and upgrade.fr.html to /public (Note that rack.locale env variable needs to be previously set for this to work. Rack::Locale in rack-contrib[http://github.com/rack/rack-contrib] can do that for you)
- Cool!, what about something more dynamic... like ERB?
Granted! You'll have to add to the config which template to use. In environment.rb:
config.middleware.use "Rack::UserAgent::Filter", [ {:browser => "Internet Explorer", :version => "7.0"} ], :template => "#{RAILS_ROOT}/app/views/shared/upgrade.html.erb"
Then you could show the browser version as part of your message:
Sorry but <%= "#{@browser.browser} #{@browser.version}" %> is not supported
- Can I use it with non-Rails Rack frameworks, like Sinatra?
Sure. You only have to take into account that you'll always have to set which template to use. i.e: In config.ru:
require 'rack/user_agent'
use Rack::UserAgent::Filter, [ {:browser => "Internet Explorer", :version => "7.0"} ], :template => File.dirname(FILE) + "/public/upgrade.html"
Enjoy it!
== Authors
- Sergio Gil sgilperez@gmail.com
- Luismi Cavallé luismi@lmcavalle.com
- Paco Guzmán pacoguzmanp@gmail.com
== Contributors
We're looking forward for your patches. Fork us!
Copyright (c) 2008-2015 BeBanjo, released under the MIT license