# class WEBrick::HTTPVersion

Represents an HTTP protocol version

### Attributes

major[RW]

The major protocol version number

minor[RW]

The minor protocol version number

### Public Class Methods

convert(version) click to toggle source

Converts `version` into an HTTPVersion

    # File lib/webrick/httpversion.rb, line 31
    def self.convert(version)
      version.is_a?(self) ? version : new(version)
    end

new(version) click to toggle source

Creates a new HTTPVersion from `version`.

    # File lib/webrick/httpversion.rb, line 38
    def initialize(version)
      case version
      when HTTPVersion
        @major, @minor = version.major, version.minor
      when String
        if /^(\d+)\.(\d+)$/ =~ version
          @major, @minor = $1.to_i, $2.to_i
        end
      end
      if @major.nil? || @minor.nil?
        raise ArgumentError,
          format("cannot convert %s into %s", version.class, self.class)
      end
    end

### Public Instance Methods

<=>(other) click to toggle source

Compares this version with `other` according to the HTTP specification rules.

    # File lib/webrick/httpversion.rb, line 57
    def <=>(other)
      unless other.is_a?(self.class)
        other = self.class.new(other)
      end
      if (ret = @major <=> other.major) == 0
        return @minor <=> other.minor
      end
      return ret
    end

to_s() click to toggle source

The HTTP version as show in the HTTP request and response. For example, “1.1”

    # File lib/webrick/httpversion.rb, line 71
    def to_s
      format("%d.%d", @major, @minor)
    end