Top Level Namespace
Defined Under Namespace
Modules: DetectBrowserOs
Instance Method Summary collapse
- #detect_browser(user_agent = request.user_agent) ⇒ Object
-
#detect_browser_os(user_agent = request.user_agent) ⇒ Object
The ruby version of the CSS Browser Selector with some additions.
- #detect_os(user_agent = request.user_agent) ⇒ Object
Instance Method Details
#detect_browser(user_agent = request.user_agent) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/detect_browser_os.rb', line 26 def detect_browser(user_agent = request.user_agent) ua = (user_agent || "").downcase case ua when /opera[\/,\s+](\d+)/ o = %W(opera opera#{$1}) o << "mobile" if ua.include?('mini') o.join(" ") when /webtv/ ; "gecko" when /msie (\d+)/ ; "ie ie#{$1}" when /edge\/(\d+)/ ; "gecko edge edge#{$1}" when /trident/ ; "gecko ie#{(ua.match(/rv:(\d+)/) || ['',''])[1]}" when %r{firefox/3.5} ; "gecko ff3 ff3_5" when %r{firefox} ; "gecko firefox ff#{(ua.match(/firefox\/(\d+)/) || ['',''])[1]}" when /konqueror/ ; "konqueror" when /applewebkit\/([\d.]+).? \([^)]*\) ?(?:version\/(\d+))?.*$/ o = %W(webkit) if ua.include?('iron') o << 'iron' elsif ua.include?('chrome') o << 'chrome' else o << "safari safari"+ ($2 || (($1.to_i >= 400) ? '2' : '1')) end o.join(" ") when /gecko/, /mozilla/ ; "gecko" else "" end end |
#detect_browser_os(user_agent = request.user_agent) ⇒ Object
The ruby version of the CSS Browser Selector with some additions
2 3 4 |
# File 'lib/detect_browser_os.rb', line 2 def detect_browser_os(user_agent = request.user_agent) [detect_browser(user_agent), detect_os(user_agent)].compact.join(' ') end |
#detect_os(user_agent = request.user_agent) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/detect_browser_os.rb', line 6 def detect_os(user_agent = request.user_agent) ua = (user_agent || "").downcase if ua.include?('iphone') 'iphone' elsif ua.include?('ipad') 'ipad' elsif ua.include?('ipod') 'ipod' elsif ua.include?('mac') || ua.include?('darwin') 'mac' elsif ua.include?('x11') || ua.include?('linux') 'linux' elsif ua.include?('win') 'win' else nil end end |