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/switch.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, Switch, 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.



52
53
54
# File 'lib/browser/device.rb', line 52

def initialize(ua)
  @ua = ua
end

Instance Attribute Details

#uaObject (readonly)

Returns the value of attribute ua.



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

def ua
  @ua
end

Class Method Details

.matchersObject

Hold the list of device matchers. Order is important.



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

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

Instance Method Details

#blackberry_playbook?Boolean Also known as: playbook?

Returns:

  • (Boolean)


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

def blackberry_playbook?
  id == :playbook
end

#console?Boolean

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

Returns:

  • (Boolean)


188
189
190
# File 'lib/browser/device.rb', line 188

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

#idObject



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

def id
  subject.id
end

#ipad?Boolean

Returns:

  • (Boolean)


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

def ipad?
  id == :ipad
end

#iphone?Boolean

Returns:

  • (Boolean)


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

def iphone?
  id == :iphone
end

#ipod_touch?Boolean Also known as: ipod?

Returns:

  • (Boolean)


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

def ipod_touch?
  id == :ipod_touch
end

#kindle?Boolean

Returns:

  • (Boolean)


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

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

#kindle_fire?Boolean

Returns:

  • (Boolean)


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

def kindle_fire?
  id == :kindle_fire
end

#mobile?Boolean

Detect if browser is mobile.

Returns:

  • (Boolean)


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

def mobile?
  detect_mobile? && !tablet?
end

#nameObject



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

def name
  subject.name
end

#nintendo?Boolean

Detect if browser is Nintendo.

Returns:

  • (Boolean)


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

def nintendo?
  wii? || wiiu? || switch?
end

#nintendo_switch?Boolean Also known as: switch?

Returns:

  • (Boolean)


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

def nintendo_switch?
  id == :switch
end

#nintendo_wii?Boolean Also known as: wii?

Returns:

  • (Boolean)


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

def nintendo_wii?
  id == :wii
end

#nintendo_wiiu?Boolean Also known as: wiiu?

Returns:

  • (Boolean)


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

def nintendo_wiiu?
  id == :wiiu
end

#playstation?Boolean

Detect if browser is running under PlayStation.

Returns:

  • (Boolean)


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

def playstation?
  ps3? || ps4?
end

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

Returns:

  • (Boolean)


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

def playstation_vita?
  id == :psvita
end

#ps3?Boolean Also known as: playstation3?

Returns:

  • (Boolean)


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

def ps3?
  id == :ps3
end

#ps4?Boolean Also known as: playstation4?

Returns:

  • (Boolean)


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

def ps4?
  id == :ps4
end

#psp?Boolean

Returns:

  • (Boolean)


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

def psp?
  id == :psp
end

#silk?Boolean

Detect if browser is Silk.

Returns:

  • (Boolean)


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

def silk?
  ua =~ /Silk/
end

#subjectObject



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

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

#surface?Boolean

Returns:

  • (Boolean)


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

def surface?
  id == :surface
end

#tablet?Boolean

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

Returns:

  • (Boolean)


72
73
74
75
76
77
# File 'lib/browser/device.rb', line 72

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

#tv?Boolean

Returns:

  • (Boolean)


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

def tv?
  id == :tv
end

#unknown?Boolean

Returns:

  • (Boolean)


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

def unknown?
  id == :unknown
end

#xbox?Boolean

Detect if browser is running under Xbox.

Returns:

  • (Boolean)


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

def xbox?
  ua =~ /Xbox/
end

#xbox_360?Boolean

Detect if browser is running under Xbox 360.

Returns:

  • (Boolean)


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

def xbox_360?
  id == :xbox_360
end

#xbox_one?Boolean

Detect if browser is running under Xbox One.

Returns:

  • (Boolean)


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

def xbox_one?
  id == :xbox_one
end