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