rack 3.0.8 → 3.0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/lib/rack/media_type.rb +9 -4
- data/lib/rack/response.rb +2 -0
- data/lib/rack/utils.rb +9 -5
- data/lib/rack/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebeaad43b1e4e691aa7123f2f0b0abb55bd4e8ccb062a048d3bc636c12780a1c
|
4
|
+
data.tar.gz: 4db213c69e487539b15f2648019de339b3876bd9d9ab39a7e4948c6114a18546
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c3afb608d9170593f0bc58120d60dcec9d4d3163e72a9805b8a48b2ebd8952a359dd56d2c2f48dc8673d2361647409a628b22073b4e07a6c070f60283265bb9
|
7
|
+
data.tar.gz: fb304999e3568174cdcc7a2b0b43b3ba064448db1882142524b50332cd7d037a2ff44c7042f94a2b18da862ca4db6e43b6eb9ca71b6b73986e1359e4b294eb7c
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,16 @@
|
|
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
|
+
## Unreleased
|
6
|
+
|
7
|
+
## [3.0.9] - 2024-01-31
|
8
|
+
|
9
|
+
- Fix incorrect content-length header that was emitted when `Rack::Response#write` was used in some situations. ([#2150](https://github.com/rack/rack/pull/2150), [@mattbrictson])
|
10
|
+
|
11
|
+
## [3.0.8] - 2023-06-14
|
12
|
+
|
13
|
+
- Fix some unused variable verbose warnings. ([#2084](https://github.com/rack/rack/pull/2084), [@jeremyevans], [@skipkayhil](https://github.com/skipkayhil))
|
14
|
+
|
5
15
|
## [3.0.7] - 2023-03-16
|
6
16
|
|
7
17
|
- Make query parameters without `=` have `nil` values. ([#2059](https://github.com/rack/rack/pull/2059), [@jeremyevans])
|
data/lib/rack/media_type.rb
CHANGED
@@ -4,7 +4,7 @@ module Rack
|
|
4
4
|
# Rack::MediaType parse media type and parameters out of content_type string
|
5
5
|
|
6
6
|
class MediaType
|
7
|
-
SPLIT_PATTERN =
|
7
|
+
SPLIT_PATTERN = /[;,]/
|
8
8
|
|
9
9
|
class << self
|
10
10
|
# The media type (type/subtype) portion of the CONTENT_TYPE header
|
@@ -15,7 +15,11 @@ module Rack
|
|
15
15
|
# http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7
|
16
16
|
def type(content_type)
|
17
17
|
return nil unless content_type
|
18
|
-
content_type.split(SPLIT_PATTERN, 2).first
|
18
|
+
if type = content_type.split(SPLIT_PATTERN, 2).first
|
19
|
+
type.rstrip!
|
20
|
+
type.downcase!
|
21
|
+
type
|
22
|
+
end
|
19
23
|
end
|
20
24
|
|
21
25
|
# The media type parameters provided in CONTENT_TYPE as a Hash, or
|
@@ -27,9 +31,10 @@ module Rack
|
|
27
31
|
return {} if content_type.nil?
|
28
32
|
|
29
33
|
content_type.split(SPLIT_PATTERN)[1..-1].each_with_object({}) do |s, hsh|
|
34
|
+
s.strip!
|
30
35
|
k, v = s.split('=', 2)
|
31
|
-
|
32
|
-
hsh[k
|
36
|
+
k.downcase!
|
37
|
+
hsh[k] = strip_doublequotes(v)
|
33
38
|
end
|
34
39
|
end
|
35
40
|
|
data/lib/rack/response.rb
CHANGED
data/lib/rack/utils.rb
CHANGED
@@ -143,8 +143,8 @@ module Rack
|
|
143
143
|
end
|
144
144
|
|
145
145
|
def q_values(q_value_header)
|
146
|
-
q_value_header.to_s.split(
|
147
|
-
value, parameters = part.split(
|
146
|
+
q_value_header.to_s.split(',').map do |part|
|
147
|
+
value, parameters = part.split(';', 2).map(&:strip)
|
148
148
|
quality = 1.0
|
149
149
|
if parameters && (md = /\Aq=([\d.]+)/.match(parameters))
|
150
150
|
quality = md[1].to_f
|
@@ -157,9 +157,10 @@ module Rack
|
|
157
157
|
return nil unless forwarded_header
|
158
158
|
forwarded_header = forwarded_header.to_s.gsub("\n", ";")
|
159
159
|
|
160
|
-
forwarded_header.split(
|
161
|
-
field.split(
|
162
|
-
|
160
|
+
forwarded_header.split(';').each_with_object({}) do |field, values|
|
161
|
+
field.split(',').each do |pair|
|
162
|
+
pair = pair.split('=').map(&:strip).join('=')
|
163
|
+
return nil unless pair =~ /\A(by|for|host|proto)="?([^"]+)"?\Z/i
|
163
164
|
(values[$1.downcase.to_sym] ||= []) << $2
|
164
165
|
end
|
165
166
|
end
|
@@ -458,6 +459,9 @@ module Rack
|
|
458
459
|
end
|
459
460
|
ranges << (r0..r1) if r0 <= r1
|
460
461
|
end
|
462
|
+
|
463
|
+
return [] if ranges.map(&:size).sum > size
|
464
|
+
|
461
465
|
ranges
|
462
466
|
end
|
463
467
|
|
data/lib/rack/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leah Neukirchen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
164
|
- !ruby/object:Gem::Version
|
165
165
|
version: '0'
|
166
166
|
requirements: []
|
167
|
-
rubygems_version: 3.4.
|
167
|
+
rubygems_version: 3.4.10
|
168
168
|
signing_key:
|
169
169
|
specification_version: 4
|
170
170
|
summary: A modular Ruby webserver interface.
|