class Browser::Base

Attributes

accept_language[R]

Return an array with all preferred languages that this browser accepts.

ua[R]

Public Class Methods

new(ua, accept_language: nil) click to toggle source
# 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

bot() click to toggle source

Return the bot info.

# File lib/browser/base.rb, line 38
def bot
  @bot ||= Bot.new(ua)
end
bot?() click to toggle source

Detect if current user agent is from a bot.

# File lib/browser/base.rb, line 43
def bot?
  bot.bot?
end
chrome?() click to toggle source

Detect if browser is Chrome.

# File lib/browser/base.rb, line 115
def chrome?
  Chrome.new(ua).match?
end
compatibility_view?() click to toggle source
# File lib/browser/base.rb, line 68
def compatibility_view?
  false
end
core_media?() click to toggle source

Detect if browser is Apple CoreMedia.

# File lib/browser/base.rb, line 91
def core_media?
  ua =~ /CoreMedia/
end
device() click to toggle source

Return the device info.

# File lib/browser/base.rb, line 48
def device
  @device ||= Device.new(ua)
end
edge?() click to toggle source

Detect if browser is Microsoft Edge.

# File lib/browser/base.rb, line 64
def edge?
  Edge.new(ua).match?
end
firefox?() click to toggle source

Detect if browser is Firefox.

# File lib/browser/base.rb, line 110
def firefox?
  Firefox.new(ua).match?
end
ie?(expected_version = nil) click to toggle source

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?(version, expected_version)
end
known?() click to toggle source
# File lib/browser/base.rb, line 148
def known?
  id != :generic
end
meta() click to toggle source

Return a meta info about this browser.

# File lib/browser/base.rb, line 17
def meta
  Meta.get(self)
end
Also aliased as: to_a
modern?() click to toggle source

Return true if browser is modern (Webkit, Firefox 17+, IE9+, Opera 12+).

# File lib/browser/base.rb, line 53
def modern?
  Browser.modern_rules.any? {|rule| rule === self } # rubocop:disable Metrics/LineLength, Style/CaseEquality
end
msie_full_version() click to toggle source
# File lib/browser/base.rb, line 72
def msie_full_version
  "0.0"
end
msie_version() click to toggle source
# File lib/browser/base.rb, line 76
def msie_version
  "0"
end
nokia?() click to toggle source

Detect if browser is Nokia S40 Ovi Browser.

# File lib/browser/base.rb, line 135
def nokia?
  Nokia.new(ua).match?
end
opera?() click to toggle source

Detect if browser is Opera.

# File lib/browser/base.rb, line 120
def opera?
  Opera.new(ua).match?
end
opera_mini?() click to toggle source

Detect if browser is Opera Mini.

# File lib/browser/base.rb, line 140
def opera_mini?
  ua =~ /Opera Mini/
end
phantom_js?() click to toggle source

Detect if browser is PhantomJS

# File lib/browser/base.rb, line 96
def phantom_js?
  PhantomJS.new(ua).match?
end
platform() click to toggle source

Return the platform.

# File lib/browser/base.rb, line 33
def platform
  @platform ||= Platform.new(ua)
end
proxy?() click to toggle source

Detect if browser is a proxy browser.

# File lib/browser/base.rb, line 153
def proxy?
  nokia? || uc_browser? || opera_mini?
end
quicktime?() click to toggle source

Detect if browser is QuickTime

# File lib/browser/base.rb, line 86
def quicktime?
  ua =~ /QuickTime/i
end
safari?(expected_version = nil) click to toggle source

Detect if browser is Safari.

# File lib/browser/base.rb, line 101
def safari?(expected_version = nil)
  Safari.new(ua).match? && detect_version?(version, expected_version)
end
safari_webapp_mode?() click to toggle source
# File lib/browser/base.rb, line 105
def safari_webapp_mode?
  (device.ipad? || device.iphone?) && ua =~ /AppleWebKit/
end
to_a()
Alias for: meta
to_s() click to toggle source

Return meta representation as string.

# File lib/browser/base.rb, line 24
def to_s
  meta.to_a.join(" ")
end
uc_browser?() click to toggle source

Detect if browser is UCBrowser.

# File lib/browser/base.rb, line 130
def uc_browser?
  UCBrowser.new(ua).match?
end
version() click to toggle source
# File lib/browser/base.rb, line 28
def version
  full_version.split(".").first
end
webkit?() click to toggle source

Detect if browser is WebKit-based.

# File lib/browser/base.rb, line 81
def webkit?
  ua =~ /AppleWebKit/i && !edge?
end
webkit_full_version() click to toggle source
# File lib/browser/base.rb, line 144
def webkit_full_version
  ua[%r[AppleWebKit/([\d.]+)], 1] || "0.0"
end
yandex?() click to toggle source

Detect if browser is Yandex.

# File lib/browser/base.rb, line 125
def yandex?
  ua =~ /YaBrowser/
end