Module: Schmobile::Filters
- Defined in:
- lib/schmobile/filters.rb,
lib/schmobile/filters/mobile_session.rb,
lib/schmobile/filters/is_mobile_param.rb,
lib/schmobile/filters/mobile_user_agent.rb
Overview
Filters are tests that get run against a request to determine if it’s a mobile request or not. A filter can return true, false or nil. The first non-nil value of the filter chain is the one that gets used and this also gets used to mark the session as a “mobile session”
You can manipulate the chain to add new conditions that check on e.g. request format.
Defined Under Namespace
Modules: IsMobileParam, MobileSession, MobileUserAgent
Constant Summary collapse
- CHAIN =
[ Schmobile::Filters::IsMobileParam, # Must come before session check Schmobile::Filters::MobileSession, Schmobile::Filters::MobileUserAgent # Always returns either true or false ]
Class Method Summary collapse
Class Method Details
.apply(request) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/schmobile/filters.rb', line 18 def self.apply(request) Schmobile::Filters::CHAIN.each do |filter| result = filter.call(request) unless result.nil? request.session[Schmobile::IS_MOBILE] = result break end end request.session[Schmobile::IS_MOBILE] ||= false end |