module HTTP::Cookie::URIParser
Constants
- URIREGEX
Regular Expression taken from RFC 3986 Appendix B
Public Instance Methods
escape_path(path)
click to toggle source
Escape RFC 3986 “reserved” characters minus valid characters for path More specifically, gen-delims minus “/” / “?” / “#”
# File lib/http/cookie/uri_parser.rb, line 17 def escape_path(path) path.sub(/\A[^?#]+/) { |p| p.gsub(/[:\[\]@]+/) { |r| CGI.escape(r) } } end
parse(uri)
click to toggle source
Parse a URI string or object, relaxing the constraints on the path component
# File lib/http/cookie/uri_parser.rb, line 22 def parse(uri) URI(uri) rescue URI::InvalidURIError str = String.try_convert(uri) or raise ArgumentError, "bad argument (expected URI object or URI string)" m = URIREGEX.match(str) or raise path = m[:path] str[m.begin(:path)...m.end(:path)] = escape_path(path) uri = URI.parse(str) uri.__send__(:set_path, path) uri end