class Browser::Base
def alipay?(expected_version = nil)
def alipay?(expected_version = nil) Alipay.new(ua).match? && detect_version?(full_version, expected_version) end
def bot
def bot @bot ||= Bot.new(ua) end
def bot?
def bot? bot.bot? end
def chrome?(expected_version = nil)
def chrome?(expected_version = nil) Chrome.new(ua).match? && detect_version?(full_version, expected_version) end
def compatibility_view?
def compatibility_view? false end
def core_media?(expected_version = nil)
def core_media?(expected_version = nil) ua =~ /CoreMedia/ && detect_version?(full_version, expected_version) end
def device
def device @device ||= Device.new(ua) end
def edge?(expected_version = nil)
def edge?(expected_version = nil) Edge.new(ua).match? && detect_version?(full_version, expected_version) end
def electron?(expected_version = nil)
def electron?(expected_version = nil) Electron.new(ua).match? && detect_version?(full_version, expected_version) end
def facebook?(expected_version = nil)
def facebook?(expected_version = nil) Facebook.new(ua).match? && detect_version?(full_version, expected_version) end
def firefox?(expected_version = nil)
def firefox?(expected_version = nil) Firefox.new(ua).match? && detect_version?(full_version, expected_version) end
def ie?(expected_version = nil)
def ie?(expected_version = nil) InternetExplorer.new(ua).match? && detect_version?(full_version, expected_version) end
def initialize(ua, accept_language: nil)
def initialize(ua, accept_language: nil) @ua = ua @accept_language = AcceptLanguage.parse(accept_language) end
def instagram?(expected_version = nil)
def instagram?(expected_version = nil) Instagram.new(ua).match? && detect_version?(full_version, expected_version) end
def known?
def known? id != :generic end
def meta
def meta Meta.get(self) end
def micro_messenger?(expected_version = nil)
def micro_messenger?(expected_version = nil) MicroMessenger.new(ua).match? && detect_version?(full_version, expected_version) end
def modern?
def modern? warn <<~TEXT Browser::Base#modern? is now deprecated. Check https://github.com/fnando/browser/issues/435 for details. TEXT Browser.modern_rules.any? {|rule| rule === self } # rubocop:disable Style/CaseEquality end
def msie_full_version
def msie_full_version "0.0" end
def msie_version
def msie_version "0" end
def nokia?(expected_version = nil)
def nokia?(expected_version = nil) Nokia.new(ua).match? && detect_version?(full_version, expected_version) end
def opera?(expected_version = nil)
def opera?(expected_version = nil) Opera.new(ua).match? && detect_version?(full_version, expected_version) end
def opera_mini?(expected_version = nil)
def opera_mini?(expected_version = nil) ua =~ /Opera Mini/ && detect_version?(full_version, expected_version) end
def otter?(expected_version = nil)
def otter?(expected_version = nil) Otter.new(ua).match? && detect_version?(full_version, expected_version) end
def phantom_js?(expected_version = nil)
def phantom_js?(expected_version = nil) PhantomJS.new(ua).match? && detect_version?(full_version, expected_version) end
def platform
def platform @platform ||= Platform.new(ua) end
def proxy?
def proxy? nokia? || uc_browser? || opera_mini? end
def quicktime?(expected_version = nil)
def quicktime?(expected_version = nil) ua =~ /QuickTime/i && detect_version?(full_version, expected_version) end
def safari?(expected_version = nil)
def safari?(expected_version = nil) Safari.new(ua).match? && detect_version?(version, expected_version) end
def safari_webapp_mode?
def safari_webapp_mode? (device.ipad? || device.iphone?) && ua =~ /AppleWebKit/ end
def snapchat?(expected_version = nil)
def snapchat?(expected_version = nil) Snapchat.new(ua).match? && detect_version?(full_version, expected_version) end
def sputnik?(expected_version = nil)
def sputnik?(expected_version = nil) Sputnik.new(ua).match? && detect_version?(full_version, expected_version) end
def to_s
def to_s meta.to_a.join(" ") end
def uc_browser?(expected_version = nil)
def uc_browser?(expected_version = nil) UCBrowser.new(ua).match? && detect_version?(full_version, expected_version) end
def version
def version full_version.split(".").first end
def webkit?(expected_version = nil)
def webkit?(expected_version = nil) ua =~ /AppleWebKit/i && (!edge? || Edge.new(ua).chrome_based?) && detect_version?(webkit_full_version, expected_version) end
def webkit_full_version
def webkit_full_version ua[%r{AppleWebKit/([\d.]+)}, 1] || "0.0" end
def weibo?(expected_version = nil)
def weibo?(expected_version = nil) Weibo.new(ua).match? && detect_version?(full_version, expected_version) end
def yandex?(expected_version = nil)
def yandex?(expected_version = nil) Yandex.new(ua).match? && detect_version?(full_version, expected_version) end