class Browser::InternetExplorer

def compatibility_view?

Detect if IE is running in compatibility mode.
def compatibility_view?
  trident_version && msie_version.to_i < (trident_version.to_i + 4)
end

def full_version

def full_version
  "#{ie_version}.0"
end

def id

def id
  :ie
end

def ie_version

def ie_version
  TRIDENT_MAPPING[trident_version] || msie_version
end

def match?

def match?
  msie? || modern_ie?
end

def modern_ie?

def modern_ie?
  ua =~ %r[Trident/.*?; rv:(.*?)]
end

def msie?

def msie?
  ua =~ /MSIE/ && ua !~ /Opera/
end

def msie_full_version

def msie_full_version
  (ua.match(%r{MSIE ([\d.]+)|Trident/.*?; rv:([\d.]+)}) && ($1 || $2)) ||
    "0.0"
end

def msie_version

def msie_version
  msie_full_version.split(".").first
end

def name

def name
  "Internet Explorer"
end

def trident_version

Return the trident version.
def trident_version
  ua.match(%r[Trident/([0-9.]+)]) && $1
end