(Not documented)
# File lib/rack/utils.rb, line 101 101: def build_query(params) 102: params.map { |k, v| 103: if v.class == Array 104: build_query(v.map { |x| [k, x] }) 105: else 106: "#{escape(k)}=#{escape(v)}" 107: end 108: }.join("&") 109: end
(Not documented)
# File lib/rack/utils.rb, line 159 159: def bytesize(string) 160: string.size 161: end
(Not documented)
# File lib/rack/utils.rb, line 155 155: def bytesize(string) 156: string.bytesize 157: end
Escape ampersands, brackets and quotes to their HTML/XML entities.
# File lib/rack/utils.rb, line 113 113: def escape_html(string) 114: string.to_s.gsub("&", "&"). 115: gsub("<", "<"). 116: gsub(">", ">"). 117: gsub("'", "'"). 118: gsub('"', """) 119: end
(Not documented)
# File lib/rack/utils.rb, line 69 69: def normalize_params(params, name, v = nil) 70: name =~ %r(\A[\[\]]*([^\[\]]+)\]*) 71: k = $1 || '' 72: after = $' || '' 73: 74: return if k.empty? 75: 76: if after == "" 77: params[k] = v 78: elsif after == "[]" 79: params[k] ||= [] 80: raise TypeError, "expected Array (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Array) 81: params[k] << v 82: elsif after =~ %r(^\[\]\[([^\[\]]+)\]$) || after =~ %r(^\[\](.+)$) 83: child_key = $1 84: params[k] ||= [] 85: raise TypeError, "expected Array (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Array) 86: if params[k].last.is_a?(Hash) && !params[k].last.key?(child_key) 87: normalize_params(params[k].last, child_key, v) 88: else 89: params[k] << normalize_params({}, child_key, v) 90: end 91: else 92: params[k] ||= {} 93: raise TypeError, "expected Hash (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Hash) 94: params[k] = normalize_params(params[k], after, v) 95: end 96: 97: return params 98: end
(Not documented)
# File lib/rack/utils.rb, line 122 122: def select_best_encoding(available_encodings, accept_encoding) 123: # http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html 124: 125: expanded_accept_encoding = 126: accept_encoding.map { |m, q| 127: if m == "*" 128: (available_encodings - accept_encoding.map { |m2, _| m2 }).map { |m2| [m2, q] } 129: else 130: [[m, q]] 131: end 132: }.inject([]) { |mem, list| 133: mem + list 134: } 135: 136: encoding_candidates = expanded_accept_encoding.sort_by { |_, q| -q }.map { |m, _| m } 137: 138: unless encoding_candidates.include?("identity") 139: encoding_candidates.push("identity") 140: end 141: 142: expanded_accept_encoding.find_all { |m, q| 143: q == 0.0 144: }.each { |m, _| 145: encoding_candidates.delete(m) 146: } 147: 148: return (encoding_candidates & available_encodings)[0] 149: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.