roda 3.51.0 → 3.54.0

Sign up to get free protection for your applications and to get access to all the features.
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
- # Set the default headers when creating a response.
41
- def initialize
42
- @headers = {}
43
- @body = []
44
- @length = 0
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.delete("Content-Type")
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
@@ -4,7 +4,7 @@ class Roda
4
4
  RodaMajorVersion = 3
5
5
 
6
6
  # The minor version of Roda, updated for new feature releases of Roda.
7
- RodaMinorVersion = 51
7
+ RodaMinorVersion = 54
8
8
 
9
9
  # The patch version of Roda, updated only for bug fixes from the last
10
10
  # feature release.
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.51.0
4
+ version: 3.54.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: 2021-12-15 00:00:00.000000000 Z
11
+ date: 2022-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -94,20 +94,6 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: haml
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: rack_csrf
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -223,6 +209,9 @@ extra_rdoc_files:
223
209
  - doc/release_notes/3.5.0.txt
224
210
  - doc/release_notes/3.50.0.txt
225
211
  - doc/release_notes/3.51.0.txt
212
+ - doc/release_notes/3.52.0.txt
213
+ - doc/release_notes/3.53.0.txt
214
+ - doc/release_notes/3.54.0.txt
226
215
  - doc/release_notes/3.6.0.txt
227
216
  - doc/release_notes/3.7.0.txt
228
217
  - doc/release_notes/3.8.0.txt
@@ -281,6 +270,9 @@ files:
281
270
  - doc/release_notes/3.5.0.txt
282
271
  - doc/release_notes/3.50.0.txt
283
272
  - doc/release_notes/3.51.0.txt
273
+ - doc/release_notes/3.52.0.txt
274
+ - doc/release_notes/3.53.0.txt
275
+ - doc/release_notes/3.54.0.txt
284
276
  - doc/release_notes/3.6.0.txt
285
277
  - doc/release_notes/3.7.0.txt
286
278
  - doc/release_notes/3.8.0.txt
@@ -292,6 +284,7 @@ files:
292
284
  - lib/roda/plugins/_before_hook.rb
293
285
  - lib/roda/plugins/_optimized_matching.rb
294
286
  - lib/roda/plugins/_symbol_regexp_matchers.rb
287
+ - lib/roda/plugins/additional_view_directories.rb
295
288
  - lib/roda/plugins/all_verbs.rb
296
289
  - lib/roda/plugins/assets.rb
297
290
  - lib/roda/plugins/assets_preloading.rb
@@ -425,7 +418,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
425
418
  - !ruby/object:Gem::Version
426
419
  version: '0'
427
420
  requirements: []
428
- rubygems_version: 3.2.32
421
+ rubygems_version: 3.3.7
429
422
  signing_key:
430
423
  specification_version: 4
431
424
  summary: Routing tree web toolkit