Sha256: 47902342fd07910b01a4da9657da25af7fa1f1c639deae45ce5cc19d61ffb184

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

require 'singleton'
module Mobylette
  class Devices
    include Singleton

    def initialize
      @devices = {
        android:  %r{android}i,
        android2: %r{android\s+2\.}i,
        android3: %r{android\s+3\.}i,
        android4: %r{android\s+4\.}i,
        iphone:   %r{iphone}i,
        ipad:     %r{ipad}i,
        ios:      %r{iphone|ipad}i,
        ios3:     %r{(iphone|ipad)\s+os\s+3_},
        ios4:     %r{(iphone|ipad)\s+os\s+4_},
        ios5:     %r{(iphone|ipad)\s+os\s+5_},
        ios6:     %r{(iphone|ipad)\s+os\s+6_}
      }
    end

    # Register a new device to the
    # devices list
    #
    # devices - hash defining a new device and it's regex.
    #           you may assign multiple devices here.
    #
    # Examples:
    #
    #   register(iphone: /iphone/i)
    #   register(iphone: /iphone/i, ipad: /ipad/i)
    #
    def register(devices)
      @devices.merge! devices
    end

    # Returns the regex for the device
    #
    def device(device)
      @devices[device] 
    end
  end

  def self.devices
    Devices.instance
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mobylette-3.3.2 lib/mobylette/devices.rb
mobylette-3.3.1 lib/mobylette/devices.rb
mobylette-3.3 lib/mobylette/devices.rb
mobylette-3.2 lib/mobylette/devices.rb
mobylette-3.1 lib/mobylette/devices.rb
mobylette-3.0 lib/mobylette/devices.rb