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.



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

def initialize(ua)
  @ua = ua
end

Instance Attribute Details

#uaObject (readonly)

Returns the value of attribute ua.



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

def ua
  @ua
end

Class Method Details

.matchersObject

Hold the list of device matchers. Order is important.



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

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

Instance Method Details

#blackberry_playbook?Boolean Also known as: playbook?

Returns:

  • (Boolean)


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

def blackberry_playbook?
  id == :playbook
end

#console?Boolean

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

Returns:

  • (Boolean)


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

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

#idObject



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

def id
  subject.id
end

#ipad?Boolean

Returns:

  • (Boolean)


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

def ipad?
  id == :ipad
end

#iphone?Boolean

Returns:

  • (Boolean)


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

def iphone?
  id == :iphone
end

#ipod_touch?Boolean Also known as: ipod?

Returns:

  • (Boolean)


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

def ipod_touch?
  id == :ipod_touch
end

#kindle?Boolean

Returns:

  • (Boolean)


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

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

#kindle_fire?Boolean

Returns:

  • (Boolean)


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

def kindle_fire?
  id == :kindle_fire
end

#mobile?Boolean

Detect if browser is mobile.

Returns:

  • (Boolean)


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

def mobile?
  detect_mobile? && !tablet?
end

#nameObject



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

def name
  subject.name
end

#nintendo?Boolean

Detect if browser is Nintendo.

Returns:

  • (Boolean)


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

def nintendo?
  wii? || wiiu?
end

#nintendo_wii?Boolean Also known as: wii?

Returns:

  • (Boolean)


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

def nintendo_wii?
  id == :wii
end

#nintendo_wiiu?Boolean Also known as: wiiu?

Returns:

  • (Boolean)


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

def nintendo_wiiu?
  id == :wiiu
end

#playstation?Boolean

Detect if browser is running under PlayStation.

Returns:

  • (Boolean)


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

def playstation?
  ps3? || ps4?
end

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

Returns:

  • (Boolean)


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

def playstation_vita?
  id == :psvita
end

#ps3?Boolean Also known as: playstation3?

Returns:

  • (Boolean)


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

def ps3?
  id == :ps3
end

#ps4?Boolean Also known as: playstation4?

Returns:

  • (Boolean)


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

def ps4?
  id == :ps4
end

#psp?Boolean

Returns:

  • (Boolean)


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

def psp?
  id == :psp
end

#silk?Boolean

Detect if browser is Silk.

Returns:

  • (Boolean)


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

def silk?
  ua =~ /Silk/
end

#subjectObject



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

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

#surface?Boolean

Returns:

  • (Boolean)


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

def surface?
  id == :surface
end

#tablet?Boolean

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

Returns:

  • (Boolean)


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

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

#tv?Boolean

Returns:

  • (Boolean)


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

def tv?
  id == :tv
end

#unknown?Boolean

Returns:

  • (Boolean)


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

def unknown?
  id == :unknown
end

#xbox?Boolean

Detect if browser is running under Xbox.

Returns:

  • (Boolean)


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

def xbox?
  ua =~ /Xbox/
end

#xbox_360?Boolean

Detect if browser is running under Xbox 360.

Returns:

  • (Boolean)


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

def xbox_360?
  id == :xbox_360
end

#xbox_one?Boolean

Detect if browser is running under Xbox One.

Returns:

  • (Boolean)


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

def xbox_one?
  id == :xbox_one
end