Class: Browser::Platform
- Inherits:
-
Object
show all
- Includes:
- DetectVersion
- Defined in:
- lib/browser/platform.rb,
lib/browser/platform/ios.rb,
lib/browser/platform/mac.rb,
lib/browser/platform/base.rb,
lib/browser/platform/linux.rb,
lib/browser/platform/other.rb,
lib/browser/platform/android.rb,
lib/browser/platform/windows.rb,
lib/browser/platform/adobe_air.rb,
lib/browser/platform/chrome_os.rb,
lib/browser/platform/blackberry.rb,
lib/browser/platform/firefox_os.rb,
lib/browser/platform/windows_phone.rb,
lib/browser/platform/windows_mobile.rb
Defined Under Namespace
Classes: AdobeAir, Android, Base, BlackBerry, ChromeOS, FirefoxOS, IOS, Linux, Mac, Other, Windows, WindowsMobile, WindowsPhone
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(ua) ⇒ Platform
Returns a new instance of Platform.
8
9
10
|
# File 'lib/browser/platform.rb', line 8
def initialize(ua)
@ua = ua
end
|
Instance Attribute Details
#ua ⇒ Object
Returns the value of attribute ua.
6
7
8
|
# File 'lib/browser/platform.rb', line 6
def ua
@ua
end
|
Instance Method Details
#==(other) ⇒ Object
93
94
95
|
# File 'lib/browser/platform.rb', line 93
def ==(other)
id == other
end
|
#adobe_air? ⇒ Boolean
29
30
31
|
# File 'lib/browser/platform.rb', line 29
def adobe_air?
id == :adobe_air
end
|
#android?(expected_version = nil) ⇒ Boolean
37
38
39
|
# File 'lib/browser/platform.rb', line 37
def android?(expected_version = nil)
id == :android && detect_version?(version, expected_version)
end
|
#blackberry?(expected_version = nil) ⇒ Boolean
65
66
67
|
# File 'lib/browser/platform.rb', line 65
def blackberry?(expected_version = nil)
id == :blackberry && detect_version?(version, expected_version)
end
|
#chrome_os? ⇒ Boolean
33
34
35
|
# File 'lib/browser/platform.rb', line 33
def chrome_os?
id == :chrome_os
end
|
#firefox_os? ⇒ Boolean
57
58
59
|
# File 'lib/browser/platform.rb', line 57
def firefox_os?
id == :firefox_os
end
|
#id ⇒ Object
77
78
79
|
# File 'lib/browser/platform.rb', line 77
def id
subject.id
end
|
#ios?(expected_version = nil) ⇒ Boolean
61
62
63
|
# File 'lib/browser/platform.rb', line 61
def ios?(expected_version = nil)
id == :ios && detect_version?(version, expected_version)
end
|
#ios_app? ⇒ Boolean
Detect if running on iOS app webview.
98
99
100
|
# File 'lib/browser/platform.rb', line 98
def ios_app?
ios? && !ua.include?("Safari")
end
|
#ios_webview? ⇒ Boolean
Detect if is iOS webview.
103
104
105
|
# File 'lib/browser/platform.rb', line 103
def ios_webview?
ios_app?
end
|
#linux? ⇒ Boolean
45
46
47
|
# File 'lib/browser/platform.rb', line 45
def linux?
id == :linux
end
|
#mac? ⇒ Boolean
49
50
51
|
# File 'lib/browser/platform.rb', line 49
def mac?
id == :mac
end
|
#name ⇒ Object
85
86
87
|
# File 'lib/browser/platform.rb', line 85
def name
subject.name
end
|
#other? ⇒ Boolean
41
42
43
|
# File 'lib/browser/platform.rb', line 41
def other?
id == :other
end
|
#subject ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/browser/platform.rb', line 12
def subject
@subject ||= [
AdobeAir.new(ua),
ChromeOS.new(ua),
WindowsMobile.new(ua),
WindowsPhone.new(ua),
Android.new(ua),
BlackBerry.new(ua),
IOS.new(ua),
Mac.new(ua),
FirefoxOS.new(ua),
Windows.new(ua),
Linux.new(ua),
Other.new(ua)
].find(&:match?)
end
|
#to_s ⇒ Object
89
90
91
|
# File 'lib/browser/platform.rb', line 89
def to_s
id.to_s
end
|
#version ⇒ Object
81
82
83
|
# File 'lib/browser/platform.rb', line 81
def version
subject.version
end
|
#windows10? ⇒ Boolean
128
129
130
|
# File 'lib/browser/platform.rb', line 128
def windows10?
windows? && ua =~ /Windows NT 10/
end
|
#windows7? ⇒ Boolean
116
117
118
|
# File 'lib/browser/platform.rb', line 116
def windows7?
windows? && ua =~ /Windows NT 6\.1/
end
|
#windows8? ⇒ Boolean
120
121
122
|
# File 'lib/browser/platform.rb', line 120
def windows8?
windows? && ua =~ /Windows NT 6\.[2-3]/
end
|
#windows8_1? ⇒ Boolean
124
125
126
|
# File 'lib/browser/platform.rb', line 124
def windows8_1?
windows? && ua =~ /Windows NT 6\.3/
end
|
#windows? ⇒ Boolean
53
54
55
|
# File 'lib/browser/platform.rb', line 53
def windows?
id == :windows
end
|
#windows_mobile?(expected_version = nil) ⇒ Boolean
73
74
75
|
# File 'lib/browser/platform.rb', line 73
def windows_mobile?(expected_version = nil)
id == :windows_mobile && detect_version?(version, expected_version)
end
|
#windows_phone?(expected_version = nil) ⇒ Boolean
69
70
71
|
# File 'lib/browser/platform.rb', line 69
def windows_phone?(expected_version = nil)
id == :windows_phone && detect_version?(version, expected_version)
end
|
#windows_rt? ⇒ Boolean
132
133
134
|
# File 'lib/browser/platform.rb', line 132
def windows_rt?
windows8? && ua =~ /ARM/
end
|
#windows_touchscreen_desktop? ⇒ Boolean
149
150
151
|
# File 'lib/browser/platform.rb', line 149
def windows_touchscreen_desktop?
windows? && ua =~ /Touch/
end
|
#windows_vista? ⇒ Boolean
112
113
114
|
# File 'lib/browser/platform.rb', line 112
def windows_vista?
windows? && ua =~ /Windows NT 6\.0/
end
|
#windows_wow64? ⇒ Boolean
141
142
143
|
# File 'lib/browser/platform.rb', line 141
def windows_wow64?
windows? && ua =~ /WOW64/i
end
|
#windows_x64? ⇒ Boolean
Detect if current platform is Windows in 64-bit architecture.
137
138
139
|
# File 'lib/browser/platform.rb', line 137
def windows_x64?
windows? && ua =~ /(Win64|x64|Windows NT 5\.2)/
end
|
#windows_x64_inclusive? ⇒ Boolean
145
146
147
|
# File 'lib/browser/platform.rb', line 145
def windows_x64_inclusive?
windows_x64? || windows_wow64?
end
|
#windows_xp? ⇒ Boolean
108
109
110
|
# File 'lib/browser/platform.rb', line 108
def windows_xp?
windows? && ua =~ /Windows NT 5\.[12]/
end
|