class Browser::Base
def bot
def bot @bot ||= Bot.new(ua) end
def bot?
def bot? bot.bot? end
def chrome?
def chrome? Chrome.new(ua).match? end
def compatibility_view?
def compatibility_view? false end
def core_media?
def core_media? ua =~ /CoreMedia/ end
def device
def device @device ||= Device.new(ua) end
def edge?
def edge? Edge.new(ua).match? end
def firefox?
def firefox? Firefox.new(ua).match? end
def ie?(expected_version = nil)
def ie?(expected_version = nil) InternetExplorer.new(ua).match? && detect_version?(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 known?
def known? id != :generic end
def meta
def meta Meta.constants.each_with_object(Set.new) do |meta_name, meta| meta_class = Meta.const_get(meta_name) meta.merge(meta_class.new(self).to_a) end.to_a end
def modern?
def modern? Browser.modern_rules.any? {|rule| rule === self } # rubocop:disable Metrics/LineLength, Style/CaseEquality end
def msie_full_version
def msie_full_version "0.0" end
def msie_version
def msie_version "0" end
def nokia?
def nokia? Nokia.new(ua).match? end
def opera?
def opera? Opera.new(ua).match? end
def opera_mini?
def opera_mini? ua =~ /Opera Mini/ end
def phantom_js?
def phantom_js? PhantomJS.new(ua).match? end
def platform
def platform @platform ||= Platform.new(ua) end
def proxy?
def proxy? nokia? || uc_browser? || opera_mini? end
def quicktime?
def quicktime? ua =~ /QuickTime/i 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 to_s
def to_s meta.to_a.join(" ") end
def uc_browser?
def uc_browser? UCBrowser.new(ua).match? end
def version
def version full_version.split(".").first end
def webkit?
def webkit? ua =~ /AppleWebKit/i && !edge? end
def webkit_full_version
def webkit_full_version ua[%r[AppleWebKit/([\d.]+)], 1] || "0.0" end
def yandex?
def yandex? ua =~ /YaBrowser/ end