Module: UserAgent::OperatingSystems
- Defined in:
- lib/user_agent/operating_systems.rb
Constant Summary collapse
- IOS_VERSION_REGEX =
/CPU (?:iPhone |iPod )?OS ([\d_]+) like Mac OS X/- Windows =
{ "Windows NT 10.0" => "Windows 10", "Windows NT 6.3" => "Windows 8.1", "Windows NT 6.2" => "Windows 8", "Windows NT 6.1" => "Windows 7", "Windows NT 6.0" => "Windows Vista", "Windows NT 5.2" => "Windows XP x64 Edition", "Windows NT 5.1" => "Windows XP", "Windows NT 5.01" => "Windows 2000, Service Pack 1 (SP1)", "Windows NT 5.0" => "Windows 2000", "Windows NT 4.0" => "Windows NT 4.0", "Windows 98" => "Windows 98", "Windows 95" => "Windows 95", "Windows CE" => "Windows CE" }.freeze
Class Method Summary collapse
- .normalize_chrome_os(os) ⇒ Object
- .normalize_ios(os) ⇒ Object
- .normalize_mac_os_x(os) ⇒ Object
- .normalize_os(os) ⇒ Object
Class Method Details
.normalize_chrome_os(os) ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/user_agent/operating_systems.rb', line 26 def self.normalize_chrome_os(os) if os =~ /CrOS\s([^\s]+)\s(\d+(\.\d+)*)/ if $2.nil? "ChromeOS" else version = $2 "ChromeOS #{version}" end end end |
.normalize_ios(os) ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/user_agent/operating_systems.rb', line 37 def self.normalize_ios(os) if os =~ IOS_VERSION_REGEX if $1.nil? "iOS" else version = $1.gsub('_', '.') "iOS #{version}" end end end |
.normalize_mac_os_x(os) ⇒ Object
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/user_agent/operating_systems.rb', line 48 def self.normalize_mac_os_x(os) if os =~ /(?:Intel|PPC) Mac OS X\s*([0-9_\.]+)?/ if $1.nil? "OS X" else version = $1.gsub('_', '.') "OS X #{version}" end end end |
.normalize_os(os) ⇒ Object
21 22 23 |
# File 'lib/user_agent/operating_systems.rb', line 21 def self.normalize_os(os) Windows[os] || normalize_mac_os_x(os) || normalize_ios(os) || normalize_chrome_os(os) || os end |