Sha256: 33ae55b55b3cda079a68af5102526d7c08075e71a6ad37b5651ad5a10d7dffa1

Contents?: true

Size: 1.21 KB

Versions: 4

Compression:

Stored size: 1.21 KB

Contents

class UserAgent
  module OperatingSystems
    Windows = {
      "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

    def self.normalize_os(os)
      Windows[os] || normalize_mac_os_x(os) || normalize_ios(os) || os
    end

    private
      def self.normalize_ios(os)
        if os =~ /CPU OS\s*([0-9_\.]+)?\slike Mac OS X/
          if $1.nil?
            "iOS"
          else
            version = $1.gsub('_', '.')
            "iOS #{version}"
          end
        end
      end

      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
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
useragent-0.13.3 lib/user_agent/operating_systems.rb
useragent-0.13.2 lib/user_agent/operating_systems.rb
useragent-0.13.1 lib/user_agent/operating_systems.rb
useragent-0.13.0 lib/user_agent/operating_systems.rb