module Mobu::DetectMobile
Constants
- MOBILE_USER_AGENTS
List of mobile agents from mobile_fu: github.com/brendanlim/mobile-fu/blob/master/lib/mobile_fu.rb
- TABLET_USER_AGENTS
Private Instance Methods
_view_url(preference)
click to toggle source
preference: m, f (mobile, full)
# File lib/mobu/detect_mobile.rb, line 51 def _view_url(preference) uri = URI(request.url) query = Rack::Utils.parse_nested_query(uri.query) query["prefer"] = preference uri.query = query.to_param uri.to_s end
check_mobile_site()
click to toggle source
# File lib/mobu/detect_mobile.rb, line 87 def check_mobile_site case params.delete(:prefer) when "f" session[:prefer_full_site] = 1 when "m" session.delete :prefer_full_site end if mobile_request? prepend_view_path mobile_views_path elsif tablet_request? prepend_view_path tablet_views_path end end
force_full_site()
click to toggle source
# File lib/mobu/detect_mobile.rb, line 59 def force_full_site session[:prefer_full_site] end
mobile_browser?()
click to toggle source
# File lib/mobu/detect_mobile.rb, line 71 def mobile_browser? user_agent_matches(MOBILE_USER_AGENTS) end
mobile_request?()
click to toggle source
# File lib/mobu/detect_mobile.rb, line 63 def mobile_request? if defined?(@mobile_request) @mobile_request else @mobile_request = !force_full_site && !tablet_request? && mobile_browser? end end
mobile_views_path()
click to toggle source
# File lib/mobu/detect_mobile.rb, line 34 def mobile_views_path @@mobile_views_path ||= Rails.root + 'app' + 'views_mobile' end
prefer_full_site_url()
click to toggle source
# File lib/mobu/detect_mobile.rb, line 42 def prefer_full_site_url _view_url "f" end
prefer_mobile_site_url()
click to toggle source
# File lib/mobu/detect_mobile.rb, line 46 def prefer_mobile_site_url _view_url "m" end
tablet_browser?()
click to toggle source
# File lib/mobu/detect_mobile.rb, line 83 def tablet_browser? user_agent_matches(TABLET_USER_AGENTS) end
tablet_request?()
click to toggle source
# File lib/mobu/detect_mobile.rb, line 75 def tablet_request? if defined?(@tablet_request) @tablet_request else @tablet_request = tablet_browser? end end
tablet_views_path()
click to toggle source
# File lib/mobu/detect_mobile.rb, line 38 def tablet_views_path @@tablet_views_path ||= Rails.root + 'app' + 'views_tablet' end
user_agent_matches(regex)
click to toggle source
# File lib/mobu/detect_mobile.rb, line 102 def user_agent_matches(regex) !!( request.user_agent.to_s.downcase =~ /(#{regex})/ ) end