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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ua) ⇒ Device

Returns a new instance of Device.



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

def initialize(ua)
  @ua = ua
end

Instance Attribute Details

#uaObject (readonly)

Returns the value of attribute ua.



24
25
26
# File 'lib/browser/device.rb', line 24

def ua
  @ua
end

Class Method Details

.matchersObject

Hold the list of device matchers. Order is important.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/browser/device.rb', line 28

def self.matchers
  @matchers ||= [
    XboxOne,
    Xbox360,
    Surface,
    TV,
    BlackBerryPlaybook,
    WiiU,
    Wii,
    KindleFire,
    Kindle,
    PlayStation4,
    PlayStation3,
    PSVita,
    PSP,
    Ipad,
    Iphone,
    IpodTouch,
    Unknown
  ]
end

Instance Method Details

#blackberry_playbook?Boolean Also known as: playbook?

Returns:

  • (Boolean)


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

def blackberry_playbook?
  id == :playbook
end

#console?Boolean

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

Returns:

  • (Boolean)


182
183
184
# File 'lib/browser/device.rb', line 182

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

#idObject



60
61
62
# File 'lib/browser/device.rb', line 60

def id
  subject.id
end

#ipad?Boolean

Returns:

  • (Boolean)


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

def ipad?
  id == :ipad
end

#iphone?Boolean

Returns:

  • (Boolean)


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

def iphone?
  id == :iphone
end

#ipod_touch?Boolean Also known as: ipod?

Returns:

  • (Boolean)


90
91
92
# File 'lib/browser/device.rb', line 90

def ipod_touch?
  id == :ipod_touch
end

#kindle?Boolean

Returns:

  • (Boolean)


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

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

#kindle_fire?Boolean

Returns:

  • (Boolean)


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

def kindle_fire?
  id == :kindle_fire
end

#mobile?Boolean

Detect if browser is mobile.

Returns:

  • (Boolean)


78
79
80
# File 'lib/browser/device.rb', line 78

def mobile?
  detect_mobile? && !tablet?
end

#nameObject



64
65
66
# File 'lib/browser/device.rb', line 64

def name
  subject.name
end

#nintendo?Boolean

Detect if browser is Nintendo.

Returns:

  • (Boolean)


177
178
179
# File 'lib/browser/device.rb', line 177

def nintendo?
  wii? || wiiu?
end

#nintendo_wii?Boolean Also known as: wii?

Returns:

  • (Boolean)


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

def nintendo_wii?
  id == :wii
end

#nintendo_wiiu?Boolean Also known as: wiiu?

Returns:

  • (Boolean)


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

def nintendo_wiiu?
  id == :wiiu
end

#playstation?Boolean

Detect if browser is running under PlayStation.

Returns:

  • (Boolean)


172
173
174
# File 'lib/browser/device.rb', line 172

def playstation?
  ps3? || ps4?
end

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

Returns:

  • (Boolean)


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

def playstation_vita?
  id == :psvita
end

#ps3?Boolean Also known as: playstation3?

Returns:

  • (Boolean)


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

def ps3?
  id == :ps3
end

#ps4?Boolean Also known as: playstation4?

Returns:

  • (Boolean)


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

def ps4?
  id == :ps4
end

#psp?Boolean

Returns:

  • (Boolean)


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

def psp?
  id == :psp
end

#silk?Boolean

Detect if browser is Silk.

Returns:

  • (Boolean)


152
153
154
# File 'lib/browser/device.rb', line 152

def silk?
  ua =~ /Silk/
end

#subjectObject



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

def subject
  @subject ||= self.class.matchers
                   .map {|matcher| matcher.new(ua) }
                   .find(&:match?)
end

#surface?Boolean

Returns:

  • (Boolean)


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

def surface?
  id == :surface
end

#tablet?Boolean

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

Returns:

  • (Boolean)


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

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

#tv?Boolean

Returns:

  • (Boolean)


147
148
149
# File 'lib/browser/device.rb', line 147

def tv?
  id == :tv
end

#unknown?Boolean

Returns:

  • (Boolean)


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

def unknown?
  id == :unknown
end

#xbox?Boolean

Detect if browser is running under Xbox.

Returns:

  • (Boolean)


157
158
159
# File 'lib/browser/device.rb', line 157

def xbox?
  ua =~ /Xbox/
end

#xbox_360?Boolean

Detect if browser is running under Xbox 360.

Returns:

  • (Boolean)


162
163
164
# File 'lib/browser/device.rb', line 162

def xbox_360?
  id == :xbox_360
end

#xbox_one?Boolean

Detect if browser is running under Xbox One.

Returns:

  • (Boolean)


167
168
169
# File 'lib/browser/device.rb', line 167

def xbox_one?
  id == :xbox_one
end