Module: RubyNative::SetCookieHeader
- Defined in:
- lib/ruby_native/set_cookie_header.rb
Overview
Rack 2 carries Set-Cookie as one newline joined String, Rack 3 as an Array of cookie strings. Rewrites must hand back whichever shape came in.
Constant Summary collapse
- KEYS =
["set-cookie", "Set-Cookie"].freeze
Class Method Summary collapse
Class Method Details
.read(headers) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/ruby_native/set_cookie_header.rb', line 9 def read(headers) raw = KEYS.map { |key| headers[key] }.compact.first case raw when Array then raw when String then raw.split("\n") else [] end end |
.rewrite!(headers, &block) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/ruby_native/set_cookie_header.rb', line 18 def rewrite!(headers, &block) key = KEYS.find { |k| headers[k] } return unless key rewritten = read(headers).map(&block) headers[key] = headers[key].is_a?(Array) ? rewritten : rewritten.join("\n") end |