method
_make_regex
v1_9_1_378 -
Show latest stable
- Class:
WEBrick::HTTPUtils
_make_regex(str)public
No documentation available.
# File lib/webrick/httputils.rb, line 351
def _make_regex(str) /([#{Regexp.escape(str)}])/n end
def _make_regex!(str) /([^#{Regexp.escape(str)}])/n end
def _escape(str, regex) str.gsub(regex){ "%%%02X" % $1.ord } end
def _unescape(str, regex) str.gsub(regex){ $1.hex.chr } end
UNESCAPED = _make_regex(control+space+delims+unwise+nonascii)
UNESCAPED_FORM = _make_regex(reserved+control+delims+unwise+nonascii)
NONASCII = _make_regex(nonascii)
ESCAPED = /%([0-9a-fA-F]{2})/
UNESCAPED_PCHAR = _make_regex!(unreserved+":@&=+$,")
def escape(str)
_escape(str, UNESCAPED)
end
def unescape(str)
_unescape(str, ESCAPED)
end
def escape_form(str)
ret = _escape(str, UNESCAPED_FORM)
ret.gsub!(/ /, "+")
ret
end
def unescape_form(str)
_unescape(str.gsub(/\+/, " "), ESCAPED)
end
def escape_path(str)
result = ""
str.scan(%{/([^/]*)}).each{|i|
result << "/" << _escape(i[0], UNESCAPED_PCHAR)
}
return result
end
def escape8bit(str)
_escape(str, NONASCII)
end
end
end