module Extensions

Manages WebSocket extensions negotiated during the handshake.

Nested Classes and Modules

class Client

Manages extensions on the client side, offering and accepting server responses.

class Server

Manages extensions on the server side, negotiating client offers and applying the agreed extensions.

Definitions

def self.parse(headers)

Parse a list of extension header values into name and argument pairs.

Signature

parameter headers Array(String)

The raw extension header values.

yields {|name, arguments| ...}

Each parsed extension.

parameter name String

The name of the extension.

parameter arguments Array

The key-value argument pairs.

Implementation

def self.parse(headers)
	return to_enum(:parse, headers) unless block_given?
	
	headers.each do |header|
		name, *arguments = header.split(/\s*;\s*/)
		
		arguments = arguments.map do |argument|
			argument.split("=", 2)
		end
		
		yield name, arguments
	end
end