# File lib/rack/utils.rb, line 171
171:     def set_cookie_header!(header, key, value)
172:       case value
173:       when Hash
174:         domain  = "; domain="  + value[:domain] if value[:domain]
175:         path    = "; path="    + value[:path]   if value[:path]
176:         # According to RFC 2109, we need dashes here.
177:         # N.B.: cgi.rb uses spaces...
178:         expires = "; expires=" +
179:           rfc2822(value[:expires].clone.gmtime) if value[:expires]
180:         secure = "; secure"  if value[:secure]
181:         httponly = "; HttpOnly" if value[:httponly]
182:         value = value[:value]
183:       end
184:       value = [value] unless Array === value
185:       cookie = escape(key) + "=" +
186:         value.map { |v| escape v }.join("&") +
187:         "#{domain}#{path}#{expires}#{secure}#{httponly}"
188: 
189:       case header["Set-Cookie"]
190:       when nil, ''
191:         header["Set-Cookie"] = cookie
192:       when String
193:         header["Set-Cookie"] = [header["Set-Cookie"], cookie].join("\n")
194:       when Array
195:         header["Set-Cookie"] = (header["Set-Cookie"] + [cookie]).join("\n")
196:       end
197: 
198:       nil
199:     end