Module | Rack::Utils |
In: |
lib/rack/utils.rb
|
Rack::Utils contains a grab-bag of useful methods for writing web applications adopted from all kinds of Ruby libraries.
Performs URI escaping so that you can construct proper query strings faster. Use this rather than the cgi.rb version since it’s faster. (Stolen from Camping).
# File lib/rack/utils.rb, line 11 11: def escape(s) 12: s.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/n) { 13: '%'+$1.unpack('H2'*$1.size).join('%').upcase 14: }.tr(' ', '+') 15: end
Escape ampersands, brackets and quotes to their HTML/XML entities.
# File lib/rack/utils.rb, line 52 52: def escape_html(string) 53: string.to_s.gsub("&", "&"). 54: gsub("<", "<"). 55: gsub(">", ">"). 56: gsub("'", "'"). 57: gsub('"', """) 58: end
Stolen from Mongrel: Parses a query string by breaking it up at the ’&’ and ’;’ characters. You can also use this to parse cookies by changing the characters used in the second parameter (which defaults to ’&;’.
# File lib/rack/utils.rb, line 32 32: def parse_query(qs, d = '&;') 33: params = {} 34: (qs||'').split(/[#{d}] */n).inject(params) { |h,p| 35: k, v=unescape(p).split('=',2) 36: if cur = params[k] 37: if cur.class == Array 38: params[k] << v 39: else 40: params[k] = [cur, v] 41: end 42: else 43: params[k] = v 44: end 45: } 46: 47: return params 48: end