Protocol::WebSocketSourceProtocolWebSocketExtensions

module Extensions

Manages WebSocket extensions negotiated during the handshake.

Nested

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