Mobu

Build Status Code Climate Gem Version

Mobu provides a Rails controller concern called DetectMobile. Mobu does server-side User Agent detection to categorize requests as mobile, tablet, or default. Mobu modifies your rails view paths based on the request type.

Install

Add this line to your Gemfile:

gem 'mobu'

Include the module in your ApplicationController:

class ApplicationController
  include Mobu::DetectMobile

Create directories for views_mobile and views_tablet:

mkdir app/views_mobile
mkdir app/views_tablet

Usage

Put the view/partial files that you want to override in the appropriate directories.

When you receive a mobile request, your app will first look for view files in app/views_mobile directory, then in app/views.

Alternately, you can switch your rendering logic using the mobile_request? and tablet_request? helper methods in your view files or helpers:

- if mobile_request?
  .small-thing Short Text
- else
  .regular-thing Much Longer Text

To allow mobile users to switch to the full site view, add a link to a mobile view. For example:

app/views_mobile/_footer.haml
= link_to("View Full Site", prefer_full_site_url)

To allow full site users to switch to the mobile view, add a link to a default view. For example:

app/views_mobile/_footer.haml
- if mobile_browser?
  = link_to("View Mobile Site", prefer_mobile_site_url)

Credits

The view path modification technique was taken from this post by Scott W. Bradley.

The user agent regex came from a similar project, Brendan Lim's mobile-fu.