207: def delete_cookie_header!(header, key, value = {})
208: case header["Set-Cookie"]
209: when nil, ''
210: cookies = []
211: when String
212: cookies = header["Set-Cookie"].split("\n")
213: when Array
214: cookies = header["Set-Cookie"]
215: end
216:
217: cookies.reject! { |cookie|
218: if value[:domain]
219: cookie =~ /\A#{escape(key)}=.*domain=#{value[:domain]}/
220: else
221: cookie =~ /\A#{escape(key)}=/
222: end
223: }
224:
225: header["Set-Cookie"] = cookies.join("\n")
226:
227: set_cookie_header!(header, key,
228: {:value => '', :path => nil, :domain => nil,
229: :expires => Time.at(0) }.merge(value))
230:
231: nil
232: end