Sinatraでブラウザーのバージョン判定
Sinatraでブラウザーのバージョンを判定する方法をメモ。最近公開したはてなスターカウンターは、ある程度作った後にIE7以下で動かないことが発覚した。あるある。で、仕方ないので当面、IE7以下のブラウザーは対応してませんのメッセージをだそうと思って、そのやり方を調べた。
request.user_agent
ググってもSinatraを使ったそれっぽいページが見つからなかったので、とりあえず、request.user_agent
からIE7~5あたりの文字列とマッチする場合は未対応用HTMLを、それ以外は通常のHTMLを表示するように、以下のように書いた。
get '/' do
ua = request.user_agent
if ["MSIE 7.0", "MSIE 6.0", "MSIE 5.0"].find {|s| ua.include?(s) }
slim :error_browser_version
else
slim :index
end
end
ユーザーエージェントの文字列はこちらのページで調べた。すごく適当に書いたけど、どういう書き方が一般的なんだろう。もしかしたら、ブラウザー判定のためのSinatra用ライブラリとかあったりするのかな?