Module: Mobvious

Defined in:
lib/mobvious.rb,
lib/mobvious/config.rb,
lib/mobvious/manager.rb,
lib/mobvious/version.rb,
lib/mobvious/strategies/url.rb,
lib/mobvious/strategies/cookie.rb,
lib/mobvious/strategies/mobileesp.rb

Overview

A library (Rack middleware) to detect device types (mobile, tablet, desktop etc.) from requests.

See Manager for the actual Rack middleware.

See Config for configuration options (and set them via calling Mobvious.config).

See Strategies for predefined strategies or roll out your own.

Defined Under Namespace

Modules: Strategies Classes: Config, Manager

Constant Summary collapse

VERSION =
"0.1.3"

Class Method Summary collapse

Class Method Details

.configObject

An accessor for the global Mobvious configuration object. See Config for configuration options.



25
26
27
# File 'lib/mobvious.rb', line 25

def self.config
  @config ||= Mobvious::Config.new
end

.configure(&block) ⇒ Object

A configuration method, evaluates the block in the context of the Mobvious.config object.



17
18
19
20
21
# File 'lib/mobvious.rb', line 17

def self.configure &block
  raise "Configure method needs to be passed a block." unless block_given?

  config.instance_eval &block
end

.strategy(class_name) ⇒ Object

An accessor for getting an instance of a strategy that is currently in use. (Must be present in current Mobvious.config.strategies.)

Parameters:

  • class_name (String)

    a class name of the wanted strategy object



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/mobvious.rb', line 32

def self.strategy(class_name)
  matching_strategies = self.config.strategies.select do
    |strategy| strategy.class.name.split('::').last == class_name
  end

  if matching_strategies.size == 1
    matching_strategies.first
  else
    matching_strategies
  end
end