XRB SourceXRBURI

class URI

This class is superceeded by XRB::Reference.

Definitions

attr :path

The path component of the URI, e.g. /foo/bar/index.html

attr :query_string

The un-parsed query string of the URI, e.g. 'x=10&y=20'

attr :fragment

A fragment identifier, the part after the '#'

attr :parameters

User supplied parameters that will be appended to the query part.

NON_PCHAR = /([^a-zA-Z0-9_\-\.~!$&'()*+,;=:@\/]+)/.freeze

According to https://tools.ietf.org/html/rfc3986#section-3.3, we escape non-pchar.

def escape(string)

Escapes a generic string, using percent encoding.

Implementation

def escape(string)
	encoding = string.encoding
	string.b.gsub(/([^a-zA-Z0-9_.\-]+)/) do |m|
		'%' + m.unpack('H2' * m.bytesize).join('%').upcase
	end.force_encoding(encoding)
end