rack 2.2.15 → 2.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08d16e4c78113fe32eb4c2d3f50cafe9666c9d13db54eafb7e8609e4fe3ef021'
4
- data.tar.gz: 7955ff3448887f18602b751c18850bbaf528e747c6708746b6cc742741a3a4c9
3
+ metadata.gz: e5a64927e310e6bb3eff5b74ae3894d9c4592333d48615103e2dba14738ddc0a
4
+ data.tar.gz: 956fac8fbd0b4fb46777d005f853219651c5b19f12679c2a64545f62508f60e1
5
5
  SHA512:
6
- metadata.gz: 6980a3603f74a9e3fe092fbf7aeb7a6516f854e1747183c04bab06e764030196d1fc8b4846de1eb5e40240849f1a2703a0a4a44c90f18d1267a1b208122647fb
7
- data.tar.gz: 70b54fce267ab0504c37374dc9e96a5c5e6dd3f56f69999b3136b475373ecb29b3f4ca4ec0b2a3c5793c4aa8d937dbd4144a27a2c42a33326de3cdca70275710
6
+ metadata.gz: f9a8fbea5c3a62dd839da7c022f78d5dc7e198f0de0a91b9efab5453e3124ecbe9cd802c14e88f2a92c217d7ffab9ca5afcd3a7ff09fee24e9576d3f9973b3b2
7
+ data.tar.gz: 6c3bb1fe9b3f8082af8d0d4def0d4237991008358a88832e8b0cd5216a688643e9f5013494d2dbd6634b6e1d3e63cf24266de6320f1e6cc292d79f1f6f58dc22
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. For info on how to format all future additions to this file please reference [Keep A Changelog](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [2.2.17] - 2025-06-03
6
+
7
+ - Backport `Rack::MediaType#params` now handles parameters without values. ([#2263](https://github.com/rack/rack/pull/2263), [@AllyMarthaJ](https://github.com/AllyMarthaJ))
8
+
9
+ ## [2.2.16] - 2025-05-22
10
+
11
+ - Fix incorrect backport of optional `CGI::Cookie` support. ([#2335](https://github.com/rack/rack/pull/2335), [@jeremyevans])
12
+
5
13
  ## [2.2.15] - 2025-05-18
6
14
 
7
15
  - Optional support for `CGI::Cookie` if not available. ([#2327](https://github.com/rack/rack/pull/2327), [#2333](https://github.com/rack/rack/pull/2333), [@earlopain])
@@ -27,6 +27,11 @@ module Rack
27
27
  # provided. e.g., when the CONTENT_TYPE is "text/plain;charset=utf-8",
28
28
  # this method responds with the following Hash:
29
29
  # { 'charset' => 'utf-8' }
30
+ #
31
+ # This will pass back parameters with empty strings in the hash if they
32
+ # lack a value (e.g., "text/plain;charset=" will return { 'charset' => '' },
33
+ # and "text/plain;charset" will return { 'charset' => '' }, similarly to
34
+ # the query params parser (barring the latter case, which returns nil instead)).
30
35
  def params(content_type)
31
36
  return {} if content_type.nil?
32
37
 
@@ -40,9 +45,9 @@ module Rack
40
45
 
41
46
  private
42
47
 
43
- def strip_doublequotes(str)
44
- (str.start_with?('"') && str.end_with?('"')) ? str[1..-2] : str
45
- end
48
+ def strip_doublequotes(str)
49
+ (str && str.start_with?('"') && str.end_with?('"')) ? str[1..-2] : str || ''
50
+ end
46
51
  end
47
52
  end
48
53
  end
data/lib/rack/mock.rb CHANGED
@@ -265,7 +265,7 @@ module Rack
265
265
  set_cookie_header.split("\n").each do |cookie|
266
266
  cookie_name, cookie_filling = cookie.split('=', 2)
267
267
  cookie_attributes = identify_cookie_attributes cookie_filling
268
- parsed_cookie = CGI::Cookie.new(
268
+ parsed_cookie = Cookie.new(
269
269
  'name' => cookie_name.strip,
270
270
  'value' => cookie_attributes.fetch('value'),
271
271
  'path' => cookie_attributes.fetch('path', nil),
@@ -282,7 +282,7 @@ module Rack
282
282
  def identify_cookie_attributes(cookie_filling)
283
283
  cookie_bits = cookie_filling.split(';')
284
284
  cookie_attributes = Hash.new
285
- cookie_attributes.store('value', cookie_bits[0].strip)
285
+ cookie_attributes.store('value', Array(cookie_bits[0].strip))
286
286
  cookie_bits.each do |bit|
287
287
  if bit.include? '='
288
288
  cookie_attribute, attribute_value = bit.split('=')
data/lib/rack/version.rb CHANGED
@@ -20,7 +20,7 @@ module Rack
20
20
  VERSION.join(".")
21
21
  end
22
22
 
23
- RELEASE = "2.2.15"
23
+ RELEASE = "2.2.17"
24
24
 
25
25
  # Return the Rack release as a dotted string.
26
26
  def self.release
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.15
4
+ version: 2.2.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leah Neukirchen
@@ -182,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
182
  - !ruby/object:Gem::Version
183
183
  version: '0'
184
184
  requirements: []
185
- rubygems_version: 3.6.7
185
+ rubygems_version: 3.7.0.dev
186
186
  specification_version: 4
187
187
  summary: A modular Ruby webserver interface.
188
188
  test_files: []