Class: Browser::Device

Inherits:
Object
  • Object
show all
Defined in:
lib/browser/device.rb,
lib/browser/device/tv.rb,
lib/browser/device/psp.rb,
lib/browser/device/wii.rb,
lib/browser/device/base.rb,
lib/browser/device/ipad.rb,
lib/browser/device/wiiu.rb,
lib/browser/device/iphone.rb,
lib/browser/device/kindle.rb,
lib/browser/device/psvita.rb,
lib/browser/device/surface.rb,
lib/browser/device/unknown.rb,
lib/browser/device/xbox_360.rb,
lib/browser/device/xbox_one.rb,
lib/browser/device/ipod_touch.rb,
lib/browser/device/kindle_fire.rb,
lib/browser/device/playstation3.rb,
lib/browser/device/playstation4.rb,
lib/browser/device/blackberry_playbook.rb

Defined Under Namespace

Classes: Base, BlackBerryPlaybook, Ipad, Iphone, IpodTouch, Kindle, KindleFire, PSP, PSVita, PlayStation3, PlayStation4, Surface, TV, Unknown, Wii, WiiU, Xbox360, XboxOne

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ua) ⇒ Device

Returns a new instance of Device.



6
7
8
# File 'lib/browser/device.rb', line 6

def initialize(ua)
  @ua = ua
end

Instance Attribute Details

#uaObject (readonly)

Returns the value of attribute ua.



4
5
6
# File 'lib/browser/device.rb', line 4

def ua
  @ua
end

Instance Method Details

#blackberry_playbook?Boolean Also known as: playbook?

Returns:

  • (Boolean)


110
111
112
# File 'lib/browser/device.rb', line 110

def blackberry_playbook?
  id == :playbook
end

#console?Boolean

Detect if browser is console (currently Xbox, PlayStation, or Nintendo).

Returns:

  • (Boolean)


154
155
156
# File 'lib/browser/device.rb', line 154

def console?
  xbox? || playstation? || nintendo?
end

#idObject



32
33
34
# File 'lib/browser/device.rb', line 32

def id
  subject.id
end

#ipad?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/browser/device.rb', line 54

def ipad?
  id == :ipad
end

#iphone?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/browser/device.rb', line 67

def iphone?
  id == :iphone
end

#ipod_touch?Boolean Also known as: ipod?

Returns:

  • (Boolean)


62
63
64
# File 'lib/browser/device.rb', line 62

def ipod_touch?
  id == :ipod_touch
end

#kindle?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/browser/device.rb', line 92

def kindle?
  id == :kindle || kindle_fire?
end

#kindle_fire?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/browser/device.rb', line 96

def kindle_fire?
  id == :kindle_fire
end

#mobile?Boolean

Detect if browser is mobile.

Returns:

  • (Boolean)


50
51
52
# File 'lib/browser/device.rb', line 50

def mobile?
  detect_mobile? && !tablet?
end

#nameObject



36
37
38
# File 'lib/browser/device.rb', line 36

def name
  subject.name
end

#nintendo?Boolean

Detect if browser is Nintendo.

Returns:

  • (Boolean)


149
150
151
# File 'lib/browser/device.rb', line 149

def nintendo?
  wii? || wiiu?
end

#nintendo_wii?Boolean Also known as: wii?

Returns:

  • (Boolean)


100
101
102
# File 'lib/browser/device.rb', line 100

def nintendo_wii?
  id == :wii
end

#nintendo_wiiu?Boolean Also known as: wiiu?

Returns:

  • (Boolean)


105
106
107
# File 'lib/browser/device.rb', line 105

def nintendo_wiiu?
  id == :wiiu
end

#playstation?Boolean

Detect if browser is running under PlayStation.

Returns:

  • (Boolean)


144
145
146
# File 'lib/browser/device.rb', line 144

def playstation?
  ps3? || ps4?
end

#playstation_vita?Boolean Also known as: vita?, psp_vita?

Returns:

  • (Boolean)


86
87
88
# File 'lib/browser/device.rb', line 86

def playstation_vita?
  id == :psvita
end

#ps3?Boolean Also known as: playstation3?

Returns:

  • (Boolean)


71
72
73
# File 'lib/browser/device.rb', line 71

def ps3?
  id == :ps3
end

#ps4?Boolean Also known as: playstation4?

Returns:

  • (Boolean)


76
77
78
# File 'lib/browser/device.rb', line 76

def ps4?
  id == :ps4
end

#psp?Boolean

Returns:

  • (Boolean)


82
83
84
# File 'lib/browser/device.rb', line 82

def psp?
  id == :psp
end

#silk?Boolean

Detect if browser is Silk.

Returns:

  • (Boolean)


124
125
126
# File 'lib/browser/device.rb', line 124

def silk?
  ua =~ /Silk/
end

#subjectObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/browser/device.rb', line 10

def subject
  @subject ||= [
    XboxOne.new(ua),
    Xbox360.new(ua),
    Surface.new(ua),
    TV.new(ua),
    BlackBerryPlaybook.new(ua),
    WiiU.new(ua),
    Wii.new(ua),
    KindleFire.new(ua),
    Kindle.new(ua),
    PlayStation4.new(ua),
    PlayStation3.new(ua),
    PSVita.new(ua),
    PSP.new(ua),
    Iphone.new(ua),
    Ipad.new(ua),
    IpodTouch.new(ua),
    Unknown.new(ua)
  ].find(&:match?)
end

#surface?Boolean

Returns:

  • (Boolean)


115
116
117
# File 'lib/browser/device.rb', line 115

def surface?
  id == :surface
end

#tablet?Boolean

Detect if browser is tablet (currently iPad, Android, Surface or Playbook).

Returns:

  • (Boolean)


42
43
44
45
46
47
# File 'lib/browser/device.rb', line 42

def tablet?
  ipad? ||
    (platform.android? && !detect_mobile?) ||
    surface? ||
    playbook?
end

#tv?Boolean

Returns:

  • (Boolean)


119
120
121
# File 'lib/browser/device.rb', line 119

def tv?
  id == :tv
end

#unknown?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/browser/device.rb', line 58

def unknown?
  id == :unknown
end

#xbox?Boolean

Detect if browser is running under Xbox.

Returns:

  • (Boolean)


129
130
131
# File 'lib/browser/device.rb', line 129

def xbox?
  ua =~ /Xbox/
end

#xbox_360?Boolean

Detect if browser is running under Xbox 360.

Returns:

  • (Boolean)


134
135
136
# File 'lib/browser/device.rb', line 134

def xbox_360?
  id == :xbox_360
end

#xbox_one?Boolean

Detect if browser is running under Xbox One.

Returns:

  • (Boolean)


139
140
141
# File 'lib/browser/device.rb', line 139

def xbox_one?
  id == :xbox_one
end