2016年版Rubyユーザーエージェント判別・判定
Ruby でスマートフォン・タブレット・PCを判定するクラスを作成しました。
User Agent 判別クラス
# -*- coding: utf-8 -*- class Ua def initialize ua raise ArgumentError unless String===ua @ua = ua.downcase end def tablet? @__tablet ||= @ua.index("windows") && @ua.index("touch") && @ua.index("tablet pc") or @ua.index("ipad") or @ua.index("android") && !@ua.index("mobile") or @ua.index("firefox") && @ua.index("tablet") or @ua.index("kindle") or @ua.index("silk") or @ua.index("playbook") end def mobile? @__mobile ||= @ua.index("windows") && @ua.index("phone") or @ua.index("iphone") or @ua.index("ipod") or @ua.index("android") && @ua.index("mobile") or @ua.index("firefox") && @ua.index("mobile") or @ua.index("blackberry") end def pure_pc? !tablet? && !mobile? end end
使い方サンプル on Rails
@ua = Ua.new request.user_agent @ua.tablet? #=> タブレットかどうか。Windows touch, iPad, Kindle Fire はこちらに含まれる。 @ua.mobile? #=> スマートフォンかどうか。iPhone, Android, Windows Phone など @ua.pure_pc? #=> スマホでもタブレットでもない純粋なPCかどうか.
参考にしたサイト
おまけ
上記コードは、「2chまとめアンテナメーカー」というWebサービスで利用してます。
antena-maker.nekotool.com