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.
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