roda 3.52.0 → 3.55.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 = 52
7
+ RodaMinorVersion = 55
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.52.0
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-01-14 00:00:00.000000000 Z
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: sass
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.3
423
+ rubygems_version: 3.3.7
417
424
  signing_key:
418
425
  specification_version: 4
419
426
  summary: Routing tree web toolkit