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.
27
28
29
|
# File 'lib/browser/platform.rb', line 27
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
|
Class Method Details
.matchers ⇒ Object
Hold the list of platform matchers. Order is important.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/browser/platform.rb', line 10
def self.matchers
@matchers ||= [
AdobeAir,
ChromeOS,
WindowsMobile,
WindowsPhone,
Android,
BlackBerry,
IOS,
Mac,
FirefoxOS,
Windows,
Linux,
Other
]
end
|
Instance Method Details
#==(other) ⇒ Object
101
102
103
|
# File 'lib/browser/platform.rb', line 101
def ==(other)
id == other
end
|
#adobe_air? ⇒ Boolean
37
38
39
|
# File 'lib/browser/platform.rb', line 37
def adobe_air?
id == :adobe_air
end
|
#android?(expected_version = nil) ⇒ Boolean
45
46
47
|
# File 'lib/browser/platform.rb', line 45
def android?(expected_version = nil)
id == :android && detect_version?(version, expected_version)
end
|
#blackberry?(expected_version = nil) ⇒ Boolean
73
74
75
|
# File 'lib/browser/platform.rb', line 73
def blackberry?(expected_version = nil)
id == :blackberry && detect_version?(version, expected_version)
end
|
#chrome_os? ⇒ Boolean
41
42
43
|
# File 'lib/browser/platform.rb', line 41
def chrome_os?
id == :chrome_os
end
|
#firefox_os? ⇒ Boolean
65
66
67
|
# File 'lib/browser/platform.rb', line 65
def firefox_os?
id == :firefox_os
end
|
#id ⇒ Object
85
86
87
|
# File 'lib/browser/platform.rb', line 85
def id
subject.id
end
|
#ios?(expected_version = nil) ⇒ Boolean
69
70
71
|
# File 'lib/browser/platform.rb', line 69
def ios?(expected_version = nil)
id == :ios && detect_version?(version, expected_version)
end
|
#ios_app? ⇒ Boolean
Detect if running on iOS app webview.
106
107
108
|
# File 'lib/browser/platform.rb', line 106
def ios_app?
ios? && !ua.include?("Safari")
end
|
#ios_webview? ⇒ Boolean
Detect if is iOS webview.
111
112
113
|
# File 'lib/browser/platform.rb', line 111
def ios_webview?
ios_app?
end
|
#linux? ⇒ Boolean
53
54
55
|
# File 'lib/browser/platform.rb', line 53
def linux?
id == :linux
end
|
#mac? ⇒ Boolean
57
58
59
|
# File 'lib/browser/platform.rb', line 57
def mac?
id == :mac
end
|
#name ⇒ Object
93
94
95
|
# File 'lib/browser/platform.rb', line 93
def name
subject.name
end
|
#other? ⇒ Boolean
49
50
51
|
# File 'lib/browser/platform.rb', line 49
def other?
id == :other
end
|
#subject ⇒ Object
31
32
33
34
35
|
# File 'lib/browser/platform.rb', line 31
def subject
@subject ||= self.class.matchers
.map {|matcher| matcher.new(ua) }
.find(&:match?)
end
|
#to_s ⇒ Object
97
98
99
|
# File 'lib/browser/platform.rb', line 97
def to_s
id.to_s
end
|
#version ⇒ Object
89
90
91
|
# File 'lib/browser/platform.rb', line 89
def version
subject.version
end
|
#windows10? ⇒ Boolean
136
137
138
|
# File 'lib/browser/platform.rb', line 136
def windows10?
windows? && ua =~ /Windows NT 10/
end
|
#windows7? ⇒ Boolean
124
125
126
|
# File 'lib/browser/platform.rb', line 124
def windows7?
windows? && ua =~ /Windows NT 6\.1/
end
|
#windows8? ⇒ Boolean
128
129
130
|
# File 'lib/browser/platform.rb', line 128
def windows8?
windows? && ua =~ /Windows NT 6\.[2-3]/
end
|
#windows8_1? ⇒ Boolean
132
133
134
|
# File 'lib/browser/platform.rb', line 132
def windows8_1?
windows? && ua =~ /Windows NT 6\.3/
end
|
#windows? ⇒ Boolean
61
62
63
|
# File 'lib/browser/platform.rb', line 61
def windows?
id == :windows
end
|
#windows_mobile?(expected_version = nil) ⇒ Boolean
81
82
83
|
# File 'lib/browser/platform.rb', line 81
def windows_mobile?(expected_version = nil)
id == :windows_mobile && detect_version?(version, expected_version)
end
|
#windows_phone?(expected_version = nil) ⇒ Boolean
77
78
79
|
# File 'lib/browser/platform.rb', line 77
def windows_phone?(expected_version = nil)
id == :windows_phone && detect_version?(version, expected_version)
end
|
#windows_rt? ⇒ Boolean
140
141
142
|
# File 'lib/browser/platform.rb', line 140
def windows_rt?
windows8? && ua =~ /ARM/
end
|
#windows_touchscreen_desktop? ⇒ Boolean
157
158
159
|
# File 'lib/browser/platform.rb', line 157
def windows_touchscreen_desktop?
windows? && ua =~ /Touch/
end
|
#windows_vista? ⇒ Boolean
120
121
122
|
# File 'lib/browser/platform.rb', line 120
def windows_vista?
windows? && ua =~ /Windows NT 6\.0/
end
|
#windows_wow64? ⇒ Boolean
149
150
151
|
# File 'lib/browser/platform.rb', line 149
def windows_wow64?
windows? && ua =~ /WOW64/i
end
|
#windows_x64? ⇒ Boolean
Detect if current platform is Windows in 64-bit architecture.
145
146
147
|
# File 'lib/browser/platform.rb', line 145
def windows_x64?
windows? && ua =~ /(Win64|x64|Windows NT 5\.2)/
end
|
#windows_x64_inclusive? ⇒ Boolean
153
154
155
|
# File 'lib/browser/platform.rb', line 153
def windows_x64_inclusive?
windows_x64? || windows_wow64?
end
|
#windows_xp? ⇒ Boolean
116
117
118
|
# File 'lib/browser/platform.rb', line 116
def windows_xp?
windows? && ua =~ /Windows NT 5\.[12]/
end
|