Detectando o navegador no Rails
Leia em menos de um minuto
Eu tinha um script em PHP que fazia detecção de browser e acabei de portá-lo para Ruby.
Ele é bem simples mas serve muito bem. Para utilizá-lo, basta instanciá-lo da seguinte maneira:
ua = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"
browser = Browser.new :user_agent => ua,
:accept_language => 'en-gb'
puts browser.ie? #false
puts browser.opera? #false
puts browser.safari? #false
puts browser.mozilla? #true
puts browser.firefox? #true
puts browser.linux? #false
puts browser.windows? #true
puts browser.mac? #false
puts browser.platform #Windows
puts browser.name #Firefox
puts browser.version #2
puts browser.full_version #2.0.0.1
puts browser.language #English/United Kingdom
puts browser.user_agent #Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Você também pode instanciar o objeto passando o "request" como parâmetro:
@browser = Browser.new(:request => request)
Gosto de usá-lo para exibir um trecho específico de informação, da mesma maneira que a Mozilla Foundation faz quando você acessa a página do Firefox, sugerindo o instalador para seu sistema. Você pode fazer algo como:
Pegue o código direto do Subversion.
svn co http://svn.nandovieira.com.br/general/browser/
Update: A classe foi reformulada para deixar mais elegante. ;)