roda 3.52.0 → 3.55.0
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 +4 -4
- data/CHANGELOG +32 -588
- data/doc/release_notes/3.53.0.txt +14 -0
- data/doc/release_notes/3.54.0.txt +48 -0
- data/doc/release_notes/3.55.0.txt +12 -0
- data/lib/roda/plugins/additional_view_directories.rb +66 -0
- data/lib/roda/plugins/assets.rb +6 -3
- data/lib/roda/plugins/chunked.rb +48 -22
- data/lib/roda/plugins/drop_body.rb +5 -4
- data/lib/roda/plugins/heartbeat.rb +6 -1
- data/lib/roda/plugins/indifferent_params.rb +17 -5
- data/lib/roda/plugins/json_parser.rb +18 -3
- data/lib/roda/plugins/middleware.rb +17 -2
- data/lib/roda/plugins/multi_public.rb +5 -1
- data/lib/roda/plugins/public.rb +14 -7
- data/lib/roda/plugins/render.rb +5 -3
- data/lib/roda/plugins/route_csrf.rb +3 -1
- data/lib/roda/plugins/run_handler.rb +7 -1
- data/lib/roda/plugins/sinatra_helpers.rb +5 -1
- data/lib/roda/response.rb +34 -7
- data/lib/roda/version.rb +1 -1
- metadata +11 -4
data/lib/roda/response.rb
CHANGED
@@ -37,11 +37,22 @@ class Roda
|
|
37
37
|
# code for non-empty responses and a 404 code for empty responses.
|
38
38
|
attr_accessor :status
|
39
39
|
|
40
|
-
#
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
# :nocov:
|
41
|
+
if defined?(Rack::Headers) && Rack::Headers.is_a?(Class)
|
42
|
+
# Set the default headers when creating a response.
|
43
|
+
def initialize
|
44
|
+
@headers = Rack::Headers.new
|
45
|
+
@body = []
|
46
|
+
@length = 0
|
47
|
+
end
|
48
|
+
else
|
49
|
+
# :nocov:
|
50
|
+
# Set the default headers when creating a response.
|
51
|
+
def initialize
|
52
|
+
@headers = {}
|
53
|
+
@body = []
|
54
|
+
@length = 0
|
55
|
+
end
|
45
56
|
end
|
46
57
|
|
47
58
|
# Return the response header with the given key. Example:
|
@@ -96,8 +107,7 @@ class Roda
|
|
96
107
|
if (s == 304 || s == 204 || (s >= 100 && s <= 199))
|
97
108
|
h.delete("Content-Type")
|
98
109
|
elsif s == 205
|
99
|
-
h
|
100
|
-
h["Content-Length"] = '0'
|
110
|
+
empty_205_headers(h)
|
101
111
|
else
|
102
112
|
h["Content-Length"] ||= '0'
|
103
113
|
end
|
@@ -158,6 +168,23 @@ class Roda
|
|
158
168
|
|
159
169
|
private
|
160
170
|
|
171
|
+
# :nocov:
|
172
|
+
if Rack.release < '2.0.2'
|
173
|
+
# Don't use a content length for empty 205 responses on
|
174
|
+
# rack 1, as it violates Rack::Lint in that version.
|
175
|
+
def empty_205_headers(headers)
|
176
|
+
headers.delete("Content-Type")
|
177
|
+
headers.delete("Content-Length")
|
178
|
+
end
|
179
|
+
# :nocov:
|
180
|
+
else
|
181
|
+
# Set the content length for empty 205 responses to 0
|
182
|
+
def empty_205_headers(headers)
|
183
|
+
headers.delete("Content-Type")
|
184
|
+
headers["Content-Length"] = '0'
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
161
188
|
# For each default header, if a header has not already been set for the
|
162
189
|
# response, set the header in the response.
|
163
190
|
def set_default_headers
|
data/lib/roda/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roda
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.55.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: sassc
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
@@ -210,6 +210,9 @@ extra_rdoc_files:
|
|
210
210
|
- doc/release_notes/3.50.0.txt
|
211
211
|
- doc/release_notes/3.51.0.txt
|
212
212
|
- doc/release_notes/3.52.0.txt
|
213
|
+
- doc/release_notes/3.53.0.txt
|
214
|
+
- doc/release_notes/3.54.0.txt
|
215
|
+
- doc/release_notes/3.55.0.txt
|
213
216
|
- doc/release_notes/3.6.0.txt
|
214
217
|
- doc/release_notes/3.7.0.txt
|
215
218
|
- doc/release_notes/3.8.0.txt
|
@@ -269,6 +272,9 @@ files:
|
|
269
272
|
- doc/release_notes/3.50.0.txt
|
270
273
|
- doc/release_notes/3.51.0.txt
|
271
274
|
- doc/release_notes/3.52.0.txt
|
275
|
+
- doc/release_notes/3.53.0.txt
|
276
|
+
- doc/release_notes/3.54.0.txt
|
277
|
+
- doc/release_notes/3.55.0.txt
|
272
278
|
- doc/release_notes/3.6.0.txt
|
273
279
|
- doc/release_notes/3.7.0.txt
|
274
280
|
- doc/release_notes/3.8.0.txt
|
@@ -280,6 +286,7 @@ files:
|
|
280
286
|
- lib/roda/plugins/_before_hook.rb
|
281
287
|
- lib/roda/plugins/_optimized_matching.rb
|
282
288
|
- lib/roda/plugins/_symbol_regexp_matchers.rb
|
289
|
+
- lib/roda/plugins/additional_view_directories.rb
|
283
290
|
- lib/roda/plugins/all_verbs.rb
|
284
291
|
- lib/roda/plugins/assets.rb
|
285
292
|
- lib/roda/plugins/assets_preloading.rb
|
@@ -413,7 +420,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
413
420
|
- !ruby/object:Gem::Version
|
414
421
|
version: '0'
|
415
422
|
requirements: []
|
416
|
-
rubygems_version: 3.3.
|
423
|
+
rubygems_version: 3.3.7
|
417
424
|
signing_key:
|
418
425
|
specification_version: 4
|
419
426
|
summary: Routing tree web toolkit
|