class Browser::Platform
Attributes
ua[R]
Public Class Methods
matchers()
click to toggle source
Hold the list of platform matchers. Order is important.
# File lib/browser/platform.rb, line 26 def self.matchers @matchers ||= [ AdobeAir, ChromeOS, WindowsMobile, WindowsPhone, Android, BlackBerry, IOS, Mac, KaiOS, FirefoxOS, Windows, Linux, Unknown ] end
new(ua)
click to toggle source
# File lib/browser/platform.rb, line 44 def initialize(ua) @ua = ua end
Public Instance Methods
==(other)
click to toggle source
# File lib/browser/platform.rb, line 122 def ==(other) id == other end
adobe_air?(expected_version = nil)
click to toggle source
# File lib/browser/platform.rb, line 54 def adobe_air?(expected_version = nil) id == :adobe_air && detect_version?(version, expected_version) end
android?(expected_version = nil)
click to toggle source
# File lib/browser/platform.rb, line 62 def android?(expected_version = nil) id == :android && detect_version?(version, expected_version) end
android_app?()
click to toggle source
Detect if in an Android
app webview (Lollipop and newer) developer.chrome.com/multidevice/user-agent#webview_user_agent
# File lib/browser/platform.rb, line 138 def android_app? android? && ua.match?(/\bwv\b/) end
Also aliased as: android_webview?
blackberry?(expected_version = nil)
click to toggle source
# File lib/browser/platform.rb, line 94 def blackberry?(expected_version = nil) id == :blackberry && detect_version?(version, expected_version) end
chrome_os?(expected_version = nil)
click to toggle source
# File lib/browser/platform.rb, line 58 def chrome_os?(expected_version = nil) id == :chrome_os && detect_version?(version, expected_version) end
firefox_os?()
click to toggle source
# File lib/browser/platform.rb, line 82 def firefox_os? id == :firefox_os end
id()
click to toggle source
# File lib/browser/platform.rb, line 106 def id subject.id end
ios?(expected_version = nil)
click to toggle source
# File lib/browser/platform.rb, line 90 def ios?(expected_version = nil) id == :ios && detect_version?(version, expected_version) end
ios_app?()
click to toggle source
Detect if running on iOS app webview.
# File lib/browser/platform.rb, line 127 def ios_app? ios? && !ua.include?("Safari") end
ios_webview?()
click to toggle source
Detect if is iOS webview.
# File lib/browser/platform.rb, line 132 def ios_webview? ios_app? end
kai_os?()
click to toggle source
# File lib/browser/platform.rb, line 86 def kai_os? id == :kai_os end
linux?()
click to toggle source
# File lib/browser/platform.rb, line 70 def linux? id == :linux end
mac?(expected_version = nil)
click to toggle source
# File lib/browser/platform.rb, line 74 def mac?(expected_version = nil) id == :mac && detect_version?(version, expected_version) end
name()
click to toggle source
# File lib/browser/platform.rb, line 114 def name subject.name end
to_s()
click to toggle source
# File lib/browser/platform.rb, line 118 def to_s id.to_s end
unknown?()
click to toggle source
# File lib/browser/platform.rb, line 66 def unknown? id == :unknown_platform end
version()
click to toggle source
# File lib/browser/platform.rb, line 110 def version subject.version end
windows10?()
click to toggle source
# File lib/browser/platform.rb, line 164 def windows10? windows? && ua.include?("Windows NT 10") end
windows7?()
click to toggle source
# File lib/browser/platform.rb, line 152 def windows7? windows? && ua.include?("Windows NT 6.1") end
windows8?()
click to toggle source
# File lib/browser/platform.rb, line 156 def windows8? windows? && ua.match?(/Windows NT 6\.[2-3]/) end
windows8_1?()
click to toggle source
# File lib/browser/platform.rb, line 160 def windows8_1? windows? && ua.include?("Windows NT 6.3") end
windows?(expected_version = nil)
click to toggle source
# File lib/browser/platform.rb, line 78 def windows?(expected_version = nil) id == :windows && detect_version?(version, expected_version) end
windows_mobile?(expected_version = nil)
click to toggle source
# File lib/browser/platform.rb, line 102 def windows_mobile?(expected_version = nil) id == :windows_mobile && detect_version?(version, expected_version) end
windows_phone?(expected_version = nil)
click to toggle source
# File lib/browser/platform.rb, line 98 def windows_phone?(expected_version = nil) id == :windows_phone && detect_version?(version, expected_version) end
windows_rt?()
click to toggle source
# File lib/browser/platform.rb, line 168 def windows_rt? windows8? && ua.include?("ARM") end
windows_touchscreen_desktop?()
click to toggle source
# File lib/browser/platform.rb, line 185 def windows_touchscreen_desktop? windows? && ua.include?("Touch") end
windows_vista?()
click to toggle source
# File lib/browser/platform.rb, line 148 def windows_vista? windows? && ua.include?("Windows NT 6.0") end
windows_wow64?()
click to toggle source
# File lib/browser/platform.rb, line 177 def windows_wow64? windows? && ua.match?(/WOW64/i) end
windows_x64?()
click to toggle source
Detect if current platform is Windows
in 64-bit architecture.
# File lib/browser/platform.rb, line 173 def windows_x64? windows? && ua.match?(/(Win64|x64|Windows NT 5\.2)/) end
windows_x64_inclusive?()
click to toggle source
# File lib/browser/platform.rb, line 181 def windows_x64_inclusive? windows_x64? || windows_wow64? end
windows_xp?()
click to toggle source
msdn.microsoft.com/fr-FR/library/ms537503.aspx#PltToken
# File lib/browser/platform.rb, line 144 def windows_xp? windows? && ua.match?(/Windows NT 5\.[12]/) end
Private Instance Methods
subject()
click to toggle source
# File lib/browser/platform.rb, line 48 def subject @subject ||= self.class.matchers .map {|matcher| matcher.new(ua, self) } .find(&:match?) end