class Browser::Base
Attributes
Return an array with all preferred languages that this browser accepts.
Public Class Methods
# File lib/browser/base.rb, line 11 def initialize(ua, accept_language: nil) @ua = ua @accept_language = AcceptLanguage.parse(accept_language) end
Public Instance Methods
# File lib/browser/base.rb, line 167 def alipay?(expected_version = nil) Alipay.new(ua).match? && detect_version?(full_version, expected_version) end
Return the bot info.
# File lib/browser/base.rb, line 38 def bot @bot ||= Bot.new(ua) end
Detect if current user agent is from a bot.
# File lib/browser/base.rb, line 43 def bot? bot.bot? end
Detect if browser is Chrome.
# File lib/browser/base.rb, line 130 def chrome?(expected_version = nil) Chrome.new(ua).match? && detect_version?(full_version, expected_version) end
# File lib/browser/base.rb, line 68 def compatibility_view? false end
Detect if browser is Apple CoreMedia.
# File lib/browser/base.rb, line 105 def core_media?(expected_version = nil) ua =~ /CoreMedia/ && detect_version?(full_version, expected_version) end
Return the device info.
# File lib/browser/base.rb, line 48 def device @device ||= Device.new(ua) end
Detect if browser is Microsoft Edge.
# File lib/browser/base.rb, line 64 def edge?(expected_version = nil) Edge.new(ua).match? && detect_version?(full_version, expected_version) end
Detect if the browser is Electron.
# File lib/browser/base.rb, line 190 def electron?(expected_version = nil) Electron.new(ua).match? && detect_version?(full_version, expected_version) end
Detect if browser if Facebook.
# File lib/browser/base.rb, line 81 def facebook?(expected_version = nil) Facebook.new(ua).match? && detect_version?(full_version, expected_version) end
Detect if browser is Firefox.
# File lib/browser/base.rb, line 125 def firefox?(expected_version = nil) Firefox.new(ua).match? && detect_version?(full_version, expected_version) end
Detect if browser is Microsoft Internet Explorer.
# File lib/browser/base.rb, line 58 def ie?(expected_version = nil) InternetExplorer.new(ua).match? && detect_version?(full_version, expected_version) end
# File lib/browser/base.rb, line 180 def known? id != :generic end
Return a meta info about this browser.
# File lib/browser/base.rb, line 17 def meta Meta.get(self) end
Detect if browser is MicroMessenger.
# File lib/browser/base.rb, line 156 def micro_messenger?(expected_version = nil) MicroMessenger.new(ua).match? && detect_version?(full_version, expected_version) end
# File lib/browser/base.rb, line 72 def msie_full_version "0.0" end
# File lib/browser/base.rb, line 76 def msie_version "0" end
Detect if browser is Opera.
# File lib/browser/base.rb, line 135 def opera?(expected_version = nil) Opera.new(ua).match? && detect_version?(full_version, expected_version) end
Detect if browser is Opera Mini.
# File lib/browser/base.rb, line 172 def opera_mini?(expected_version = nil) ua =~ /Opera Mini/ && detect_version?(full_version, expected_version) end
Detect if browser is Otter.
# File lib/browser/base.rb, line 87 def otter?(expected_version = nil) Otter.new(ua).match? && detect_version?(full_version, expected_version) end
Detect if browser is PhantomJS
# File lib/browser/base.rb, line 110 def phantom_js?(expected_version = nil) PhantomJS.new(ua).match? && detect_version?(full_version, expected_version) end
Return the platform.
# File lib/browser/base.rb, line 33 def platform @platform ||= Platform.new(ua) end
Detect if browser is a proxy browser.
# File lib/browser/base.rb, line 185 def proxy? nokia? || uc_browser? || opera_mini? end
Detect if browser is QuickTime
# File lib/browser/base.rb, line 100 def quicktime?(expected_version = nil) ua =~ /QuickTime/i && detect_version?(full_version, expected_version) end
Detect if browser is Safari.
# File lib/browser/base.rb, line 116 def safari?(expected_version = nil) Safari.new(ua).match? && detect_version?(version, expected_version) end
# File lib/browser/base.rb, line 120 def safari_webapp_mode? (device.ipad? || device.iphone?) && ua =~ /AppleWebKit/ end
Return meta representation as string.
# File lib/browser/base.rb, line 24 def to_s meta.to_a.join(" ") end
Detect if browser is UCBrowser.
# File lib/browser/base.rb, line 145 def uc_browser?(expected_version = nil) UCBrowser.new(ua).match? && detect_version?(full_version, expected_version) end
# File lib/browser/base.rb, line 28 def version full_version.split(".").first end
Detect if browser is WebKit-based.
# File lib/browser/base.rb, line 93 def webkit?(expected_version = nil) ua =~ /AppleWebKit/i && !edge? && detect_version?(webkit_full_version, expected_version) end
# File lib/browser/base.rb, line 176 def webkit_full_version ua[%r[AppleWebKit/([\d.]+)], 1] || "0.0" end
# File lib/browser/base.rb, line 163 def weibo?(expected_version = nil) Weibo.new(ua).match? && detect_version?(full_version, expected_version) end
Detect if browser is Yandex.
# File lib/browser/base.rb, line 140 def yandex?(expected_version = nil) ua =~ /YaBrowser/ && detect_version?(full_version, expected_version) end