In Files

Parent

Object

Public Instance Methods

build_query(params) click to toggle source

(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
bytesize(string) click to toggle source

(Not documented)

     # File lib/rack/utils.rb, line 159
159:       def bytesize(string)
160:         string.size
161:       end
bytesize(string) click to toggle source

(Not documented)

     # File lib/rack/utils.rb, line 155
155:       def bytesize(string)
156:         string.bytesize
157:       end
escape_html(string) click to toggle source

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("<", "&lt;").
116:         gsub(">", "&gt;").
117:         gsub("'", "&#39;").
118:         gsub('"', "&quot;")
119:     end
normalize_params(params, name, v = nil) click to toggle source

(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
select_best_encoding(available_encodings, accept_encoding) click to toggle source

(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.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.