public Method

HTTPUtils._make_regex!(str)

There's no documentation for this item.

Source Code

# File webrick/httputils.rb, line 359
  def _make_regex!(str) /([^#{Regexp.escape(str)}])/n end
  def _escape(str, regex) str.gsub(regex){ "%%%02X" % $1[0] } 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(%r{/([^/]*)}).each{|i|
      result << "/" << _escape(i[0], UNESCAPED_PCHAR)
    }
    return result
  end

  def escape8bit(str)
    _escape(str, NONASCII)
  end
end
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.