Module: Rack::Utils

Defined in:
lib/ext/rack/uri_escape.rb,
lib/ext/rack/uri_escape.rb,
lib/ext/rack/uri_escape.rb

Class Method Summary collapse

Class Method Details

.uri_escape(s) ⇒ Object



2
3
4
5
6
# File 'lib/ext/rack/uri_escape.rb', line 2

def uri_escape(s)
  s.to_s.gsub(/([^:\/?\[\]\-_~\.!\$&'\(\)\*\+,;=@a-zA-Z0-9]+)/n) {
    '%'<<$1.unpack('H2'*$1.size).join('%').upcase
  }
end

.uri_escape!(s) ⇒ Object



11
12
13
14
15
# File 'lib/ext/rack/uri_escape.rb', line 11

def uri_escape!(s)
  s.to_s.gsub!(/([^:\/?\[\]\-_~\.!\$&'\(\)\*\+,;=@a-zA-Z0-9]+)/n) {
    '%'<<$1.unpack('H2'*$1.size).join('%').upcase
  }
end

.uri_unescape(s) ⇒ Object



20
21
22
23
24
# File 'lib/ext/rack/uri_escape.rb', line 20

def uri_unescape(s)
  gsub(/((?:%[0-9a-fA-F]{2})+)/n){
    [$1.delete('%')].pack('H*')
  }
end