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
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(ua) ⇒ Platform
Returns a new instance of Platform.
42
43
44
|
# File 'lib/browser/platform.rb', line 42
def initialize(ua)
@ua = ua
end
|
Instance Attribute Details
#ua ⇒ Object
Returns the value of attribute ua.
21
22
23
|
# File 'lib/browser/platform.rb', line 21
def ua
@ua
end
|
Class Method Details
.matchers ⇒ Object
Hold the list of platform matchers. Order is important.
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/browser/platform.rb', line 25
def self.matchers
@matchers ||= [
AdobeAir,
ChromeOS,
WindowsMobile,
WindowsPhone,
Android,
BlackBerry,
IOS,
Mac,
FirefoxOS,
Windows,
Linux,
Other
]
end
|
Instance Method Details
#==(other) ⇒ Object
116
117
118
|
# File 'lib/browser/platform.rb', line 116
def ==(other)
id == other
end
|
#adobe_air?(expected_version = nil) ⇒ Boolean
52
53
54
|
# File 'lib/browser/platform.rb', line 52
def adobe_air?(expected_version = nil)
id == :adobe_air && detect_version?(version, expected_version)
end
|
#android?(expected_version = nil) ⇒ Boolean
60
61
62
|
# File 'lib/browser/platform.rb', line 60
def android?(expected_version = nil)
id == :android && detect_version?(version, expected_version)
end
|
#android_app? ⇒ Boolean
Also known as:
android_webview?
132
133
134
|
# File 'lib/browser/platform.rb', line 132
def android_app?
android? && ua =~ /\bwv\b/
end
|
#blackberry?(expected_version = nil) ⇒ Boolean
88
89
90
|
# File 'lib/browser/platform.rb', line 88
def blackberry?(expected_version = nil)
id == :blackberry && detect_version?(version, expected_version)
end
|
#chrome_os?(expected_version = nil) ⇒ Boolean
56
57
58
|
# File 'lib/browser/platform.rb', line 56
def chrome_os?(expected_version = nil)
id == :chrome_os && detect_version?(version, expected_version)
end
|
#firefox_os? ⇒ Boolean
80
81
82
|
# File 'lib/browser/platform.rb', line 80
def firefox_os?
id == :firefox_os
end
|
#id ⇒ Object
100
101
102
|
# File 'lib/browser/platform.rb', line 100
def id
subject.id
end
|
#ios?(expected_version = nil) ⇒ Boolean
84
85
86
|
# File 'lib/browser/platform.rb', line 84
def ios?(expected_version = nil)
id == :ios && detect_version?(version, expected_version)
end
|
#ios_app? ⇒ Boolean
Detect if running on iOS app webview.
121
122
123
|
# File 'lib/browser/platform.rb', line 121
def ios_app?
ios? && !ua.include?("Safari")
end
|
#ios_webview? ⇒ Boolean
Detect if is iOS webview.
126
127
128
|
# File 'lib/browser/platform.rb', line 126
def ios_webview?
ios_app?
end
|
#linux? ⇒ Boolean
68
69
70
|
# File 'lib/browser/platform.rb', line 68
def linux?
id == :linux
end
|
#mac?(expected_version = nil) ⇒ Boolean
72
73
74
|
# File 'lib/browser/platform.rb', line 72
def mac?(expected_version = nil)
id == :mac && detect_version?(version, expected_version)
end
|
#name ⇒ Object
108
109
110
|
# File 'lib/browser/platform.rb', line 108
def name
subject.name
end
|
#other? ⇒ Boolean
64
65
66
|
# File 'lib/browser/platform.rb', line 64
def other?
id == :other
end
|
#subject ⇒ Object
46
47
48
49
50
|
# File 'lib/browser/platform.rb', line 46
def subject
@subject ||= self.class.matchers
.map {|matcher| matcher.new(ua) }
.find(&:match?)
end
|
#to_s ⇒ Object
112
113
114
|
# File 'lib/browser/platform.rb', line 112
def to_s
id.to_s
end
|
#version ⇒ Object
104
105
106
|
# File 'lib/browser/platform.rb', line 104
def version
subject.version
end
|
#windows10? ⇒ Boolean
158
159
160
|
# File 'lib/browser/platform.rb', line 158
def windows10?
windows? && ua =~ /Windows NT 10/
end
|
#windows7? ⇒ Boolean
146
147
148
|
# File 'lib/browser/platform.rb', line 146
def windows7?
windows? && ua =~ /Windows NT 6\.1/
end
|
#windows8? ⇒ Boolean
150
151
152
|
# File 'lib/browser/platform.rb', line 150
def windows8?
windows? && ua =~ /Windows NT 6\.[2-3]/
end
|
#windows8_1? ⇒ Boolean
154
155
156
|
# File 'lib/browser/platform.rb', line 154
def windows8_1?
windows? && ua =~ /Windows NT 6\.3/
end
|
#windows?(expected_version = nil) ⇒ Boolean
76
77
78
|
# File 'lib/browser/platform.rb', line 76
def windows?(expected_version = nil)
id == :windows && detect_version?(version, expected_version)
end
|
#windows_mobile?(expected_version = nil) ⇒ Boolean
96
97
98
|
# File 'lib/browser/platform.rb', line 96
def windows_mobile?(expected_version = nil)
id == :windows_mobile && detect_version?(version, expected_version)
end
|
#windows_phone?(expected_version = nil) ⇒ Boolean
92
93
94
|
# File 'lib/browser/platform.rb', line 92
def windows_phone?(expected_version = nil)
id == :windows_phone && detect_version?(version, expected_version)
end
|
#windows_rt? ⇒ Boolean
162
163
164
|
# File 'lib/browser/platform.rb', line 162
def windows_rt?
windows8? && ua =~ /ARM/
end
|
#windows_touchscreen_desktop? ⇒ Boolean
179
180
181
|
# File 'lib/browser/platform.rb', line 179
def windows_touchscreen_desktop?
windows? && ua =~ /Touch/
end
|
#windows_vista? ⇒ Boolean
142
143
144
|
# File 'lib/browser/platform.rb', line 142
def windows_vista?
windows? && ua =~ /Windows NT 6\.0/
end
|
#windows_wow64? ⇒ Boolean
171
172
173
|
# File 'lib/browser/platform.rb', line 171
def windows_wow64?
windows? && ua =~ /WOW64/i
end
|
#windows_x64? ⇒ Boolean
Detect if current platform is Windows in 64-bit architecture.
167
168
169
|
# File 'lib/browser/platform.rb', line 167
def windows_x64?
windows? && ua =~ /(Win64|x64|Windows NT 5\.2)/
end
|
#windows_x64_inclusive? ⇒ Boolean
175
176
177
|
# File 'lib/browser/platform.rb', line 175
def windows_x64_inclusive?
windows_x64? || windows_wow64?
end
|
#windows_xp? ⇒ Boolean
138
139
140
|
# File 'lib/browser/platform.rb', line 138
def windows_xp?
windows? && ua =~ /Windows NT 5\.[12]/
end
|