Class: UserAgent::Browsers::InternetExplorer

Inherits:
Base
  • Object
show all
Defined in:
lib/user_agent/browsers/internet_explorer.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#<=>, #application, #bot?, #eql?, #method_missing, #mobile?, #respond_to?, #to_h, #to_s, #to_str

Methods included from Comparable

#<, #<=, #==, #>, #>=

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class UserAgent::Browsers::Base

Class Method Details

.extend?(agent) ⇒ Boolean

Returns:

  • (Boolean)


4
5
6
7
8
9
# File 'lib/user_agent/browsers/internet_explorer.rb', line 4

def self.extend?(agent)
  agent.application &&
  agent.application.comment &&
  (agent.application.comment[1] =~ /MSIE/ ||
   agent.application.comment.join('; ') =~ /Trident.+rv:/)
end

Instance Method Details

#browserObject



11
12
13
# File 'lib/user_agent/browsers/internet_explorer.rb', line 11

def browser
  "Internet Explorer"
end

#chromeframeObject

Before version 4.0, Chrome Frame declared itself (unversioned) in a comment; as of 4.0 it can declare itself versioned in a comment or as a separate product with a version



27
28
29
30
31
32
# File 'lib/user_agent/browsers/internet_explorer.rb', line 27

def chromeframe
  cf = application.comment.include?("chromeframe") || detect_product("chromeframe")
  return cf if cf
  cf_comment = application.comment.detect { |c| c['chromeframe/'] }
  cf_comment ? UserAgent.new(*cf_comment.split('/', 2)) : nil
end

#compatibility_view?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/user_agent/browsers/internet_explorer.rb', line 20

def compatibility_view?
  version == "7.0" && application.comment.detect { |c| c['Trident/'] }
end

#osObject



38
39
40
# File 'lib/user_agent/browsers/internet_explorer.rb', line 38

def os
  OperatingSystems.normalize_os(application.comment.join('; ').match(/Windows NT [\d\.]+|Windows Phone (OS )?[\d\.]+/).to_s)
end

#platformObject



34
35
36
# File 'lib/user_agent/browsers/internet_explorer.rb', line 34

def platform
  "Windows"
end

#versionObject



15
16
17
18
# File 'lib/user_agent/browsers/internet_explorer.rb', line 15

def version
  str = application.comment.join('; ')[/(MSIE\s|rv:)([\d\.]+)/, 2]
  Version.new(str)
end