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.
41
42
43
|
# File 'lib/browser/platform.rb', line 41
def initialize(ua)
@ua = ua
end
|
Instance Attribute Details
#ua ⇒ Object
Returns the value of attribute ua.
20
21
22
|
# File 'lib/browser/platform.rb', line 20
def ua
@ua
end
|
Class Method Details
.matchers ⇒ Object
Hold the list of platform matchers. Order is important.
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/browser/platform.rb', line 24
def self.matchers
@matchers ||= [
AdobeAir,
ChromeOS,
WindowsMobile,
WindowsPhone,
Android,
BlackBerry,
IOS,
Mac,
FirefoxOS,
Windows,
Linux,
Other
]
end
|
Instance Method Details
#==(other) ⇒ Object
115
116
117
|
# File 'lib/browser/platform.rb', line 115
def ==(other)
id == other
end
|
#adobe_air? ⇒ Boolean
51
52
53
|
# File 'lib/browser/platform.rb', line 51
def adobe_air?
id == :adobe_air
end
|
#android?(expected_version = nil) ⇒ Boolean
59
60
61
|
# File 'lib/browser/platform.rb', line 59
def android?(expected_version = nil)
id == :android && detect_version?(version, expected_version)
end
|
#blackberry?(expected_version = nil) ⇒ Boolean
87
88
89
|
# File 'lib/browser/platform.rb', line 87
def blackberry?(expected_version = nil)
id == :blackberry && detect_version?(version, expected_version)
end
|
#chrome_os? ⇒ Boolean
55
56
57
|
# File 'lib/browser/platform.rb', line 55
def chrome_os?
id == :chrome_os
end
|
#firefox_os? ⇒ Boolean
79
80
81
|
# File 'lib/browser/platform.rb', line 79
def firefox_os?
id == :firefox_os
end
|
#id ⇒ Object
99
100
101
|
# File 'lib/browser/platform.rb', line 99
def id
subject.id
end
|
#ios?(expected_version = nil) ⇒ Boolean
83
84
85
|
# File 'lib/browser/platform.rb', line 83
def ios?(expected_version = nil)
id == :ios && detect_version?(version, expected_version)
end
|
#ios_app? ⇒ Boolean
Detect if running on iOS app webview.
120
121
122
|
# File 'lib/browser/platform.rb', line 120
def ios_app?
ios? && !ua.include?("Safari")
end
|
#ios_webview? ⇒ Boolean
Detect if is iOS webview.
125
126
127
|
# File 'lib/browser/platform.rb', line 125
def ios_webview?
ios_app?
end
|
#linux? ⇒ Boolean
67
68
69
|
# File 'lib/browser/platform.rb', line 67
def linux?
id == :linux
end
|
#mac?(expected_version = nil) ⇒ Boolean
71
72
73
|
# File 'lib/browser/platform.rb', line 71
def mac?(expected_version = nil)
id == :mac && detect_version?(version, expected_version)
end
|
#name ⇒ Object
107
108
109
|
# File 'lib/browser/platform.rb', line 107
def name
subject.name
end
|
#other? ⇒ Boolean
63
64
65
|
# File 'lib/browser/platform.rb', line 63
def other?
id == :other
end
|
#subject ⇒ Object
45
46
47
48
49
|
# File 'lib/browser/platform.rb', line 45
def subject
@subject ||= self.class.matchers
.map {|matcher| matcher.new(ua) }
.find(&:match?)
end
|
#to_s ⇒ Object
111
112
113
|
# File 'lib/browser/platform.rb', line 111
def to_s
id.to_s
end
|
#version ⇒ Object
103
104
105
|
# File 'lib/browser/platform.rb', line 103
def version
subject.version
end
|
#windows10? ⇒ Boolean
150
151
152
|
# File 'lib/browser/platform.rb', line 150
def windows10?
windows? && ua =~ /Windows NT 10/
end
|
#windows7? ⇒ Boolean
138
139
140
|
# File 'lib/browser/platform.rb', line 138
def windows7?
windows? && ua =~ /Windows NT 6\.1/
end
|
#windows8? ⇒ Boolean
142
143
144
|
# File 'lib/browser/platform.rb', line 142
def windows8?
windows? && ua =~ /Windows NT 6\.[2-3]/
end
|
#windows8_1? ⇒ Boolean
146
147
148
|
# File 'lib/browser/platform.rb', line 146
def windows8_1?
windows? && ua =~ /Windows NT 6\.3/
end
|
#windows?(expected_version = nil) ⇒ Boolean
75
76
77
|
# File 'lib/browser/platform.rb', line 75
def windows?(expected_version = nil)
id == :windows && detect_version?(version, expected_version)
end
|
#windows_mobile?(expected_version = nil) ⇒ Boolean
95
96
97
|
# File 'lib/browser/platform.rb', line 95
def windows_mobile?(expected_version = nil)
id == :windows_mobile && detect_version?(version, expected_version)
end
|
#windows_phone?(expected_version = nil) ⇒ Boolean
91
92
93
|
# File 'lib/browser/platform.rb', line 91
def windows_phone?(expected_version = nil)
id == :windows_phone && detect_version?(version, expected_version)
end
|
#windows_rt? ⇒ Boolean
154
155
156
|
# File 'lib/browser/platform.rb', line 154
def windows_rt?
windows8? && ua =~ /ARM/
end
|
#windows_touchscreen_desktop? ⇒ Boolean
171
172
173
|
# File 'lib/browser/platform.rb', line 171
def windows_touchscreen_desktop?
windows? && ua =~ /Touch/
end
|
#windows_vista? ⇒ Boolean
134
135
136
|
# File 'lib/browser/platform.rb', line 134
def windows_vista?
windows? && ua =~ /Windows NT 6\.0/
end
|
#windows_wow64? ⇒ Boolean
163
164
165
|
# File 'lib/browser/platform.rb', line 163
def windows_wow64?
windows? && ua =~ /WOW64/i
end
|
#windows_x64? ⇒ Boolean
Detect if current platform is Windows in 64-bit architecture.
159
160
161
|
# File 'lib/browser/platform.rb', line 159
def windows_x64?
windows? && ua =~ /(Win64|x64|Windows NT 5\.2)/
end
|
#windows_x64_inclusive? ⇒ Boolean
167
168
169
|
# File 'lib/browser/platform.rb', line 167
def windows_x64_inclusive?
windows_x64? || windows_wow64?
end
|
#windows_xp? ⇒ Boolean
130
131
132
|
# File 'lib/browser/platform.rb', line 130
def windows_xp?
windows? && ua =~ /Windows NT 5\.[12]/
end
|